$plugin_version)); } // When plugin is de-activated public static function deactivate() { MAMP_Model::updateInstallationStatus(0); } // When plugin is uninstalled public static function uninstall() { MAMP_Model::updateInstallationStatus(2); self::removeTables(); } // When plugin is upgraded public static function upgrade(){ $amp_supremacy_stat_id = get_option('amp_supremacy_stat_id', -1); $plugin_version = plugin_get_version(); if($amp_supremacy_stat_id == -1){ MAMP_Model::writeInstallationStatusActivated(array('plugin_version' => $plugin_version)); } else { MAMP_Model::updateInstallationStatus(null, $plugin_version); } } // Endpoint public static function addEndPoint() { add_rewrite_endpoint('amp', EP_ALL); add_rewrite_endpoint('amp', EP_PERMALINK); flush_rewrite_rules(); } // Init hooks public static function hooks() { add_action('admin_menu', array('AMP_Init', 'createPages')); add_action('admin_init', array('AMP_Init', 'loadAssets')); add_action('init', array('AMP_Init', 'addEndPoint')); // AMP_Post add_action('admin_post_amp_save_options', array('AMP_Post', 'saveOptions')); add_action('admin_enqueue_scripts', array('AMP_Init', 'my_plugin_assets_in_admin')); add_action( 'admin_notices', array('AMP_Init', 'get_amp_sitemap_notice') ); } // Register all Scripts and Styles that are being used somewhere public static function loadAssets() { // Scripts wp_register_script('amp_uikit', AMP_URL . 'assets/js/uikit/uikit.min.js', array('jquery'), true); wp_register_script('amp_uikit_notify', AMP_URL . 'assets/js/uikit/components/notify.min.js', array('jquery'), true); wp_register_script('amp_uikit_accordion', AMP_URL . 'assets/js/uikit/components/accordion.min.js', array('jquery'), true); wp_register_script('amp_uikit_lightbox', AMP_URL . 'assets/js/uikit/components/lightbox.min.js', array('jquery'), true); wp_register_script('amp_ajaxq', AMP_URL . 'assets/js/ajaxq.js', array('jquery'), true); wp_register_script('amp_spectrum', AMP_URL . 'assets/js/vendor/spectrum.js', array('jquery'), true); wp_register_script('amp_uikit_tooltip', AMP_URL . 'assets/js/uikit/components/tooltip.min.js', array('jquery'), true); // Page Specific Scripts /** Load Global JS * */ wp_register_script('amp_main', AMP_URL . 'assets/js/main.js', array('jquery'), true); /** * Add a global JS object to main script */ wp_localize_script('amp_main', 'amp_data', array( 'wp_get' => admin_url('admin-ajax.php'), 'wp_post' => admin_url('admin-post.php'), 'plugins_url' => plugins_url() ) ); // Styles wp_register_style('amp_uikit', AMP_URL . 'assets/css/uikit/uikit.gradient.min.css'); wp_register_style('amp_uikit_progress', AMP_URL . 'assets/css/uikit/components/progress.gradient.min.css'); wp_register_style('amp_uikit_notify', AMP_URL . 'assets/css/uikit/components/notify.min.css'); wp_register_style('amp_font-awesome', AMP_URL . 'assets/css/vendor/font-awesome.min.css'); wp_register_style('amp_spectrum', AMP_URL . 'assets/css/vendor/spectrum.css'); wp_register_style('amp_main', AMP_URL . 'assets/css/main.css'); } public static function my_plugin_assets_in_admin() { wp_enqueue_script( 'amp_admin_js', AMP_URL . 'assets/js/amp_admin.js', array( 'jquery' ), '1.0', true ); } // Create Admin Menu Pages public static function createPages() { global $amp_pages, $global_js, $global_css; foreach ($amp_pages as $p) { $page_hook_suffix = null; if ($p['Type'] == 'MENU') { $page_hook_suffix = add_menu_page($p['Page_Title'], $p['Menu_Title'], $p['Capability'], $p['Slug'], array('AMP_Init', 'loadPage'), AMP_URL . $p['Icon']); } else { $page_hook_suffix = add_submenu_page($p['Parent_Slug'], $p['Page_Title'], $p['Menu_Title'], $p['Capability'], $p['Slug'], array('AMP_Init', 'loadPage')); } add_action('admin_print_scripts-' . $page_hook_suffix, function() use($p, $global_js) { foreach ($global_js as $enqueueName) { wp_enqueue_script($enqueueName); } foreach ($p['JavaScript'] as $enqueueName) { wp_enqueue_script($enqueueName); } }); add_action('admin_print_styles-' . $page_hook_suffix, function() use($p, $global_css) { foreach ($global_css as $enqueueName) { wp_enqueue_style($enqueueName); } foreach ($p['Css'] as $enqueueName) { wp_enqueue_style($enqueueName); } }); } add_action( 'admin_enqueue_scripts', function(){ $screen = get_current_screen(); if ( 'toplevel_page_amp-settings' == $screen->base ) { wp_enqueue_media(); } else return; }); } // Load a Page public static function loadPage() { $page = $_GET['page']; $page = 'page_' . str_replace('amp-', '', $page) . '.php'; $page = AMP_PATH . '/pages/' . $page; if (file_exists($page)) { require_once ( $page ); } else { echo "
AMP Supremacy Lite: Install it for free and get AMP Sitemap and AMP Google Analytics!