includes();
add_action( 'init', array( $this, 'init' ) );
}
/**
* Include admin essential classes and functions
*
* @return void
*/
private function includes(){
include_once( MSWP_AVERTA_ADMIN_DIR . '/includes/index.php' );
include_once( MSWP_AVERTA_ADMIN_DIR . '/views/setting/class-msp-settings.php' );
}
public function init() {
// Before init action
do_action( 'before_masterslider_admin_init' );
// A filter hook to restrict access to plugin panel only for super admin on multiste
if( apply_filters( 'masterslider_access_only_for_super_admins' , 0 ) && ! is_super_admin() ) {
return;
}
// Assign masterslider custom capabilities
Master_Slider::assign_custom_caps();
// Inject default styles and effects
Master_Slider::set_default_options();
// Initial tasks on admin init
add_action( 'admin_init', array( $this, 'admin_init') );
// Load admin Stylesheet and JavaScript.
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts') );
// Add some essential content in admin page header
add_action( 'admin_head', array( $this, 'admin_header' ), 9 );
// Add the options page and menu item.
add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) );
// Add an action link pointing to the setting page.
add_filter( 'plugin_action_links_'. MSWP_AVERTA_BASE_NAME, array( $this, 'add_action_links' ) );
// Add an action link on plugin row meta in plugins page
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 4 );
// Admin init action
do_action( 'masterslider_admin_init' );
}
/**
* Triggers on admin init
*
* @return void
*/
public function admin_init(){
$this->after_plugin_update();
}
/**
* Regenerate and cache custom css codes for all slider after plugin update
*
* @return bool TRUE on success, FALSE otherwise
*/
public function after_plugin_update (){
if( get_option( 'masterslider_lite_plugin_version', '0' ) == MSWP_AVERTA_VERSION )
return false;
msp_save_custom_styles();
// msp_flush_all_sliders_cache(); 2.0.0
update_option( 'masterslider_lite_plugin_version', MSWP_AVERTA_VERSION );
do_action( 'masterslider_after_plugin_updated' );
return true;
}
/**
* Return an instance of this class.
*
* @since 1.0.0
*
* @return object A single instance of this class.
*/
public static function get_instance() {
if( apply_filters( 'masterslider_access_only_for_super_admins' , 0 ) && ! is_super_admin() ) {
return;
}
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Register and enqueue admin-specific JavaScript & Stylesheet.
*
* @since 1.0.0
*
* @return null Return early if no settings page is registered.
*/
public function enqueue_admin_scripts() {
$admin_assets = new MSP_Admin_Assets();
$admin_assets->enqueue_global_assets();
if ( ! isset( $this->sliders_screen_hook_suffix ) )
return;
// load masterslider spesific assets only on it's admin page
$screen = get_current_screen();
if ( $this->sliders_screen_hook_suffix == $screen->id ) {
$admin_assets->enqueue_panel_assets();
}
if ( MSWP_SLUG . '_page_' . MSWP_SLUG . '-setting' == $screen->id ) {
$admin_assets->enqueue_setting_page_assets();
}
}
/**
* Print essential content in admin page header
*
* @since 1.0.0
*
* @return void
*/
public function admin_header() {
if ( ! isset( $this->sliders_screen_hook_suffix ) ) {
return;
}
$screen = get_current_screen();
if ( $this->sliders_screen_hook_suffix == $screen->id ) {
if ( isset( $_REQUEST['slider_id'] ) ) {
$slider_id = $_REQUEST['slider_id'];
global $mspdb;
$custom_fonts = $mspdb->get_slider_field_val( $slider_id, 'custom_fonts' );
if ( ! empty( $custom_fonts ) )
printf( "\n", $custom_fonts );
}
}
}
/**
* Register the administration menu for this plugin into the WordPress Dashboard menu.
*
* @since 1.0.0
*/
public function add_plugin_admin_menu() {
$ms_page_title = apply_filters( 'masterslider_admin_page_title', __( 'Master Sliders', 'master-slider' ) );
$ms_menu_title = apply_filters( 'masterslider_admin_menu_title', __( 'Master Slider' , 'master-slider' ) );
// Add a top-level menu for master slider
$this->sliders_screen_hook_suffix = add_menu_page(
$ms_page_title,
$ms_menu_title,
apply_filters( 'masterslider_access_capability', 'access_masterslider' ),
MSWP_SLUG,
array( $this, 'display_master_slider_panel_page' )
);
}
/**
* Render the panel page for this plugin.
*
* @since 1.0.0
*/
public function display_master_slider_panel_page() {
include_once( 'views/index.php' );
}
/**
* Add settings action link to the plugins page.
*
* @since 1.2.0
*/
public function add_action_links( $links ) {
$links['settings'] = '' . __( 'Settings', 'master-slider' ) . '';
$links['go_pro'] = '' . __( 'Go Pro', 'master-slider' ) . '';
return $links;
}
/**
* Add extra action link to the plugin meta on plugins page.
*
* @since 1.8.0
*/
public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ){
if( $plugin_file == MSWP_AVERTA_BASE_NAME ) { }
return $plugin_meta;
}
}
return Master_Slider_Admin::get_instance();