*/ class Andreadb_Coin_Slider_Admin { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of this plugin. * @param string $version The version of this plugin. */ public function __construct($plugin_name, $version) { $this->plugin_name = $plugin_name; $this->version = $version; } /** * Register the stylesheets for the admin area. * * @since 1.0.0 */ public function dba_coin_slider_enqueue_styles() { /** * This function is provided for demonstration purposes only. * * An instance of this class should be passed to the run() function * defined in Andreadb_Coin_Slider_Loader as all of the hooks are defined * in that particular class. * * The Andreadb_Coin_Slider_Loader will then create the relationship * between the defined hooks and the functions defined in this * class. */ wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/andreadb-coin-slider-admin.css', array(), $this->version, 'all'); } /** * Register the JavaScript for the admin area. * * @since 1.0.0 */ public function dba_coin_slider_enqueue_scripts() { /** * This function is provided for demonstration purposes only. * * An instance of this class should be passed to the run() function * defined in Andreadb_Coin_Slider_Loader as all of the hooks are defined * in that particular class. * * The Andreadb_Coin_Slider_Loader will then create the relationship * between the defined hooks and the functions defined in this * class. */ wp_enqueue_media(); wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/andreadb-coin-slider-admin.js', array('jquery'), $this->version, false); wp_localize_script($this->plugin_name, 'andreadb_coin_slider', array( 'url' => __('URL', 'andreadb-coin-slider'), 'confirm' => __('Are you sure?', 'andreadb-coin-slider'), 'ajaxurl' => admin_url('admin-ajax.php'), 'addslide_nonce' => wp_create_nonce('dba_coin_slider_addslide'), 'iframeurl' => admin_url('admin-ajax.php?action=dba_coin_slider_preview') ) ); } /** * Register dba_coin_slider post type. * * @since 1.0.0 * @access public * @uses register_post_type() */ public static function register_dba_coin_slider_post_type() { $labels = array( 'name' => __('Coin Slider', 'andreadb-coin-slider'), 'singular_name' => __('Coin Slider', 'andreadb-coin-slider'), 'menu_name' => _x('Coin Slider', 'Admin menu name', 'andreadb-coin-slider'), 'add_new' => __('Add Coin Slider', 'andreadb-coin-slider'), 'add_new_item' => __('Add New Coin Slider', 'andreadb-coin-slider'), 'edit' => __('Edit', 'andreadb-coin-slider'), 'edit_item' => __('Edit Coin Slider', 'andreadb-coin-slider'), 'new_item' => __('New Coin Slider', 'andreadb-coin-slider'), 'view' => __('View Coin Slider', 'andreadb-coin-slider'), 'view_item' => __('View Coin Slider', 'andreadb-coin-slider'), 'search_items' => __('Search coin slider', 'andreadb-coin-slider'), 'not_found' => __('No coin slider found', 'andreadb-coin-slider'), 'not_found_in_trash' => __('No coin slider found in trash', 'andreadb-coin-slider') ); $args = array( 'labels' => $labels, 'query_var' => false, 'rewrite' => false, 'public' => true, 'exclude_from_search' => true, 'publicly_queryable' => false, 'show_in_nav_menus' => true, 'show_ui' => true, 'menu_position' => 100, 'menu_icon' => 'dashicons-format-gallery', 'supports' => array( 'title', 'thumbnail' ), ); register_post_type('dba_coin_slider', $args); } /** * Add columns in dba_coin_slider. * * @since 1.0.0 * @param mixed $columns * @return array */ public function dba_coin_slider_columns($columns) { unset($columns['title'], $columns['date']); $columns['dba-coin-slider-id'] = __('ID', 'andreadb-coin-slider'); $columns['title'] = __('Title', 'andreadb-coin-slider'); $columns['dba-coin-slider-number'] = __('Slides', 'andreadb-coin-slider'); $columns['dba-coin-slider-shortcode'] = __('Shortcode', 'andreadb-coin-slider'); $columns['date'] = __('Date', 'andreadb-coin-slider'); return $columns; } /** * Column value added to dba_coin_slider. * * @since 1.0.0 * @param string $column */ public function dba_coin_slider_column($column) { global $post; $post_id = $post->ID; $slides = get_post_meta($post_id, 'dba_coin_slider_slides', true); switch ($column) { case 'dba-coin-slider-id' : echo $post_id; break; case 'dba-coin-slider-number' : echo ($slides ? count($slides) : 0); break; case 'dba-coin-slider-shortcode' : echo ''; break; } } /** * Add preview action row. * * @since 1.0.0 * @param $actions $post */ public function dba_coin_slider_action_row($actions, $post) { if ($post->post_type == "dba_coin_slider") { $preview_url = add_query_arg(array( 'action' => 'dba_coin_slider_preview', 'andreadb_coin_slider_id' => $post->ID, 'TB_iframe' => '1' ), admin_url('admin-ajax.php') ); $preview_button = __('Preview', 'andreadb-coin-slider'); array_splice($actions, 2, 0, '' . $preview_button . ''); } return $actions; } /** * Add metaboxes coin slider. * * @since 1.0.0 * @access public */ public function add_meta_boxes_dba_coin_slider() { // add_meta_box( $id, $title, $callback, $screen, $context, $priority, $callback_args ); add_meta_box( 'dba_coin_slider_slides', __('Slides', 'andreadb-coin-slider'), array($this, 'render_dba_coin_slider_slides'), 'dba_coin_slider', 'normal', 'high' ); add_meta_box( 'dba_coin_slider_settings', __('Settings', 'andreadb-coin-slider'), array($this, 'render_dba_coin_slider_settings'), 'dba_coin_slider', 'side', 'low' ); add_meta_box( 'dba_coin_slider_codes', __('Shortcodes', 'andreadb-coin-slider'), array($this, 'render_dba_coin_slider_codes'), 'dba_coin_slider', 'side', 'low' ); remove_meta_box('postimagediv', 'dba_coin_slider', 'side'); } /** * Gets the coin slider default slides. * * @since 1.0.0 * @access public * @return array The array of coin slider defaults */ public function dba_coin_slider_defaults_slides() { return array( 'id' => '', 'description' => '', 'alt' => '', 'link' => '', 'title' => '', 'new_window' => '' ); } /** * Gets the coin slider slides. * * @since 1.0.0 * @access public * @param $post_id * @return array The array of coin slider settings */ public function dba_coin_slider_slides($post_id) { $slider_settings = get_post_meta($post_id, 'dba_coin_slider_slides', true); if (empty($slider_settings)) { $this->dba_coin_slider_defaults_slides(); } else { return $slider_settings; } } /** * Render slider slides. * * @since 1.0.0 * @access public * @param $post */ public function render_dba_coin_slider_slides($post) { $post_id = $post->ID; echo '
'; } public function ajax_dba_coin_slider_preview() { if (isset($_GET['andreadb_coin_slider_id']) && absint($_GET['andreadb_coin_slider_id']) > 0) { $id = absint($_GET['andreadb_coin_slider_id']); ?>