| Current Path : /home/ereika83/www/wp-content/plugins/genesis-club-pro/classes/ |
| 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;
}
}