load_translations(); if ( is_admin() ) { add_action( 'admin_enqueue_scripts', function() { $this->admin_enqueue_scripts(); } ); add_action( 'admin_menu', function() { $this->admin_menu(); } ); add_action( 'admin_init', function() { $this->admin_init(); } ); } else { add_action( 'wp_enqueue_scripts', function() { $this->enqueue_scripts(); } ); $loader = new Loader(); $loader->run(); } parent::init(); } private function load_translations() { load_plugin_textdomain( 'ari-fancy-lightbox', false, ARIFANCYLIGHTBOX_SLUG . '/languages' ); } private function admin_menu() { $pages = array(); $settings_cap = 'manage_options'; $pages[] = add_menu_page( __( 'ARI Fancy Lightbox', 'ari-fancy-lightbox' ), __( 'ARI Fancy Lightbox', 'ari-fancy-lightbox' ), $settings_cap, 'ari-fancy-lightbox', array( $this, 'display_settings' ), 'dashicons-format-image' ); foreach ( $pages as $page ) { add_action( 'load-' . $page, function() { Screen::register(); }); } } private function admin_enqueue_scripts() { $options = $this->options; wp_register_script( 'ari-fancy-lightbox-app', $options->assets_url . 'common/app.js', array( 'jquery' ), $options->version ); wp_register_script( 'ari-fancy-lightbox-app-helper', $options->assets_url . 'common/helper.js', array( 'ari-fancy-lightbox-app' ), $options->version ); wp_register_style( 'ari-fancy-lightbox-app', $options->assets_url . 'common/css/style.css', array(), $options->version ); wp_register_style( 'ari-qtip', $options->assets_url . 'qtip/css/jquery.qtip.min.css', array(), $options->version ); wp_register_script( 'ari-qtip', $options->assets_url . 'qtip/js/jquery.qtip.min.js', array( 'jquery' ), $options->version ); wp_register_script( 'ari-form-elements', $options->assets_url . 'common/form-elements.js', array( 'jquery', 'jquery-ui-slider', 'ari-qtip', 'jquery-ui-spinner' ), $options->version ); wp_register_script( 'ari-wp-tabs', $options->assets_url . 'common/tabs.js', array( 'jquery' ), $options->version ); $this->common_enqueue_scripts(); } private function enqueue_scripts() { $this->common_enqueue_scripts(); } private function common_enqueue_scripts() { $options = $this->options; wp_register_script( 'ari-fancybox', $options->assets_url . 'fancybox/jquery.fancybox.min.js', array( 'jquery' ), $options->version ); wp_register_style( 'ari-fancybox', $options->assets_url . 'fancybox/jquery.fancybox.min.css', array(), $options->version ); } private function admin_init() { Settings::instance()->init(); if ( get_option( 'ari_fancy_lightbox_redirect', false ) ) { delete_option( 'ari_fancy_lightbox_redirect' ); if ( ! isset( $_GET['activate-multi'] ) ) { Response::redirect( admin_url( 'admin.php?page=ari-fancy-lightbox' ) ); } } $no_header = (bool) Request::get_var( 'noheader' ); if ( ! $no_header ) { $page = Request::get_var( 'page' ); if ( 0 === strpos( $page, 'ari-fancy-lightbox' ) ) { ob_start(); add_action( 'admin_page_' . $page , function() { ob_end_flush(); }, 99 ); } } } protected function need_to_update() { $installed_version = get_option( ARIFANCYLIGHTBOX_VERSION_OPTION ); return ( $installed_version != $this->options->version ); } protected function install() { $installer = new \Ari_Fancy_Lightbox\Installer(); return $installer->run(); } }