/home/arranoyd/magicraft/wp-content/plugins/1masterslider/admin/class-master-slider-admin.php
<?php
/**
* Master Slider Admin
*
* @package MasterSlider
* @author averta [averta.net]
* @license LICENSE.txt
* @link http://masterslider.com
* @copyright Copyright © 2014 averta
*/
// no direct access allowed
if ( ! defined( 'ABSPATH' ) ) {
die();
}
/**
* This class is used to work with the
* administrative side of Masterslider
*/
class Master_Slider_Admin {
/**
* Instance of this class.
*
* @since 1.0.0
*
* @var object
*/
protected static $instance = null;
/**
* Slug of the plugin screen.
*
* @since 1.0.0
*
* @var string
*/
protected $sliders_screen_hook_suffix = null;
/**
* Initialize the plugin by loading admin classes and functions
*
* @since 1.0.0
*/
private function __construct() {
// include admin files
$this->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') );
// Initial tasks on admin footer
add_action( 'admin_footer', array( $this, 'admin_footer') );
// 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();
}
/**
* Triggers on admin footer
*
* @return void
*/
public function admin_footer(){
include_once( MSWP_AVERTA_ADMIN_DIR . '/views/global/gallery-templates.php' );
}
/**
* 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_plugin_version', '0' ) == MSWP_AVERTA_VERSION )
return false;
msp_save_custom_styles();
//msp_flush_all_sliders_cache(); 2.9.7
update_option( 'masterslider_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();
}
}
/**
* 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( "<link rel='stylesheet' id='masterslider-admin-fonts' href='//fonts.googleapis.com/css?family=%s' type='text/css' />\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', MSWP_TEXT_DOMAIN ) );
$ms_menu_title = apply_filters( 'masterslider_admin_menu_title', __( 'Master Slider' , MSWP_TEXT_DOMAIN ) );
// 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.0.0
*/
public function add_action_links( $links ) {
return array_merge(
array(
'settings' => '<a href="' . admin_url( 'admin.php?page=' . MSWP_SLUG . '-setting' ) . '">' . __( 'Settings', MSWP_TEXT_DOMAIN ) . '</a>',
'docs' => '<a href="http://masterslider.com/doc/wp/?rf=cls" target="blank" >' . __( 'Docs', MSWP_TEXT_DOMAIN ) . '</a>'
),
$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();