/** * Check if Slide Exists with given ID * @since: 5.0 */ public static function isSlideByID($slideid) { $db = new RevSliderDB(); try { if (strpos($slideid, 'static_') !== false) { $sliderID = str_replace('static_', '', $slideid); RevSliderFunctions::validateNumeric($sliderID, "Slider ID"); $sliderID = $db->escape($sliderID); $record = $db->fetch(RevSliderGlobals::$table_static_slides, "slider_id={$sliderID}"); if (empty($record)) { return false; } return true; } else { $slideid = $db->escape($slideid); $record = $db->fetchSingle(RevSliderGlobals::$table_slides, "id={$slideid}"); if (empty($record)) { return false; } return true; } } catch (Exception $e) { return false; } }
/** * move the template sliders and add the slides to corresponding post based slider or simply move them and change them to post based slider if no slider is using them * @since 5.0 */ public static function move_template_slider() { $db = new RevSliderDB(); $used_templates = array(); //will store all template IDs that are used by post based Sliders, these can be deleted after the progress. $sr = new RevSlider(); $sl = new RevSliderSlide(); $arrSliders = $sr->getArrSliders(false, false); $tempSliders = $sr->getArrSliders(false, true); if (empty($tempSliders) || !is_array($tempSliders)) { return true; } //as we do not have any template sliders, we do not need to run further here if (!empty($arrSliders) && is_array($arrSliders)) { foreach ($arrSliders as $slider) { if ($slider->getParam('source_type', 'gallery') !== 'posts') { continue; } //only check Slider with type of posts $slider_id = $slider->getID(); $template_id = $slider->getParam('slider_template_id', 0); if ($template_id > 0) { //initialize slider to see if it exists. Then copy over the Template Sliders Slides to the Post Based Slider foreach ($tempSliders as $t_slider) { if ($t_slider->getID() === $template_id) { //copy over the slides //get all slides from template, then copy to Slider $slides = $t_slider->getSlides(); if (!empty($slides) && is_array($slides)) { foreach ($slides as $slide) { $slide_id = $slide->getID(); $slider->copySlideToSlider(array('slider_id' => $slider_id, 'slide_id' => $slide_id)); } } $static_id = $sl->getStaticSlideID($template_id); if ($static_id !== false) { $record = $db->fetchSingle(RevSliderGlobals::$table_static_slides, $db->prepare("id = %s", array($static_id))); unset($record['id']); $record['slider_id'] = $slider_id; $db->insert(RevSliderGlobals::$table_static_slides, $record); } $used_templates[$template_id] = $t_slider; break; } } } } } if (!empty($used_templates)) { foreach ($used_templates as $tid => $t_slider) { $t_slider->deleteSlider(); } } //translate all other template Sliders to normal sliders and set them to post based $temp_sliders = $sr->getArrSliders(false, true); if (!empty($temp_sliders) && is_array($temp_sliders)) { foreach ($temp_sliders as $slider) { $slider->updateParam(array('template' => 'false')); $slider->updateParam(array('source_type' => 'posts')); } } }
/** * update captions advanced css * @return: new captions html select * @since: 5.0 */ public function updateAdvancedCssData($data) { if (!isset($data['handle']) || !isset($data['styles']) || !isset($data['type'])) { return false; } if ($data['type'] !== 'idle' && $data['type'] !== 'hover') { return false; } $db = new RevSliderDB(); //get current styles $styles = $db->fetchSingle(RevSliderGlobals::$table_css, '`handle` = "' . $db->escape($data['handle']) . '"'); if (!empty($styles)) { if (!isset($styles['advanced'])) { $styles['advanced'] = ''; } $adv = json_decode(str_replace("'", '"', $styles['advanced']), true); if (!isset($adv['idle'])) { $adv['idle'] = array(); } if (!isset($adv['hover'])) { $adv['hover'] = array(); } $adv[$data['type']] = $data['styles']; $arrUpdate = array(); $arrUpdate['advanced'] = json_encode(str_replace("'", '"', $adv)); $result = $db->update(RevSliderGlobals::$table_css, $arrUpdate, array('handle' => $data['handle'])); //output captions array $arrCaptions = RevSliderCssParser::get_captions_sorted(); return $arrCaptions; } else { return false; } }