示例#1
0
function layerslider_init($atts)
{
    // ID check
    if (!isset($atts['id']) || empty($atts['id'])) {
        return '[LayerSliderWP] ' . __('Invalid shortcode', 'LayerSlider') . '';
    }
    global $LSC;
    // Get slider ID
    $id = $atts['id'];
    // Get slider
    $slider = lsSliderById($id);
    // Result check
    if ($slider == null) {
        return '[LayerSliderWP] ' . __('Slider not found', 'LayerSlider') . '';
    }
    // Decode data
    $slides = $slider['data'];
    // Returned data
    $data = '';
    // Include slider file
    if (is_array($slides)) {
        // Get phpQuery
        if (!class_exists('phpQuery')) {
            include LS_ROOT_PATH . '/helpers/phpQuery.php';
        }
        include LS_ROOT_PATH . '/config/defaults.php';
        include LS_ROOT_PATH . '/includes/slider_markup_init.php';
        include LS_ROOT_PATH . '/includes/slider_markup_html.php';
        $data = implode('', $data);
    }
    // Return data
    if (get_option('ls_concatenate_output', true)) {
        $data = trim(preg_replace('/\\s+/', ' ', $data));
    }
    return $data;
}
示例#2
0
function layerslider_register_settings()
{
    // Global settings
    if (isset($_POST['ls-access-permission']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        // Get capability
        $capability = $_POST['custom_role'] == 'custom' ? $_POST['custom_capability'] : $_POST['custom_role'];
        // Error message
        $error = __('Your account does not have the necessary permission you chose, and your settings have not been saved to prevent locking yourself out of the plugin.', 'LayerSlider');
        $success = __('Permission changes have been saved successfully.', 'LayerSlider');
        // Test value
        if (empty($capability) || !current_user_can($capability)) {
            header('Location: admin.php?page=layerslider&error=1&message=' . urlencode($error));
            die;
        } else {
            update_option('layerslider_custom_capability', $capability);
            header('Location: admin.php?page=layerslider&message=' . urlencode($success));
            die;
        }
    }
    // Add slider
    if (isset($_POST['posted_add']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        if (!isset($_POST['layerslider-slides'])) {
            return;
        }
        // Get WPDB Object
        global $wpdb;
        // Table name
        $table_name = $wpdb->prefix . "layerslider";
        // Create new record
        if ($_POST['layerkey'] == 0) {
            // Execute query
            $wpdb->query($wpdb->prepare("INSERT INTO {$table_name}\n\t\t\t\t\t\t\t\t\t(name, data, date_c, date_m)\n\t\t\t\t\t\t\t\tVALUES (%s, %s, %d, %d)", '', '', time(), time()));
            // Empty slider
            $slider = array();
            // ID
            $id = mysql_insert_id();
        } else {
            // Get slider
            $slider = $wpdb->get_row("SELECT * FROM {$table_name} ORDER BY id DESC LIMIT 1", ARRAY_A);
            // ID
            $id = $slider['id'];
            $slider = json_decode($slider['data'], true);
        }
        // Add modifications
        if (isset($_POST['layerslider-slides']['properties']['relativeurls'])) {
            $slider['properties'] = $_POST['layerslider-slides']['properties'];
            $slider['layers'][$_POST['layerkey']] = layerslider_convert_urls($_POST['layerslider-slides']['layers'][$_POST['layerkey']]);
        } else {
            $slider['properties'] = $_POST['layerslider-slides']['properties'];
            $slider['layers'][$_POST['layerkey']] = $_POST['layerslider-slides']['layers'][$_POST['layerkey']];
        }
        // WPML
        if (function_exists('icl_register_string')) {
            layerslider_register_wpml_strings($id, $slider);
        }
        // DB data
        $name = esc_sql($slider['properties']['title']);
        $data = esc_sql(json_encode($slider));
        // Update
        $wpdb->query("UPDATE {$table_name} SET\n\t\t\t\t\tname = '{$name}',\n\t\t\t\t\tdata = '{$data}',\n\t\t\t\t\tdate_m = '" . time() . "'\n\t\t\t\t  ORDER BY id DESC LIMIT 1");
        // Echo last ID for redirect
        echo $id;
        // Redirect back
        //header('Location: '.$_SERVER['REQUEST_URI'].'');
        die;
    }
    // Edit slider
    if (isset($_POST['posted_edit']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        if (!isset($_POST['layerslider-slides'])) {
            return;
        }
        // Get WPDB Object
        global $wpdb;
        // Table name
        $table_name = $wpdb->prefix . "layerslider";
        // Get the IF of the slider
        $id = (int) $_GET['id'];
        // Get slider
        $slider = $wpdb->get_row("SELECT * FROM {$table_name} WHERE id = " . (int) $id . " ORDER BY date_c DESC LIMIT 1", ARRAY_A);
        $data = json_decode($slider['data'], true);
        // Empty the slider
        if ($_POST['layerkey'] == 0) {
            $data = array();
        }
        // Add modifications
        if (isset($_POST['layerslider-slides']['properties']['relativeurls'])) {
            $data['properties'] = $_POST['layerslider-slides']['properties'];
            $data['layers'][$_POST['layerkey']] = layerslider_convert_urls($_POST['layerslider-slides']['layers'][$_POST['layerkey']]);
        } else {
            $data['properties'] = $_POST['layerslider-slides']['properties'];
            $data['layers'][$_POST['layerkey']] = $_POST['layerslider-slides']['layers'][$_POST['layerkey']];
        }
        // WPML
        if (function_exists('icl_register_string')) {
            layerslider_register_wpml_strings($id, $data);
        }
        // DB data
        $name = esc_sql($data['properties']['title']);
        $data = esc_sql(json_encode($data));
        // Update
        $wpdb->query("UPDATE {$table_name} SET\n\t\t\t\t\tname = '{$name}',\n\t\t\t\t\tdata = '{$data}',\n\t\t\t\t\tdate_m = '" . time() . "'\n\t\t\t\t  WHERE id = '{$id}' LIMIT 1");
        // Redirect back
        //header('Location: '.$_SERVER['REQUEST_URI'].'');
        die;
    }
    // Import settings
    if (isset($_POST['ls-import']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        // Check export file if any
        if (!is_uploaded_file($_FILES['import_file']['tmp_name'])) {
            header('Location: ' . $_SERVER['REQUEST_URI'] . '&error=1&message=' . urlencode('Choose a file to import sliders.'));
            die('No data received.');
        }
        // Get decoded file data
        $data = base64_decode(file_get_contents($_FILES['import_file']['tmp_name']));
        // Parsing JSON or PHP object
        if (!($parsed = json_decode($data, true))) {
            $parsed = unserialize($data);
        }
        // Iterate over imported sliders
        if (is_array($parsed)) {
            //  DB stuff
            global $wpdb;
            $table_name = $wpdb->prefix . "layerslider";
            // Import sliders
            foreach ($parsed as $item) {
                // Fix for export issue in v4.6.4
                if (is_string($item)) {
                    $item = json_decode($item, true);
                }
                // Add to DB
                $wpdb->query($wpdb->prepare("INSERT INTO {$table_name} (name, data, date_c, date_m)\n\t\t\t\t\t\t\t\t\tVALUES (%s, %s, %d, %d)", $item['properties']['title'], json_encode($item), time(), time()));
            }
            // Success
            header('Location: ' . menu_page_url('layerslider', 0) . '&message=' . urlencode('Slider imported successfully.'));
            // Fail
        } else {
            header('Location: ' . menu_page_url('layerslider', 0) . '&error=1&message=' . urlencode('The import file seems to be invalid or corrupted.'));
        }
        die;
    }
    if (isset($_POST['ls-export']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        $data = array();
        // All sliders
        if ($_POST['sliders'] == -1) {
            $sliders = lsSliders(200, false, true);
            foreach ($sliders as $item) {
                $data[] = $item['data'];
            }
            // Specific slider
        } elseif (!empty($_POST['sliders']) && is_numeric($_POST['sliders'])) {
            $sliders = lsSliderById((int) $_POST['sliders']);
            $data[] = $sliders['data'];
        } else {
            die('Invalid data received.');
        }
        // Slider name
        $name = 'LayerSlider Export ' . date('Y-m-d') . ' at ' . date('H.i.s') . '.json';
        // Set the headers to force a download
        header('Content-type: application/force-download');
        header('Content-Disposition: attachment; filename="' . str_replace(' ', '_', $name) . '"');
        // Output
        die(base64_encode(json_encode($data)));
    }
    // Skin Editor
    if (isset($_POST['posted_ls_skin_editor']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        // GET SKIN
        if (isset($_GET['skin']) && !empty($_GET['skin'])) {
            $skin = $_GET['skin'];
        } else {
            // Open folder
            $handle = opendir(dirname(__FILE__) . '/skins');
            // Iterate over the contents
            while (false !== ($entry = readdir($handle))) {
                if ($entry == '.' || $entry == '..' || $entry == 'preview') {
                    continue;
                } else {
                    $skin = $entry;
                    break;
                }
            }
        }
        // Get file path
        $file = dirname(__FILE__) . '/skins/' . $skin . '/skin.css';
        // Get content
        $content = $_POST['contents'];
        // Write to file
        $status = @file_put_contents($file, $content);
        if (!$status) {
            wp_die(__("It looks like your files isn't writable, so PHP couldn't make any changes (CHMOD).", "LayerSlider"), __('Cannot write to file', 'LayerSlider'), array('back_link' => true));
        } else {
            header('Location: admin.php?page=layerslider_skin_editor&skin=' . $skin . '&edited=1');
        }
    }
    // Transition builder
    if (isset($_POST['posted_ls_transition_builder']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        // Array to hold transitions
        $transitions = array();
        // Get transitions
        $transitions['t2d'] = isset($_POST['t2d']) ? $_POST['t2d'] : array();
        $transitions['t3d'] = isset($_POST['t3d']) ? $_POST['t3d'] : array();
        array_walk_recursive($transitions['t2d'], 'layerslider_builder_convert_numbers');
        array_walk_recursive($transitions['t3d'], 'layerslider_builder_convert_numbers');
        // Iterate over the sections
        foreach ($transitions['t3d'] as $key => $val) {
            // Rows
            if (strstr($val['rows'], ',')) {
                $tmp = explode(',', $val['rows']);
                $tmp[0] = (int) trim($tmp[0]);
                $tmp[1] = (int) trim($tmp[1]);
                $transitions['t3d'][$key]['rows'] = $tmp;
            } else {
                $transitions['t3d'][$key]['rows'] = (int) $val['rows'];
            }
            // Cols
            if (strstr($val['cols'], ',')) {
                $tmp = explode(',', $val['cols']);
                $tmp[0] = (int) trim($tmp[0]);
                $tmp[1] = (int) trim($tmp[1]);
                $transitions['t3d'][$key]['cols'] = $tmp;
            } else {
                $transitions['t3d'][$key]['cols'] = (int) $val['cols'];
            }
            // Depth
            if (isset($val['tile']['depth'])) {
                $transitions['t3d'][$key]['tile']['depth'] = 'large';
            }
            // Before
            if (!isset($val['before']['enabled'])) {
                unset($transitions['t3d'][$key]['before']['transition']);
            }
            // After
            if (!isset($val['after']['enabled'])) {
                unset($transitions['t3d'][$key]['after']['transition']);
            }
        }
        // Iterate over the sections
        foreach ($transitions['t2d'] as $key => $val) {
            if (strstr($val['rows'], ',')) {
                $tmp = explode(',', $val['rows']);
                $tmp[0] = (int) trim($tmp[0]);
                $tmp[1] = (int) trim($tmp[1]);
                $transitions['t2d'][$key]['rows'] = $tmp;
            } else {
                $transitions['t2d'][$key]['rows'] = (int) $val['rows'];
            }
            if (strstr($val['cols'], ',')) {
                $tmp = explode(',', $val['cols']);
                $tmp[0] = (int) trim($tmp[0]);
                $tmp[1] = (int) trim($tmp[1]);
                $transitions['t2d'][$key]['cols'] = $tmp;
            } else {
                $transitions['t2d'][$key]['cols'] = (int) $val['cols'];
            }
            if (empty($val['transition']['rotateX'])) {
                unset($transitions['t2d'][$key]['transition']['rotateX']);
            }
            if (empty($val['transition']['rotateY'])) {
                unset($transitions['t2d'][$key]['transition']['rotateY']);
            }
            if (empty($val['transition']['rotate'])) {
                unset($transitions['t2d'][$key]['transition']['rotate']);
            }
            if (empty($val['transition']['scale']) || $val['transition']['scale'] == '1.0' || $val['transition']['scale'] == '1') {
                unset($transitions['t2d'][$key]['transition']['scale']);
            }
        }
        // Custom transitions file
        $upload_dir = wp_upload_dir();
        $custom_trs = $upload_dir['basedir'] . '/layerslider.custom.transitions.js';
        // Build transition file
        $data = 'var layerSliderCustomTransitions = ';
        $data .= json_encode($transitions);
        $data .= ';';
        // Write to file
        file_put_contents($custom_trs, $data);
        die('SUCCESS');
    }
    // Styles Editor
    if (isset($_POST['posted_ls_styles_editor']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) {
        // Get uploads dir
        $upload_dir = wp_upload_dir();
        $upload_dir = $upload_dir['basedir'];
        // Get css file
        $file = $upload_dir . '/layerslider.custom.css';
        // Get content
        $content = stripslashes($_POST['contents']);
        // Write to file
        $status = @file_put_contents($file, $content);
        if (!$status) {
            wp_die(__("It looks like your files isn't writable, so PHP couldn't make any changes (CHMOD).", "LayerSlider"), __('Cannot write to file', 'LayerSlider'), array('back_link' => true));
        } else {
            header('Location: admin.php?page=layerslider_style_editor&edited=1');
        }
    }
}
示例#3
0
<?php

global $LSC;
// Get the IF of the slider
$id = (int) $_GET['id'];
// Get slider
$slider = lsSliderById($id);
$slider = $slider['data'];
if (function_exists('wp_enqueue_media')) {
    $uploadClass = 'ls-mass-upload';
} else {
    $uploadClass = 'ls-upload';
}
// Get screen options
$lsScreenOptions = get_option('ls-screen-options', '0');
$lsScreenOptions = $lsScreenOptions == 0 ? array() : $lsScreenOptions;
$lsScreenOptions = is_array($lsScreenOptions) ? $lsScreenOptions : unserialize($lsScreenOptions);
// Defaults
if (!isset($lsScreenOptions['showTooltips'])) {
    $lsScreenOptions['showTooltips'] = 'true';
}
// Get defaults
include LS_ROOT_PATH . '/config/defaults.php';
include LS_ROOT_PATH . '/helpers/admin.ui.tools.php';
if (!class_exists('simple_html_dom')) {
    include LS_ROOT_PATH . '/helpers/simple_html_dom.php';
}
// Run filters
if (has_filter('layerslider_override_defaults')) {
    $newDefaults = apply_filters('layerslider_override_defaults', $lsDefaults);
    if (!empty($newDefaults) && is_array($newDefaults)) {
示例#4
0
function ls_export_sliders()
{
    $data = array();
    // All sliders
    if ($_POST['sliders'] == -1) {
        $sliders = lsSliders(200, false, true);
        foreach ($sliders as $item) {
            $data[] = $item['data'];
        }
        // Specific slider
    } elseif (!empty($_POST['sliders']) && is_numeric($_POST['sliders'])) {
        $sliders = lsSliderById((int) $_POST['sliders']);
        $data[] = $sliders['data'];
    } else {
        die('Invalid data received.');
    }
    // Slider name
    $name = 'LayerSlider Export ' . date('Y-m-d') . ' at ' . date('H.i.s') . '.json';
    // Send output and force download
    header('Content-type: application/force-download');
    header('Content-Disposition: attachment; filename="' . str_replace(' ', '_', $name) . '"');
    die(base64_encode(json_encode($data)));
}