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' ); } // 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 ); } }); } } // 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 "

404 - Page not Found!

"; } } // Verify if site has what it takes to run a plugin public static function verify_requirements() { global $wp_version; if ( version_compare( PHP_VERSION, AMP_REQUIRED_PHP_VERSION, '<' ) ) { return false; } if ( version_compare( $wp_version, AMP_REQUIRED_WP_VERSION, '<' ) ) { return false; } if ( is_multisite() != AMP_REQUIRED_WP_NETWORK ) { return false; } return true; } // Load all Models and init them public static function loadModels() { $models = glob(AMP_PATH.'/models/wp_*'); foreach($models as $m) { require_once ( $m ); // Init the model $x = explode('wp_', $m); $class = 'MAMP_' . ucfirst(str_replace('.php', '', $x[1])); if (method_exists($class,'initialize')) { call_user_func(array($class, 'initialize')); } } } // Create/Modify Tables public static function createTables() { $models = glob(AMP_PATH.'/models/wp_*'); foreach($models as $m) { $x = explode('wp_', $m); $class = 'MAMP_' . ucfirst(str_replace('.php', '', $x[1])); if (method_exists($class,'createTable')) { call_user_func(array($class, 'createTable')); } } } // Remove Tables public static function removeTables() { $models = glob(AMP_PATH.'/models/wp_*'); foreach($models as $m) { require_once ( $m ); $x = explode('wp_', $m); $class = 'MAMP_' . ucfirst(str_replace('.php', '', $x[1])); if (method_exists($class,'removeTable')) { call_user_func(array($class, 'removeTable')); } } } // Init the plugin public static function init() { // Init the models self::loadModels(); // Init the hooks self::hooks(); // Perform a version check self::checkVersion(); } } }