/**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		add_action()
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->settings_slug = $vars['settings_slug'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     $this->plugin_dir_file = $vars['plugin_dir_file'];
     // Get our settings instance.
     $this->settings = NGGOBASIC_Settings::get_instance();
     // Reset our class/rel code if accidentally changed.
     add_action('admin_init', array($this, 'update_modified_fancybox_code'));
     // Register and enqueue Optimizer's JavaScript file for NextGEN's lightbox settings.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_nextgen_options_page_js'));
     // Install our lightbox on initial activation
     add_action('admin_footer', array($this, 'install_controller'));
     // Uninstall Fancybox if Optimizer is deactivated.
     register_deactivation_hook($this->plugin_dir_file, array($this, 'uninstall_controller'));
 }
 /**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		add_action()
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     $this->fancybox_version = $vars['fancybox_version'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->plugin_dir_path = $vars['plugin_dir_path'];
     $this->settings_slug = $vars['settings_slug'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     // Get our settings instance.
     $this->settings = NGGOBASIC_Settings::get_instance();
     // Define our Fancybox CSS filepath.
     $this->fancybox_css_path = $this->plugin_dir_path . "fancybox/" . $this->prefix . ".jquery.fancybox-" . $this->fancybox_version . ".css";
     // Add our action hooks.
     add_action('admin_notices', array($this, 'check_for_deregister_jquery_regex'));
     add_action('admin_notices', array($this, 'fancybox_regex_error_message'));
 }
 /**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		add_action()
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->db_name = $vars['db_name'];
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->plugin_dir_path = $vars['plugin_dir_path'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     $this->fancybox_interface_slug = $vars['fancybox_interface_slug'];
     // Get our settings instance.
     $this->settings = NGGOBASIC_Settings::get_instance();
     // Add our action hooks.
     add_action('admin_menu', array($this, 'add_options_page'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts_and_styles'));
     /**
      * Remove all admin toolbars, notifications and navigation elements from
      * the Fancybox settings interface.
      *
      * We need to detect the page the PHP way here as get_current_screen()
      * isn't available in time to access the admin_bar_init hook.
      */
     if (isset($_GET['page']) && $_GET['page'] == $this->fancybox_interface_slug) {
         // Remove top admin bar.
         add_filter('init', array($this, 'remove_top_admin_bar'));
         // Doesn't seem to work on admin_init.
         // Remove the update nag.
         add_action('admin_notices', array($this, 'remove_update_nag'), 1);
         // Priority 1 is important here.
         // Remove NextGEN's "Gallery" menu item.
         add_action('admin_init', array($this, 'remove_nextgen_menu_item'));
         // Doesn't seem to work on admin_menu.
         // Remove all WordPress menu items.
         add_action('admin_menu', array($this, 'remove_admin_menu_items'));
         // Remove the WordPress colophon and version number.
         add_action('admin_init', array($this, 'remove_footer'));
     }
 }
 /**
  * Access this class's working instance.
  * If the instance hasn't been set, set it now.
  *
  * @wp-hook	void
  * @uses		void
  * @since		2.0.0
  * @return		object of this class
  */
 public static function get_instance()
 {
     if (null == self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 /**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		add_action()
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->db_name = $vars['db_name'];
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     $this->display_name = $vars['display_name'];
     $this->settings_slug = $vars['settings_slug'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->plugin_dir_path = $vars['plugin_dir_path'];
     $this->fancybox_version = $vars['fancybox_version'];
     $this->nextgen_v1 = $vars['nextgen_v1'];
     $this->nextgen_v2 = $vars['nextgen_v2'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     $this->fancybox_interface_slug = $vars['fancybox_interface_slug'];
     // Get our settings instance.
     $this->settings = NGGOBASIC_Settings::get_instance();
     // Add our action hooks.
     add_action('admin_menu', array($this, 'add_options_page'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts_and_styles'));
 }
 /**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		add_action(), register_deactivation_hook()
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     $this->settings_slug = $vars['settings_slug'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->plugin_dir_path = $vars['plugin_dir_path'];
     $this->fancybox_handle = $vars['fancybox_handle'];
     $this->fancybox_version = $vars['fancybox_version'];
     $this->nextgen_v207 = $vars['nextgen_v207'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     $this->plugin_dir_file = $vars['plugin_dir_file'];
     // Get our settings instance.
     $this->settings = NGGOBASIC_Settings::get_instance();
     // Access NextGEN's settings instance.
     // Make sure the class exists first, as NextGEN (as of v2.0.7x) no longer initializes when other plugins are activating (see: C_NextGEN_Bootstrap::is_not_activating()).
     // Without this check, a "Fatal error: Class 'C_NextGen_Settings' not found" error occurs and halts activation.
     if (class_exists('C_NextGen_Settings')) {
         $this->ngg_settings = C_NextGen_Settings::get_instance();
     }
     // Define the path to Fancybox's CSS stylesheet.
     $this->styles = $this->plugin_dir_url . 'fancybox/' . $this->prefix . '.jquery.fancybox-' . $this->fancybox_version . '.css';
     // Define the path to Fancybox's script.
     $this->scripts = $this->plugin_dir_url . 'fancybox/' . $this->prefix . '.jquery.fancybox-' . $this->fancybox_version . '.pack.js';
     // Hook into the do_action in C_Lightbox_Library_Manager::register_defaults() for in-memory, front-end lightbox registration in NextGEN 2.0.7+.
     if ($this->nextgen_v207) {
         add_action('ngg_registered_default_lightboxes', array($this, 'register_fancybox'));
     }
     // Reset our class/rel code and script and stylesheet URLs if accidentally changed.
     add_action('admin_init', array($this, 'update_modified_fancybox_urls'));
     // Register and enqueue Optimizer's JavaScript file for NextGEN's lightbox settings.
     add_action('admin_enqueue_scripts', array($this, 'enqueue_nextgen_options_page_js'));
     // Install our lightbox on activation, and reinstall on domain change.
     add_action('admin_footer', array($this, 'install_controller'));
     // Uninstall our Fancybox menu item if Optimizer is deactivated.
     register_deactivation_hook($this->plugin_dir_file, array($this, 'uninstall_controller'));
 }
 /**
  * Class initialization.
  *
  * Get and set required properties, and add our action hooks, function
  * calls and file includes to initialize this class.
  *
  * @wp-hook	void
  * @uses		void
  * @since		2.0.0
  * @return 	void
  */
 public function init()
 {
     // Retrieve required properties from our main plugin class.
     $this->plugin = NextGEN_Gallery_Optimizer_Basic::get_instance();
     $vars = $this->plugin->get_vars();
     $this->db = $vars['db'];
     $this->db_name = $vars['db_name'];
     $this->prefix = $vars['prefix'];
     $this->version = $vars['version'];
     $this->plugin_dir_url = $vars['plugin_dir_url'];
     $this->plugin_dir_path = $vars['plugin_dir_path'];
     $this->nextgen_v1 = $vars['nextgen_v1'];
     $this->nextgen_v2 = $vars['nextgen_v2'];
     // Retrieve required properties from our main admin class.
     $this->admin = NGGOBASIC_Admin::get_instance();
     $vars = $this->admin->get_vars();
     $this->plugin_dir_file = $vars['plugin_dir_file'];
     // Run our settings methods.
     $this->get_validation();
     $this->register_setting();
     $this->install();
     $this->set_settings();
 }
 /**
  * Our class router.
  *
  * Only loads the code required for a given page view.
  *
  * Fully separates admin requests from the front-end, and also NextGEN
  * Legacy code from NextGEN v2.0.
  *
  * @wp-hook	void
  * @uses		is_admin()
  * @since		2.0.0
  * @return 	null|void
  */
 function route_request()
 {
     if (is_admin()) {
         if (basename($_SERVER['PHP_SELF']) == 'plugins.php' && !is_array($this->db)) {
             // Redirect to settings page on first activation.
             add_action('init', array($this, 'redirect_to_settings_page'));
         }
         // Include and instantiate our main admin class.
         require_once $this->plugin_dir_path . 'admin/class-' . $this->prefix . '-admin.php';
         $instance = NGGOBASIC_Admin::get_instance();
         $instance->init();
     }
     if (!is_admin()) {
         if ($this->nextgen_v1) {
             require_once $this->plugin_dir_path . 'public/nextgen-v1/class-' . $this->prefix . '-optimize-nextgen-v1.php';
             $instance = NGGOBASIC_Optimize_NextGEN_V1::get_instance();
             $instance->init();
             add_action('init', array($this, 'remove_nextgen_v1_version'));
             add_action('wp_head', array($this, 'add_nextgen_v1_version'));
         }
         if ($this->nextgen_v2) {
             if ($this->db['fancybox']) {
                 require_once $this->plugin_dir_path . 'public/nextgen-v2/class-' . $this->prefix . '-register-fancybox-nextgen-v2.php';
                 $instance = NGGOBASIC_Register_Fancybox_NextGEN_V2::get_instance();
                 $instance->init();
             }
             if ($this->db['optimize_front_end'] || $this->db['optimize_gallery_pages']) {
                 // Optional settings for NextGEN 2.0.
                 require_once $this->plugin_dir_path . 'public/nextgen-v2/class-' . $this->prefix . '-optimize-nextgen-v2.php';
                 $instance = NGGOBASIC_Optimize_NextGEN_V2::get_instance();
                 $instance->init();
             }
             // Add our version to NextGEN's inline version comment, for easier debugging for both developers.
             add_filter('show_nextgen_version', array($this, 'filter_nextgen_v2_version'));
         }
     }
 }