Your IP : 216.73.216.171


Current Path : /home/ereika83/www/wp-content/plugins/genesis-club-pro/classes/
Upload File :
Current File : /home/ereika83/www/wp-content/plugins/genesis-club-pro/classes/class-slider-admin.php

<?php
class Genesis_Club_Slider_Admin extends Genesis_Club_Admin {	

    CONST SLIDER_PARENT = 'layerslider';
    private $slider;

	function init() {
        $this->slider = $this->plugin->get_module('slider');
        if ($this->slider->is_another_layerslider_installed()) return;

		$this->parent_slug = self::SLIDER_PARENT;
		$this->slug = $this->parent_slug;
		require_once(LS_ROOT_PATH.'/wp/activation.php');
		require_once(LS_ROOT_PATH.'/wp/actions.php');
		ls_register_ajax_actions();
		add_action('admin_bar_menu', array($this, 'admin_bar'), 999 );
		add_action('admin_menu', array($this, 'admin_menu'));
	}

	function admin_bar($wp_admin_bar) {
		$wp_admin_bar->add_node(array(
			'parent' => 'new-content',
			'id'    => 'ab-ls-add-new',
			'title' => 'LayerSlider',
			'href'  => admin_url('admin.php?page=layerslider')
		));
	}

	function admin_menu() {

		global $layerslider_hook;

		$capability = get_option('layerslider_custom_capability', 'manage_options');
		$icon = version_compare(get_bloginfo('version'), '3.8', '>=') ? 'dashicons-images-alt2' : LS_ROOT_URL.'/static/img/icon_16x16.png'; 

		// Add main page
		$layerslider_hook = add_menu_page(
			'Genesis Club Slider', 'Genesis Club Slider', $capability, $this->get_slug(), array( $this, 'sliders'), $icon);

		// Add "All Sliders" submenu
		add_action('load-'.add_submenu_page($this->get_slug(), 'All Sliders', __('All Sliders', GENESIS_CLUB_DOMAIN),
			$capability, 'layerslider', array( $this, 'sliders')), 
			array( $this,  'load_page'));

		// Add "Skin Editor" submenu
		add_action('load-'.add_submenu_page($this->get_slug(), 'Skin Editor', __('Skin Editor', GENESIS_CLUB_DOMAIN),
			$capability, 'ls-skin-editor', array( $this, 'skin_editor')),
			array( $this,  'load_page'));

		// Add "Transition Builder" submenu
		add_action('load-'.add_submenu_page( $this->get_slug(), 'Transition Builder', __('Transition Builder', GENESIS_CLUB_DOMAIN),
			$capability, 'ls-transition-builder', array( $this, 'transition_builder')), 
			array( $this,  'load_page'));

		// Add "Custom Styles Editor submenu"
		add_action('load-'.add_submenu_page($this->get_slug(), 'Custom Styles Editor', __('Custom Styles Editor', GENESIS_CLUB_DOMAIN),
			$capability, 'ls-style-editor', array( $this, 'style_editor')), 
			array( $this,  'load_page'));
	}

	function page_content() { }

	function load_page() {
        add_action('admin_enqueue_scripts', 'layerslider_enqueue_admin_res');
        add_action('admin_enqueue_scripts', 'ls_load_google_fonts');
		ls_form_actions(); //run any actions - save, duplicate, deletes, etc
		require_once(LS_ROOT_PATH.'/wp/tinymce.php');
	}

	function sliders() {
		$action = (isset($_GET['action']) && ($_GET['action'] == 'edit')) ? 'edit' : 'list'; 
		include(LS_ROOT_PATH.'/views/slider_'.$action.'.php');	
	}

	function skin_editor() {
		include(LS_ROOT_PATH.'/views/skin_editor.php');	
	}

	function style_editor() {
		include(LS_ROOT_PATH.'/views/style_editor.php');	
	}
	
	function transition_builder() {
		include(LS_ROOT_PATH.'/views/transition_builder.php');	
	}
		
	function get_table_name() {
		global $wpdb;
		return $wpdb->prefix . (defined('LS_DB_TABLE') ? LS_DB_TABLE : 'layerslider');
	}

	function slider_table_exists() {
		global $wpdb;
		$table_name = $this->get_table_name();
		return $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name;
	}

	function upgrade() {
		layerslider_activation_scripts(); //create/upgrade database table
		if ($this->slider_table_exists()) {
			if ($old_sliders = $this->get_old_sliders()) {
				$before = $this->count_sliders();
	 			foreach ($old_sliders as $slider) $this->add_slider($slider, true); //add slider to database table preserving IDs
				$after = $this->count_sliders();
				if ($after == ($before + count($old_sliders))) delete_option('genesis_club_slider');
			}
		} else {
			printf('<div id="message" class="error">Failed to create table %1$s: You need to create this table manually to use the Genesis Club Slider.</div>',  $this->get_table_name());
		}
	}

	function add_slider($slider, $preserve_id = false) {
		global $wpdb;
		if (! is_object($wpdb)) return false;
		$id = $preserve_id ? $slider['id'] : 'null';
		$date_c = $slider['date_c'];
		$date_m = $slider['date_m'];
		$name = esc_sql($slider['name']);
		$data = esc_sql(json_encode($slider['data']));
		$table_name = $wpdb->prefix.LS_DB_TABLE;
		$wpdb->query("INSERT INTO $table_name (id, name, data, date_c, date_m) VALUES ($id, '$name', '$data', '$date_c', '$date_m')");
	}

	function count_sliders() {
		global $wpdb;
		if (! is_object($wpdb)) return false;	
		$table_name = $wpdb->prefix.LS_DB_TABLE;
		$c = $wpdb->get_var("SELECT count(*) FROM $table_name");
		return $c;
	}

	function get_old_sliders() {
		$old_options = get_option('genesis_club_slider');
		if (is_array($old_options) 
		&& array_key_exists('sliders',$old_options)
		&& ($sliders = (array) $old_options['sliders'])
		&& is_array	($sliders)
		&& ($c = count($sliders))
		&& ($c > 0)) 
			return $sliders;
		else
			return false;
	}
}