Edit File by line
/home/zeestwma/ajeebong.../wp-conte.../plugins/revslide.../admin/includes
File: folder.class.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* @author ThemePunch <info@themepunch.com>
[2] Fix | Delete
* @link https://www.themepunch.com/
[3] Fix | Delete
* @copyright 2024 ThemePunch
[4] Fix | Delete
* @since 6.0
[5] Fix | Delete
*/
[6] Fix | Delete
[7] Fix | Delete
if(!defined('ABSPATH')) exit();
[8] Fix | Delete
[9] Fix | Delete
class RevSliderFolder extends RevSliderSlider {
[10] Fix | Delete
[11] Fix | Delete
public $folder = false;
[12] Fix | Delete
[13] Fix | Delete
/**
[14] Fix | Delete
* Initialize A slider as a Folder
[15] Fix | Delete
**/
[16] Fix | Delete
public function init_folder_by_id($id){
[17] Fix | Delete
global $wpdb;
[18] Fix | Delete
[19] Fix | Delete
$folder = $wpdb->get_row($wpdb->prepare("SELECT * FROM ". $wpdb->prefix . RevSliderFront::TABLE_SLIDER ." WHERE `id` = %s AND `type` = 'folder'", $id), ARRAY_A);
[20] Fix | Delete
[21] Fix | Delete
if(!empty($folder)){
[22] Fix | Delete
$this->id = $this->get_val($folder, 'id');
[23] Fix | Delete
$this->title = $this->get_val($folder, 'title');
[24] Fix | Delete
$this->alias = $this->get_val($folder, 'alias');
[25] Fix | Delete
$this->settings = (array)json_decode($this->get_val($folder, 'settings', ''));
[26] Fix | Delete
$this->params = (array)json_decode($this->get_val($folder, 'params', ''));
[27] Fix | Delete
$this->folder = true;
[28] Fix | Delete
return true;
[29] Fix | Delete
}else{
[30] Fix | Delete
return false;
[31] Fix | Delete
}
[32] Fix | Delete
}
[33] Fix | Delete
[34] Fix | Delete
[35] Fix | Delete
/**
[36] Fix | Delete
* Get all Folders from the Slider Table
[37] Fix | Delete
**/
[38] Fix | Delete
public function get_folders(){
[39] Fix | Delete
global $wpdb;
[40] Fix | Delete
[41] Fix | Delete
$folders = array();
[42] Fix | Delete
$entries = $wpdb->get_results("SELECT `id` FROM ". $wpdb->prefix . RevSliderFront::TABLE_SLIDER ." WHERE `type` = 'folder'", ARRAY_A);
[43] Fix | Delete
[44] Fix | Delete
if(!empty($entries)){
[45] Fix | Delete
foreach($entries as $folder){
[46] Fix | Delete
$slider = new RevSliderFolder();
[47] Fix | Delete
$folder_id = $this->get_val($folder, 'id');
[48] Fix | Delete
$slider->init_folder_by_id($folder_id);
[49] Fix | Delete
[50] Fix | Delete
$folders[] = $slider;
[51] Fix | Delete
}
[52] Fix | Delete
}
[53] Fix | Delete
[54] Fix | Delete
return $folders;
[55] Fix | Delete
}
[56] Fix | Delete
[57] Fix | Delete
[58] Fix | Delete
/**
[59] Fix | Delete
* Get all Folders from the Slider Table
[60] Fix | Delete
**/
[61] Fix | Delete
public function get_folder_by_id($id){
[62] Fix | Delete
global $wpdb;
[63] Fix | Delete
[64] Fix | Delete
$folder = $wpdb->get_row($wpdb->prepare("SELECT * FROM ". $wpdb->prefix . RevSliderFront::TABLE_SLIDER ." WHERE `type` = 'folder' AND `id` = %s", $id), ARRAY_A);
[65] Fix | Delete
[66] Fix | Delete
return $folder;
[67] Fix | Delete
}
[68] Fix | Delete
[69] Fix | Delete
[70] Fix | Delete
/**
[71] Fix | Delete
* Create a new Slider as a Folder
[72] Fix | Delete
**/
[73] Fix | Delete
public function create_folder($alias = 'New Folder', $parent = 0){
[74] Fix | Delete
global $wpdb;
[75] Fix | Delete
[76] Fix | Delete
$title = esc_html($alias);
[77] Fix | Delete
$alias = sanitize_title($title);
[78] Fix | Delete
$temp = $title;
[79] Fix | Delete
$folder = false;
[80] Fix | Delete
$ti = 1;
[81] Fix | Delete
while($this->alias_exists($alias)){ //set a new alias and title if its existing in database
[82] Fix | Delete
$title = $temp . ' ' . $ti;
[83] Fix | Delete
$alias = sanitize_title($title);
[84] Fix | Delete
$ti++;
[85] Fix | Delete
}
[86] Fix | Delete
[87] Fix | Delete
//check if Slider with title and/or alias exists, if yes change both to stay unique
[88] Fix | Delete
$done = $wpdb->insert($wpdb->prefix . RevSliderFront::TABLE_SLIDER, array('title' => $title, 'alias' => $alias, 'type' => 'folder'));
[89] Fix | Delete
if($done !== false){
[90] Fix | Delete
$this->init_folder_by_id($wpdb->insert_id);
[91] Fix | Delete
$folder = $this;
[92] Fix | Delete
if(intval($parent) > 0){
[93] Fix | Delete
$slider = new RevSliderFolder();
[94] Fix | Delete
$slider->init_folder_by_id($parent);
[95] Fix | Delete
$children = $slider->get_children();
[96] Fix | Delete
$children = (!is_array($children)) ? array() : $children;
[97] Fix | Delete
$children[] = $this->get_id();
[98] Fix | Delete
$slider->add_slider_to_folder($children, $parent);
[99] Fix | Delete
}
[100] Fix | Delete
}
[101] Fix | Delete
[102] Fix | Delete
return $folder;
[103] Fix | Delete
}
[104] Fix | Delete
[105] Fix | Delete
[106] Fix | Delete
/**
[107] Fix | Delete
* Add a Slider ID to a Folder
[108] Fix | Delete
**/
[109] Fix | Delete
public function add_slider_to_folder($children, $folder_id, $replace_all = true){
[110] Fix | Delete
global $wpdb;
[111] Fix | Delete
$response = false;
[112] Fix | Delete
$folder = $wpdb->get_row($wpdb->prepare("SELECT * FROM ". $wpdb->prefix . RevSliderFront::TABLE_SLIDER ." WHERE `id` = %s AND `type` = 'folder'", $folder_id), ARRAY_A);
[113] Fix | Delete
[114] Fix | Delete
if(!empty($folder)){
[115] Fix | Delete
$settings = json_decode($this->get_val($folder, 'settings'), true);
[116] Fix | Delete
if(!isset($settings['children'])){
[117] Fix | Delete
$settings['children'] = array();
[118] Fix | Delete
}
[119] Fix | Delete
[120] Fix | Delete
if($replace_all){
[121] Fix | Delete
$settings['children'] = $children;
[122] Fix | Delete
}else{
[123] Fix | Delete
$children = (array)$children;
[124] Fix | Delete
if(!empty($children)){
[125] Fix | Delete
foreach($children as $child){
[126] Fix | Delete
if(!in_array($child, $settings['children'])){
[127] Fix | Delete
$settings['children'][] = $child;
[128] Fix | Delete
}
[129] Fix | Delete
}
[130] Fix | Delete
}
[131] Fix | Delete
}
[132] Fix | Delete
$response = $wpdb->update($wpdb->prefix . RevSliderFront::TABLE_SLIDER, array('settings' => json_encode($settings)), array('id' => $folder_id));
[133] Fix | Delete
$response = ($response == false && empty($wpdb->last_error)) ? true : $response;
[134] Fix | Delete
}
[135] Fix | Delete
[136] Fix | Delete
return $response;
[137] Fix | Delete
}
[138] Fix | Delete
[139] Fix | Delete
[140] Fix | Delete
/**
[141] Fix | Delete
* Get the Children of the folder (if any exist)
[142] Fix | Delete
**/
[143] Fix | Delete
public function get_children(){
[144] Fix | Delete
return $this->get_val($this->settings, 'children', array());
[145] Fix | Delete
}
[146] Fix | Delete
[147] Fix | Delete
/**
[148] Fix | Delete
* Get the Children of the folder (if any exist)
[149] Fix | Delete
* @since: 6.1.4
[150] Fix | Delete
**/
[151] Fix | Delete
public function set_children($children){
[152] Fix | Delete
return $this->set_val($this->settings, 'children', $children);
[153] Fix | Delete
}
[154] Fix | Delete
}
[155] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function