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; }
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'); } } }
<?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)) {
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))); }