Current File : /home/escuelai/public_html/wp-content/plugins/master-slider/public/class-master-slider.php |
<?php
/**
* Master Slider.
*
* @package MasterSlider
* @author averta [averta.net]
* @license LICENSE.txt
* @link https://masterslider.com
* @copyright Copyright © 2014 averta
*/
if ( ! class_exists( 'Master_Slider' ) ) :
/**
* Plugin class. This class should ideally be used to work with the
* public-facing side of the WordPress site.
*/
class Master_Slider {
/**
* Instance of this class.
*
* @since 1.0.0
*
* @var object
*/
protected static $instance = null;
/**
* Instance of Master_Slider_Admin class.
*
* @since 1.0.0
*
* @var object
*/
public $admin = null;
/**
* Initialize the plugin
*
* @since 1.0.0
*/
private function __construct() {
$this->includes();
add_action( 'init', array( $this, 'init' ) );
// Activate plugin when new blog is added
add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) );
// Loaded action
do_action( 'masterslider_loaded' );
}
/**
*
* @return [type] [description]
*/
private function includes() {
// load common functionalities
include_once( MSWP_AVERTA_INC_DIR . '/index.php' );
// Dashboard and Administrative Functionality
if ( is_admin() ) {
// Load AJAX spesific codes on demand
if ( defined('DOING_AJAX') && DOING_AJAX ){
include_once( MSWP_AVERTA_ADMIN_DIR . '/includes/classes/class-msp-admin-ajax.php');
include_once( MSWP_AVERTA_ADMIN_DIR . '/includes/msp-admin-functions.php');
}
// Load admin spesific codes
else {
$this->admin = include( MSWP_AVERTA_ADMIN_DIR . '/class-master-slider-admin.php' );
}
// Load Frontend Functionality
} else {
include_once( 'includes/class-msp-frontend-assets.php' );
}
}
/**
* Init Masterslider when WordPress Initialises.
*
* @return void
*/
public function init(){
// Before init action
do_action( 'before_masterslider_init' );
// @Deprecate WP Version 5.0
global $wp_version;
if ( version_compare( $wp_version, '4.6', '<' ) ) {
// Load plugin text domain
$this->load_plugin_textdomain();
}
// Init action
do_action( 'masterslider_init' );
}
/**
* Return an instance of this class.
*
* @since 1.0.0
*
* @return object A single instance of this class.
*/
public static function get_instance() {
// If the single instance hasn't been set, set it now.
if ( null == self::$instance ) {
self::$instance = new self;
}
return self::$instance;
}
/**
* Fired when the plugin is activated.
*
* @since 1.0.0
*
* @param boolean $network_wide True if WPMU superadmin uses
* "Network Activate" action, false if
* WPMU is disabled or plugin is
* activated on an individual blog.
*/
public static function activate( $network_wide ) {
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
if ( $network_wide ) {
// Get all blog ids
$blog_ids = self::get_blog_ids();
foreach ( $blog_ids as $blog_id ) {
switch_to_blog( $blog_id );
self::single_activate();
}
restore_current_blog();
} else {
self::single_activate();
}
} else {
self::single_activate();
}
}
/**
* Fired when the plugin is deactivated.
*
* @since 1.0.0
*
* @param boolean $network_wide True if WPMU superadmin uses
* "Network Deactivate" action, false if
* WPMU is disabled or plugin is
* deactivated on an individual blog.
*/
public static function deactivate( $network_wide ) {
if ( function_exists( 'is_multisite' ) && is_multisite() ) {
if ( $network_wide ) {
// Get all blog ids
$blog_ids = self::get_blog_ids();
foreach ( $blog_ids as $blog_id ) {
switch_to_blog( $blog_id );
self::single_deactivate();
}
restore_current_blog();
} else {
self::single_deactivate();
}
} else {
self::single_deactivate();
}
}
/**
* Fired when a new site is activated with a WPMU environment.
*
* @since 1.0.0
*
* @param int $blog_id ID of the new blog.
*/
public function activate_new_site( $blog_id ) {
if ( 1 !== did_action( 'wpmu_new_blog' ) ) {
return;
}
switch_to_blog( $blog_id );
self::single_activate();
restore_current_blog();
}
/**
* Get all blog ids of blogs in the current network that are:
* - not archived
* - not spam
* - not deleted
*
* @since 1.0.0
*
* @return array|false The blog ids, false if no matches.
*/
private static function get_blog_ids() {
global $wpdb;
// get an array of blog ids
$sql = "SELECT blog_id FROM $wpdb->blogs
WHERE archived = '0' AND spam = '0'
AND deleted = '0'";
return $wpdb->get_col( $sql );
}
/**
* Fired for each blog when the plugin is activated.
*
* @since 1.0.0
*/
private static function single_activate() {
global $mspdb;
$mspdb->create_tables();
// add masterslider custom caps
self::assign_custom_caps();
// determine the pro feature content type for panel tab
if( ! get_option( 'master-slider_ab_pro_feature_panel_content_type', 0 ) ){
update_option( 'master-slider_ab_pro_feature_panel_content_type', rand(1, 2) );
}
// determine the pro feature content type for pro setting page
if( ! get_option( 'master-slider_ab_pro_feature_setting_content_type', 0 ) ){
update_option( 'master-slider_ab_pro_feature_setting_content_type', rand(1, 2) );
}
do_action( 'masterslider_activated', get_current_blog_id() );
}
/**
* Assign masterslider custom capabilities to main roles
* @return void
*/
public static function assign_custom_caps( $force_update = false ){
// check if custom capabilities are added before or not
$is_added = get_option( 'masterslider_capabilities_added', 0 );
// add caps if they are not already added
if( ! $is_added || $force_update ) {
// assign masterslider capabilities to following roles
$roles = array( 'administrator', 'editor' );
foreach ( $roles as $role ) {
if( ! $role = get_role( $role ) )
continue;
$role->add_cap( 'access_masterslider' );
$role->add_cap( 'publish_masterslider' );
$role->add_cap( 'delete_masterslider' );
$role->add_cap( 'create_masterslider' );
$role->add_cap( 'export_masterslider' );
$role->add_cap( 'duplicate_masterslider' );
}
update_option( 'masterslider_capabilities_added', 1 );
}
}
/**
* Set default options
*
* @since 1.0.0
*/
public static function set_default_options( $force_update = false ){
}
/**
* Fired for each blog when the plugin is deactivated.
*
* @since 1.0.0
*/
private static function single_deactivate() {
do_action( 'masterslider_deactivated' );
}
/**
* Load the plugin text domain for translation.
*
* @since 1.0.0
*/
public function load_plugin_textdomain() {
$locale = apply_filters( 'plugin_locale', get_locale(), 'master-slider' );
load_textdomain( 'master-slider', trailingslashit( WP_LANG_DIR ) . 'master-slider' . '/' . 'master-slider' . '-' . $locale . '.mo' );
load_plugin_textdomain( 'master-slider', FALSE, basename( MSWP_AVERTA_DIR ) . '/languages/' );
}
}
endif;
function MSP(){ return Master_Slider::get_instance(); }
MSP();
class MSP_AttachmentFields {
private $fields = array();
function __construct($fields = null) {
if(isset($fields) && is_array($fields))
$this->$fields = $fields;
}
public function add($field){
if(is_array($field))
$this->fields[] = $field;
}
public function init(){
add_filter( 'attachment_fields_to_edit', array( $this, 'addFields' ), 11, 2 );
add_filter( 'attachment_fields_to_save', array( $this, 'saveFields' ), 11, 2 );
}
public function addFields( $form_fields, $post ){
$form_fields['image_rating'] = array(
'label' => __( 'rating', "default" ),
'input' => 'radio',
'options' => array(
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5
),
'application' => 'image',
'exclusions' => array( 'audio', 'video' )
);
return $form_fields;
}
public function saveFields($post, $attachment) {
return $post;
}
}
$attach_fields = new MSP_AttachmentFields();
$attchments_options = array(
'image_copyright' => array(
'label' => '',
'input' => 'text',
'helps' => '',
'application' => 'image',
'exclusions' => array( 'audio', 'video' ),
'required' => true,
'error_text' => __( 'Field is required', "default" )
),
'image_rating' => array(
'label' => __( 'rating', "default" ),
'input' => 'radio',
'options' => array(
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5
),
'application' => 'image',
'exclusions' => array( 'audio', 'video' )
)
);
$attach_fields->init();