| @@ -1,78 +1,51 @@ | ||
| 1 | 1 | <?php |
| 2 | -class Meow_MWCODE_Admin extends MeowKit_MWCODE_Admin { | |
| 2 | +class Meow_CDEGN_Admin { | |
| 3 | 3 | |
| 4 | 4 | public $core; |
| 5 | 5 | |
| 6 | + /** @var Meow_CDEGN_List_Table */ | |
| 7 | + public $list_table; | |
| 8 | + | |
| 9 | + protected $menu_slug = 'cdegn_settings'; | |
| 10 | + | |
| 6 | 11 | public function __construct( $core ) { |
| 7 | 12 | $this->core = $core; |
| 8 | 13 | |
| 9 | - parent::__construct( MWCODE_PREFIX, MWCODE_ENTRY, MWCODE_DOMAIN, class_exists( 'MeowPro_MWCODE_Core' ) ); | |
| 10 | 14 | if ( is_admin() ) { |
| 11 | 15 | add_action( 'admin_menu', array( $this, 'app_menu' ) ); |
| 12 | - | |
| 13 | - // Load the scripts only if they are needed by the current screen | |
| 14 | - // $page = isset( $_GET["page"] ) ? sanitize_text_field( $_GET["page"] ) : null; | |
| 15 | - // $is_mwcode_screen = in_array( $page, [ 'mwcode_settings' ] ); | |
| 16 | - // $is_meowapps_dashboard = $page === 'meowapps-main-menu'; | |
| 17 | - | |
| 18 | - | |
| 19 | - // if ( $is_meowapps_dashboard || $is_mwcode_screen ) { | |
| 20 | - // add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); | |
| 21 | - // } | |
| 22 | - | |
| 23 | - $can_access_settings = $this->core->can_access_settings(); | |
| 24 | - $can_access_features = $this->core->can_access_features(); | |
| 25 | - | |
| 26 | - if ( $can_access_settings || $can_access_features ) { | |
| 27 | - add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) ); | |
| 28 | - } | |
| 16 | + add_filter( 'plugin_action_links_' . plugin_basename( CDEGN_ENTRY ), array( $this, 'plugin_action_links' ), 10, 2 ); | |
| 29 | 17 | } |
| 30 | 18 | } |
| 31 | 19 | |
| 32 | - function admin_enqueue_scripts() { | |
| 20 | + public function app_menu() { | |
| 21 | + // Needs to initialize the list before admin-header.php called. | |
| 22 | + $this->list_table = new Meow_CDEGN_List_Table( $this->core ); | |
| 33 | 23 | |
| 34 | - // Load the scripts | |
| 35 | - $physical_file = MWCODE_PATH . '/app/index.js'; | |
| 36 | - $cache_buster = file_exists( $physical_file ) ? filemtime( $physical_file ) : MWCODE_VERSION; | |
| 37 | - wp_register_script( 'mwcode_snippet_vault-vendor', MWCODE_URL . 'app/vendor.js', | |
| 38 | - ['wp-element', 'wp-i18n'], $cache_buster | |
| 39 | - ); | |
| 40 | - wp_register_script( 'mwcode_snippet_vault', MWCODE_URL . 'app/index.js', | |
| 41 | - ['mwcode_snippet_vault-vendor', 'wp-i18n', 'wp-blocks', 'wp-block-editor', 'wp-components'], $cache_buster | |
| 42 | - ); | |
| 43 | - wp_set_script_translations( 'mwcode_snippet_vault', 'code-engine' ); | |
| 44 | - wp_enqueue_script('mwcode_snippet_vault' ); | |
| 45 | - | |
| 46 | - // Load the fonts | |
| 47 | - wp_register_style( 'meow-neko-ui-lato-font', '//fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap'); | |
| 48 | - wp_enqueue_style( 'meow-neko-ui-lato-font' ); | |
| 49 | - | |
| 50 | - // Localize and options | |
| 51 | - wp_localize_script( 'mwcode_snippet_vault', 'mwcode_snippet_vault', [ | |
| 52 | - 'api_url' => rest_url( 'code-engine/v1' ), | |
| 53 | - 'rest_url' => rest_url(), | |
| 54 | - 'plugin_url' => MWCODE_URL, | |
| 55 | - 'prefix' => MWCODE_PREFIX, | |
| 56 | - 'domain' => MWCODE_DOMAIN, | |
| 57 | - 'is_pro' => class_exists( 'MeowPro_MWCODE_Core' ), | |
| 58 | - 'is_registered' => !!$this->is_registered(), | |
| 59 | - 'rest_nonce' => wp_create_nonce( 'wp_rest' ), | |
| 60 | - 'options' => $this->core->get_all_options(), | |
| 61 | - ] ); | |
| 24 | + add_submenu_page( 'options-general.php', 'Code Engine', 'Code Engine', 'manage_options', | |
| 25 | + $this->menu_slug, array( $this, 'admin_settings' ) ); | |
| 62 | 26 | } |
| 63 | 27 | |
| 64 | - function is_registered() { | |
| 65 | - return apply_filters( MWCODE_PREFIX . '_meowapps_is_registered', false, MWCODE_PREFIX ); | |
| 28 | + public function admin_settings() { | |
| 29 | + $this->list_table->prepare_items(); | |
| 30 | + include_once 'views/settings.php'; | |
| 66 | 31 | } |
| 67 | 32 | |
| 68 | - function app_menu() { | |
| 69 | - add_submenu_page( 'meowapps-main-menu', 'Code Engine', 'Code Engine', 'manage_options', | |
| 70 | - 'mwcode_settings', array( $this, 'admin_settings' ) ); | |
| 71 | - } | |
| 33 | + public function plugin_action_links( array $actions, string $plugin_file ): array { | |
| 34 | + if ( plugin_basename( CDEGN_ENTRY ) !== $plugin_file ) { | |
| 35 | + return $actions; | |
| 36 | + } | |
| 72 | 37 | |
| 73 | - function admin_settings() { | |
| 74 | - echo '<div id="mwcode-admin-settings"></div>'; | |
| 38 | + return array_merge( | |
| 39 | + [ | |
| 40 | + sprintf( | |
| 41 | + '<a href="%s">%s</a>', | |
| 42 | + esc_url( add_query_arg( 'page', $this->menu_slug, admin_url( 'options-general.php' ) ) ), | |
| 43 | + esc_html__( 'Settings', 'code-engine' ) | |
| 44 | + ), | |
| 45 | + ], | |
| 46 | + $actions, | |
| 47 | + ); | |
| 75 | 48 | } |
| 76 | 49 | } |
| 77 | 50 | |
| 78 | -?> | |
| 51 | +?> | |