| 1 |
<?php |
| 2 |
|
| 3 |
class Meow_MGL_Admin extends MeowCommon_Admin { |
| 4 |
|
| 5 |
private $core; |
| 6 |
public function __construct($core) { |
| 7 |
parent::__construct( MGL_PREFIX, MGL_ENTRY, MGL_DOMAIN, class_exists( 'MeowPro_MGL_Core' ) ); |
| 8 |
$this->core = $core; |
| 9 |
add_action( 'admin_menu', array( $this, 'app_menu' ) ); |
| 10 |
$blocks_enabled = function_exists( 'register_block_type' ); |
| 11 |
if ( $blocks_enabled ) { |
| 12 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) ); |
| 13 |
} |
| 14 |
$options = $this->core->get_all_options(); |
| 15 |
if ( ( $options['captions'] ?? 'notset' ) === 'notset' ) { |
| 16 |
// MEOMO: mgl_captions_enabled option is used only here. Also, it deletes soon after being used. |
| 17 |
// So we keep this option what it is (not migrated to the mgl_options). |
| 18 |
$captions_enabled = get_option( 'mgl_captions_enabled' ); |
| 19 |
$this->core->update_options( array_merge( |
| 20 |
$options, |
| 21 |
[ 'captions' => $captions_enabled ? 'hover-only' : false ] |
| 22 |
) ); |
| 23 |
delete_option( 'mgl_captions_enabled' ); |
| 24 |
} |
| 25 |
} |
| 26 |
|
| 27 |
public function mgl_settings() { |
| 28 |
echo '<div id="mgl-admin-settings"></div>'; |
| 29 |
} |
| 30 |
|
| 31 |
function enqueue_scripts() { |
| 32 |
|
| 33 |
// Javascript for gallery |
| 34 |
$physical_file = MGL_PATH . '/app/galleries.js'; |
| 35 |
$cache_buster = file_exists( $physical_file ) ? filemtime( $physical_file ) : MGL_VERSION; |
| 36 |
wp_register_script( 'mgl-gallery-js', plugins_url( '/app/galleries.js', __DIR__ ), |
| 37 |
array(), $cache_buster, false ); |
| 38 |
|
| 39 |
// Load the "admin" scripts |
| 40 |
$physical_file = MGL_PATH . '/app/admin.js'; |
| 41 |
$cache_buster = file_exists( $physical_file ) ? filemtime( $physical_file ) : MGL_VERSION; |
| 42 |
wp_register_script( 'mgl-admin-js', MGL_URL . '/app/admin.js', |
| 43 |
array( 'mgl-gallery-js', 'wp-editor', 'wp-i18n', 'wp-element' ), $cache_buster ); |
| 44 |
register_block_type( 'meow-gallery/gallery', array( 'editor_script' => 'mgl-admin-js' )); |
| 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 |
global $wplr; |
| 52 |
wp_localize_script( 'mgl-admin-js', 'mgl_meow_gallery', [ |
| 53 |
//'api_nonce' => wp_create_nonce( 'mfrh_media_file_renamer' ), |
| 54 |
'api_url' => get_rest_url( null, '/meow-gallery/v1/' ), |
| 55 |
'rest_url' => get_rest_url(), |
| 56 |
'plugin_url' => MGL_URL, |
| 57 |
'prefix' => MGL_PREFIX, |
| 58 |
'domain' => MGL_DOMAIN, |
| 59 |
'is_pro' => class_exists( 'MeowPro_MGL_Core' ), |
| 60 |
'is_registered' => !!$this->is_registered(), |
| 61 |
'rest_nonce' => wp_create_nonce( 'wp_rest' ), |
| 62 |
'wplr_collections' => $wplr ? $wplr->read_collections_recursively() : [], |
| 63 |
'options' => $this->core->get_all_options(), |
| 64 |
] ); |
| 65 |
|
| 66 |
wp_enqueue_script( 'mgl-admin-js' ); |
| 67 |
} |
| 68 |
|
| 69 |
function app_menu() { |
| 70 |
add_submenu_page( 'meowapps-main-menu', __( 'Gallery', MGL_DOMAIN ), __( 'Gallery', MGL_DOMAIN ), |
| 71 |
'manage_options', 'mgl_settings', array( $this, 'mgl_settings' ) |
| 72 |
); |
| 73 |
} |
| 74 |
} |
| 75 |
|
| 76 |
?> |
| 77 |
|