function ls_save_slider() { // Vars $id = (int) $_POST['id']; $settings = $slides = $callbacks = $data = array(); // Decode data parse_str($_POST['settings'], $settings); parse_str($_POST['callbacks'], $callbacks); if (!empty($_POST['slides']) && is_array($_POST['slides'])) { foreach ($_POST['slides'] as $key => $val) { $tmp = array(); parse_str($val, $tmp); $slides['ls_data']['layers'][$key] = $tmp['ls_data']['layers'][$key]; } } $data = array_merge_recursive($settings, $slides, $callbacks); $data = $data['ls_data']; $title = esc_sql($data['properties']['title']); $slug = !empty($data['properties']['slug']) ? esc_sql($data['properties']['slug']) : ''; // Relative URL if (isset($data['properties']['relativeurls'])) { $data = layerslider_convert_urls($data); } // WPML if (function_exists('icl_register_string')) { layerslider_register_wpml_strings($id, $data); } // Update the slider if (empty($id)) { LS_Sliders::add($title, $data); } else { LS_Sliders::update($id, $title, $data, $slug); } die(json_encode(array('status' => 'ok'))); }
function layerslider_register_settings() { // Global settings if (isset($_POST['posted_ls_global']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { update_option('layerslider_custom_capability', $_POST['custom_capability']); header('Location: admin.php?page=layerslider'); 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 = $wpdb->escape($slider['properties']['title']); $data = $wpdb->escape(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 = $wpdb->escape($data['properties']['title']); $data = $wpdb->escape(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['import']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { // Try to get slider data with JSON $import = json_decode(base64_decode($_POST['import']), true); // Invalid export code if (!is_array($import)) { // Try to get slider data with PHP unserialize $import = unserialize(base64_decode($_POST['import'])); // Failed to extract the slider data, exit if (!is_array($import)) { header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } } // Get WPDB Object global $wpdb; // Table name $table_name = $wpdb->prefix . "layerslider"; // Iterate over imported sliders foreach ($import as $item) { // 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)", $item['properties']['title'], json_encode($item), time(), time())); } // Redirect back header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } // 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'; /* echo '<pre>'; print_r($transitions); echo '</pre>'; die(); */ // 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'); } } }
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'); } } }
function layerslider_register_settings() { // Add slider if (isset($_POST['posted_add']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { // 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']]; } // DB data $name = $wpdb->escape($slider['properties']['title']); $data = $wpdb->escape(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')) { // 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']]; } // DB data $name = $wpdb->escape($data['properties']['title']); $data = $wpdb->escape(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['import']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { // Try to get slider data with JSON $import = json_decode(base64_decode($_POST['import']), true); // Invalid export code if (!is_array($import)) { // Try to get slider data with PHP unserialize $import = unserialize(base64_decode($_POST['import'])); // Failed to extract the slider data, exit if (!is_array($import)) { header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } } // Get WPDB Object global $wpdb; // Table name $table_name = $wpdb->prefix . "layerslider"; // Iterate over imported sliders foreach ($import as $item) { // 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)", $item['properties']['title'], json_encode($item), time(), time())); } // Redirect back header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } // 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'); } } }
function ls_save_slider() { // DB stuff global $wpdb; $table_name = $wpdb->prefix . LS_DB_TABLE; // Get slider ID if any $id = !empty($_POST['slider_id']) ? (int) $_POST['slider_id'] : ''; // Get slider data unless when we need to reset if ($_POST['layerkey'] == 0 && !empty($id)) { $data = array(); } else { $slider = LS_Sliders::find($id); $id = $slider['id']; $data = $slider['data']; } // 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); } // Save slider $author = get_current_user_id(); $name = esc_sql($data['properties']['title']); $slug = !empty($data['properties']['slug']) ? esc_sql($data['properties']['slug']) : ''; $data = esc_sql(json_encode($data)); $wpdb->query("INSERT INTO {$table_name} (id, author, name, slug, data, date_c, date_m) VALUES ('{$id}', '{$author}', '{$name}', '{$slug}', '{}', '" . time() . "', '" . time() . "')\n\t\t\t\t\t\t\tON DUPLICATE KEY UPDATE author = '{$author}', name = '{$name}', slug = '{$slug}', data = '{$data}', date_m = '" . time() . "'"); die(json_encode(array('status' => 'ok'))); }
function ls_save_slider() { // Vars $id = (int) $_POST['id']; $data = $_POST['sliderData']; // Parse slider settings $data['properties'] = json_decode(stripslashes(html_entity_decode($data['properties'])), true); // Parse slide data if (!empty($data['layers']) && is_array($data['layers'])) { foreach ($data['layers'] as $slideKey => $slideData) { $data['layers'][$slideKey] = json_decode(stripslashes(html_entity_decode($slideData)), true); } } $title = esc_sql($data['properties']['title']); $slug = !empty($data['properties']['slug']) ? esc_sql($data['properties']['slug']) : ''; // Relative URL if (isset($data['properties']['relativeurls'])) { $data = layerslider_convert_urls($data); } // WPML if (function_exists('icl_register_string')) { layerslider_register_wpml_strings($id, $data); } // Delete transient (if any) to // invalidate outdated data delete_transient('ls-slider-data-' . $id); // Update the slider if (empty($id)) { LS_Sliders::add($title, $data); } else { LS_Sliders::update($id, $title, $data, $slug); } die(json_encode(array('status' => 'ok'))); }
function ls_save_slider() { // DB stuff global $wpdb; $table_name = $wpdb->prefix . LS_DB_TABLE; // Get slider ID if any $id = !empty($_POST['slider_id']) ? (int) $_POST['slider_id'] : ''; // Get slider data unless when we need to reset if ($_POST['layerkey'] == 0 && !empty($id)) { $data = array(); } else { $slider = lsSliderById($id); $id = $slider['id']; $data = $slider['data']; } // 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); } // Save slider $name = esc_sql($data['properties']['title']); $data = esc_sql(json_encode($data)); $wpdb->query("INSERT INTO {$table_name} (id, name, data, date_c, date_m) VALUES ('{$id}', '{$name}', '{}', '" . time() . "', '" . time() . "')\n\t\t\t\t\t\t\tON DUPLICATE KEY UPDATE name = '{$name}', data = '{$data}', date_m = '" . time() . "'"); // Return the slider ID echo $wpdb->insert_id ? $wpdb->insert_id : $id; die; }
function layerslider_register_settings() { // Add slider if (isset($_POST['posted_add']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { // 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(data, date_c, date_m)\n\t\t\t\t\t\t\t\tVALUES (%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']]; } // DB data $name = $wpdb->escape($slider['properties']['title']); $data = $wpdb->escape(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')) { // 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); $slider = json_decode($slider['data'], true); // Empty the slider if ($_POST['layerkey'] == 0) { $slider = array(); } // 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']]; } // DB data $name = $wpdb->escape($slider['properties']['title']); $data = $wpdb->escape(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 WHERE id = '{$id}' LIMIT 1"); // Redirect back //header('Location: '.$_SERVER['REQUEST_URI'].''); die; } // Import settings if (isset($_POST['import']) && strstr($_SERVER['REQUEST_URI'], 'layerslider')) { // Try to get slider data with JSON $import = json_decode(base64_decode($_POST['import']), true); // Invalid export code if (!is_array($import)) { // Try to get slider data with PHP unserialize $import = unserialize(base64_decode($_POST['import'])); // Failed to extract the slider data, exit if (!is_array($import)) { header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } } // Get WPDB Object global $wpdb; // Table name $table_name = $wpdb->prefix . "layerslider"; // Iterate over imported sliders foreach ($import as $item) { // 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)", $item['properties']['title'], json_encode($item), time(), time())); } // Redirect back header('Location: ' . $_SERVER['REQUEST_URI'] . ''); die; } }