/**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @since     7.0
  */
 private function __construct()
 {
     // Call variables from public plugin class.
     $plugin = Quick_Featured_Images_Admin::get_instance();
     $this->plugin_name = $plugin->get_plugin_name();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->page_slug = $this->plugin_slug . '-settings';
     $this->parent_page_slug = $plugin->get_page_slug();
     $this->plugin_version = $plugin->get_plugin_version();
     $this->settings_db_slug = $plugin->get_settings_db_slug();
     // Load admin style sheet and JavaScript.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     // Add the options page and menu item.
     add_action('admin_menu', array($this, 'add_plugin_admin_menu'));
     // Add an action link pointing to the options page.
     $plugin_basename = plugin_basename(plugin_dir_path(__DIR__) . $this->plugin_slug . '.php');
     add_filter('plugin_action_links_' . $plugin_basename, array($this, 'add_action_links'));
     /*
      * Add registering options
      *
      */
     add_action('admin_init', array($this, 'register_options'));
 }
 /**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @since     7.0
  *
  * @updated 8.3.1: sanitized recognition of key names, fixed bug on displaying undesired columns
  * @updated 9.0: added column sort function
  */
 private function __construct()
 {
     // Call variables from public plugin class.
     $plugin = Quick_Featured_Images_Admin::get_instance();
     $this->plugin_name = $plugin->get_plugin_name();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->plugin_version = $plugin->get_plugin_version();
     $this->settings_db_slug = $plugin->get_settings_db_slug();
     // add featured image columns if desired
     $add_column_function = array($this, 'add_thumbnail_column');
     $display_column_function = array($this, 'display_thumbnail_in_column');
     $add_sort_function = array($this, 'add_sortable_column');
     // get current or default settings
     $this->stored_settings = get_option($this->settings_db_slug, array());
     // add Featured Image column in desired posts lists
     foreach ($this->stored_settings as $key => $value) {
         if ('1' == $value) {
             if (preg_match('/^column_thumb_([a-z0-9_\\-]+)$/', $key, $matches)) {
                 // make the following lines more readable
                 $post_type = $matches[1];
                 // get the hook name for the columns filter
                 $hook = sprintf('manage_%s_posts_columns', $post_type);
                 // add a column to list of desired post type and
                 // sanitizing: check with has_filter() to prevent multiple columns in a row
                 if (!has_filter($hook, $add_column_function)) {
                     add_filter($hook, $add_column_function);
                 }
                 // get the hook name for the sortable columns filter
                 $hook = sprintf('manage_edit-%s_sortable_columns', $post_type);
                 // add the column to list of sortable columns
                 // sanitizing: check with has_filter() to prevent more than 1 call
                 if (!has_filter($hook, $add_sort_function)) {
                     add_filter($hook, $add_sort_function);
                 }
                 // get the hook name for the column edit action
                 $hook = sprintf('manage_%s_posts_custom_column', $post_type);
                 // add thumbnail in column per post
                 // sanitizing: check with has_filter() to prevent multiple contents in a column
                 if (!has_action($hook, $display_column_function)) {
                     add_action($hook, $display_column_function, 10, 2);
                 }
             }
             // if ( preg_match() )
         }
         // if ( value == 1 )
     }
     // foreach( stored_settings )
     // load admin style sheet
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     // print style for thumbnail column
     add_action('admin_head', array($this, 'display_thumbnail_column_style'));
     // define image column sort order
     add_filter('pre_get_posts', array($this, 'sort_column_by_image_id'));
 }
 /**
  * Return an instance of this class.
  *
  * @since     1.0.0
  *
  * @return    object    A single instance of this class.
  */
 public static function get_instance()
 {
     // If the single instance hasn't been set, set it now.
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 /**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @access   private
  * @since     1.0.0
  */
 private function __construct()
 {
     // Call some values from public plugin class.
     $plugin = Quick_Featured_Images_Admin::get_instance();
     $this->plugin_name = $plugin->get_plugin_name();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->page_slug = $this->plugin_slug . '-tools';
     $this->parent_page_slug = $plugin->get_page_slug();
     $this->plugin_version = $plugin->get_plugin_version();
     // Load admin style sheet and JavaScript.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
     // Add the admin page and menu item.
     add_action('admin_menu', array($this, 'add_plugin_admin_menu'));
     // Add 'Bulk set' link in rows of media library list
     add_filter('media_row_actions', array(&$this, 'add_media_row_action'), 10, 2);
 }
 /**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @since     8.0
  */
 private function __construct()
 {
     // Call variables from public plugin class.
     $plugin = Quick_Featured_Images_Admin::get_instance();
     $this->plugin_name = $plugin->get_plugin_name();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->page_slug = $this->plugin_slug . '-defaults';
     $this->parent_page_slug = $plugin->get_page_slug();
     $this->plugin_version = $plugin->get_plugin_version();
     // Load admin style sheet and JavaScript.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
     // Add the options page and menu item.
     add_action('admin_menu', array($this, 'add_plugin_admin_menu'));
     // Auto set featured image on saving a post
     add_action('save_post', array($this, 'add_featured_image'), 10, 3);
     /*
     // check whether the query parameter 'qfi_notice' is in the URL; if yes, show admin notice
     if ( isset( $_REQUEST[ 'qfi_notice' ] ) ) {
     	add_action( 'admin_notices', array( $this, 'display_qfi_notice' ) );
     }
     */
 }
 /**
  * Initialize the plugin by loading admin scripts & styles and adding a
  * settings page and menu.
  *
  * @since     8.0
  */
 private function __construct()
 {
     // Call variables from public plugin class.
     $plugin = Quick_Featured_Images_Admin::get_instance();
     $this->plugin_name = $plugin->get_plugin_name();
     $this->plugin_slug = $plugin->get_plugin_slug();
     $this->page_slug = $this->plugin_slug . '-defaults';
     $this->parent_page_slug = $plugin->get_page_slug();
     $this->plugin_version = $plugin->get_plugin_version();
     // Load admin style sheet and JavaScript.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_styles'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_scripts'));
     // Add the options page and menu item.
     add_action('admin_menu', array($this, 'add_plugin_admin_menu'));
     // Auto set featured image on saving a post
     add_action('save_post', array($this, 'add_featured_image'), 10, 3);
     // Auto delete rule if an image is deleted in the media library
     add_action('delete_attachment', array($this, 'delete_rules_by_thumb_id'));
 }