مؤسسة الركن المكتبي التجارية تأسست على رؤية مُختلفة، تهدف إلى تقديم تجربة فريدة من نوعها في الأثاث المكتبي والفندقي لكي نضمن بيئة عمل توفر مساحات عمل مريحة وصحية، حيث نمتاز بخبراتنا الواسعة فأصبحت أحد أفضل المؤسسات الوطنية الرائدة في تجارة وصناعة الأثاث والتصميم الداخلي والسبّاقة على مستوى المملكة في المفروشات المكتبية والفندقية والمنزلية، نهدف الى خلق قيمة لعملائنا عن طريق توفير الجودة العالية في مقابل السعر المناسب.
منتجاتنا الجودة العالية في مقابل السعر المناسب
أغسطس 15, 2022
UX-антипаттерны в действии – Анализ скриншотов популярных онлайн-площадок Просматривая сотни скриншотов популярных онлайн-площадок, мы сразу же видим: навязчивое […]
يناير 1, 2023
Vavada рабочее зеркало вход для удобного доступа Vavada рабочее зеркало вход Чтобы получить моментальный доступ к любимым развлечениям, […]
مايو 29, 2023
Эпикстар казино играй и выигрывай без проблем онлайн Эпикстар казино играй и выигрывай онлайн без проблем Добро пожаловать […]
سبتمبر 16, 2023
Рацион 2025 год что ждет нас на столах Ключ к вашему рациону 2025 года – персонализация. Забудьте о […]
أكتوبر 16, 2023
Авто 2025 – Ваш выбор лучших моделей по всем классам Выберите свой идеальный автомобиль 2025 года. Наш гид […]
فبراير 6, 2025
فبراير 6, 2025
فبراير 6, 2025
أغسطس 15, 2022
UX-антипаттерны в действии – Анализ скриншотов популярных онлайн-площадок Просматривая сотни скриншотов популярных онлайн-площадок, мы сразу же видим: навязчивое […]
يناير 1, 2023
Vavada рабочее зеркало вход для удобного доступа Vavada рабочее зеркало вход Чтобы получить моментальный доступ к любимым развлечениям, […]
مايو 29, 2023
Эпикстар казино играй и выигрывай без проблем онлайн Эпикстар казино играй и выигрывай онлайн без проблем Добро пожаловать […]
سبتمبر 16, 2023
Рацион 2025 год что ждет нас на столах Ключ к вашему рациону 2025 года – персонализация. Забудьте о […]
أكتوبر 16, 2023
Авто 2025 – Ваш выбор лучших моделей по всем классам Выберите свой идеальный автомобиль 2025 года. Наш гид […]
فبراير 6, 2025
فبراير 6, 2025
فبراير 6, 2025
*(……&*6干sfa绅士的风度sfsdfd不打发打发死啊好办法
/home/officeco/public_html/wp-content/plugins/revslider/admin/includes/export.class.php
<?php
/**
* @author ThemePunch <info@themepunch.com>
* @link https://www.themepunch.com/
* @copyright 2024 ThemePunch
*/
if(!defined('ABSPATH')) exit();
class RevSliderSliderExport extends RevSliderSlider {
private $used_captions;
private $used_animations;
private $used_images;
private $used_svg;
private $used_videos;
private $used_navigations;
private $slider_id;
private $slider_title;
public $slider_alias;
private $slider_params;
private $slider_settings;
private $export_slides;
private $static_slide;
private $all_slides;
private $export_data;
private $navigation_data;
private $style_data;
private $animations_data;
public $usepcl;
public $zip;
public $export_path_zip;
public $export_url_zip;
public $pclzip;
public function __construct($title = 'export'){
$this->used_captions = array();
$this->used_animations = array();
$this->used_images = array();
$this->used_svg = array();
$this->used_videos = array();
$this->used_navigations = array();
$this->all_slides = array();
$this->navigation_data = false;
$this->style_data = '';
$this->animations_data = '';
$this->usepcl = false;
$wp_upload_dir = wp_upload_dir();
$this->export_path_zip = $this->get_val($wp_upload_dir, 'basedir').'/'.$title.'.zip';
$this->export_url_zip = $this->get_val($wp_upload_dir, 'baseurl').'/'.$title.'.zip';
}
/**
* return the used images, for SEO
*/
public function get_used_images(){
return $this->used_images;
}
/**
* export slider from data, output a file for download
* @before: RevSliderSlider::exportSlider();
*/
public function export_slider($id = 0){
//slider needs to be initialized :)
if($id > 0){
$this->init_by_id($id);
}
//check if an update is needed
if(version_compare($this->get_param(array('settings', 'version')), get_option('revslider_update_version', '6.0.0'), '<')){
$upd = new RevSliderPluginUpdate();
$upd->upgrade_slider_to_latest($this);
$this->init_by_id($id);
}
$this->set_parameters();
$this->remove_image_ids();
$this->remove_background_image();
$this->add_used_images();
$this->add_used_videos();
//$this->add_used_captions();
//$this->add_used_animations();
$this->add_used_navigations();
$this->add_used_svg();
$this->modify_used_data();
$this->serialize_export_data();
$this->serialize_navigation_data();
$this->prepare_caption_css();
$this->serialize_animation_data();
$this->create_export_zip();
$this->add_svg_to_zip();
$this->add_images_videos_to_zip();
$this->add_slider_export_to_zip();
$this->add_animations_to_zip();
$this->add_styles_to_zip();
$this->add_navigation_to_zip();
$this->add_static_styles_to_zip();
$this->add_info_to_zip();
$this->close_export_zip();
$this->push_zip_to_client();
$this->delete_export_zip();
exit;
}
/**
* set slides and slider parameters
**/
public function set_parameters(){
$this->slider_id = $this->get_id();
$this->slider_title = $this->get_title();
$this->slider_alias = $this->get_alias();
$this->slider_params = $this->get_params();
$this->slider_settings = $this->get_settings();
$this->export_slides = $this->get_slides_for_export();
$this->static_slide = $this->get_static_slide_for_export();
if(!empty($this->export_slides) && count($this->export_slides) > 0) $this->all_slides = array_merge($this->all_slides, $this->export_slides);
if(!empty($this->static_slide) && count($this->static_slide) > 0) $this->all_slides = array_merge($this->all_slides, $this->static_slide);
}
/**
* remove the image_id as its not needed in export
**/
public function remove_image_ids(){
if($this->get_val($this->slider_params, array('troubleshooting', 'alternateURLId'), false) !== false){
unset($this->slider_params['troubleshooting']['alternateURLId']);
}
if(!empty($this->export_slides)){
foreach($this->export_slides as $k => $s){
if($this->get_val($this->export_slides[$k], array('params', 'bg', 'imageId'), false) !== false){
unset($this->export_slides[$k]['params']['bg']['imageId']);
}
/*if($this->get_val($this->export_slides[$k], array('params', 'bg', 'videoId'), false) !== false){ //TODO maybe not delete, depending on if this is a wordpress media library id (then yes) or not
unset($this->export_slides[$k]['params']['bg']['videoId']);
}*/
if($this->get_val($this->export_slides[$k], array('params', 'thumb', 'customThumbSrcId'), false) !== false){
unset($this->export_slides[$k]['params']['thumb']['customThumbSrcId']);
}
if($this->get_val($this->export_slides[$k], array('params', 'thumb', 'customAdminThumbSrcId'), false) !== false){
unset($this->export_slides[$k]['params']['thumb']['customAdminThumbSrcId']);
}
if($this->get_val($this->export_slides[$k], array('params', 'bg', 'lastLoadedImage'), false) !== false){
unset($this->export_slides[$k]['params']['bg']['lastLoadedImage']);
}
}
}
if(!empty($this->static_slide)){
foreach($this->static_slide as $k => $s){
if($this->get_val($this->static_slide[$k], array('params', 'bg', 'imageId'), false) !== false){
unset($this->static_slide[$k]['params']['bg']['imageId']);
}
/*if($this->get_val($this->static_slide[$k], array('params', 'bg', 'videoId'), false) !== false){ //TODO maybe not delete, depending on if this is a wordpress media library id (then yes) or not
unset($this->static_slide[$k]['params']['bg']['videoId']);
}*/
if($this->get_val($this->static_slide[$k], array('params', 'thumb', 'customThumbSrcId'), false) !== false){
unset($this->static_slide[$k]['params']['thumb']['customThumbSrcId']);
}
if($this->get_val($this->static_slide[$k], array('params', 'thumb', 'customAdminThumbSrcId'), false) !== false){
unset($this->static_slide[$k]['params']['thumb']['customAdminThumbSrcId']);
}
if($this->get_val($this->static_slide[$k], array('params', 'bg', 'lastLoadedImage'), false) !== false){
unset($this->static_slide[$k]['params']['bg']['lastLoadedImage']);
}
}
}
}
/**
* remove the background image on transparent or solid colored slides
**/
public function remove_background_image(){
if(!empty($this->export_slides)){
foreach($this->export_slides as $k => $s){
if(isset($this->export_slides[$k]['params']) && (in_array($this->get_val($this->export_slides[$k]['params'], array('bg', 'type')), array('solid', 'trans', 'transparent'), true))){
if($this->get_val($this->export_slides[$k]['params'], array('bg', 'image'), false) !== false)
$this->export_slides[$k]['params']['layout']['bg']['image'] = '';
}
}
}
if(!empty($this->static_slide)){
foreach($this->static_slide as $k => $s){
if(isset($this->static_slide[$k]['params']) && (in_array($this->get_val($this->static_slide[$k]['params'], array('bg', 'type')), array('solid', 'trans', 'transparent'), true))){
if($this->get_val($this->static_slide[$k]['params'], array('bg', 'image'), false) !== false)
$this->static_slide[$k]['params']['bg']['image'] = '';
}
}
}
}
/**
* add all used images
**/
public function add_used_images(){
$image = $this->get_val($this->slider_params, array('layout', 'bg', 'image'));
$a_url = $this->get_val($this->slider_params, array('troubleshooting', 'alternateURL'));
if($image != '') $this->used_images[$image] = true;
if($a_url != '') $this->used_images[$a_url] = true;
if(!empty($this->all_slides) && count($this->all_slides) > 0){
foreach($this->all_slides as $key => $slide){
$params = $this->get_val($slide, 'params', array());
$layers = $this->get_val($slide, 'layers', array());
$image = $this->get_val($params, array('bg', 'image'));
$thumb = $this->get_val($params, array('thumb', 'customThumbSrc'));
$a_thumb = $this->get_val($params, array('thumb', 'customAdminThumbSrc'));
if($image != '') $this->used_images[$image] = true;
if($thumb != '') $this->used_images[$thumb] = true;
if($a_thumb != '') $this->used_images[$a_thumb] = true;
if(!empty($layers)){
foreach($layers as $layer){
$type = $this->get_val($layer, 'type', 'text');
$image = $this->get_val($layer, array('media', 'imageUrl'));
$bg_image = $this->get_val($layer, array('idle', 'backgroundImage'));
if($image != '') $this->used_images[$image] = true;
if($bg_image != '') $this->used_images[$bg_image] = true;
if(in_array($type, array('video', 'audio'))){
$poster = $this->get_val($layer, array('media', 'posterUrl'), '');
if($poster != '') $this->used_images[$poster] = true;
}
if($type === 'video'){
$very_big = $this->get_val($layer, array('media', 'thumbs', 'veryBig'));
$big = $this->get_val($layer, array('media', 'thumbs', 'big'));
$large = $this->get_val($layer, array('media', 'thumbs', 'large'));
$medium = $this->get_val($layer, array('media', 'thumbs', 'medium'));
$small = $this->get_val($layer, array('media', 'thumbs', 'small'));
$very_big = (is_array($very_big) && isset($very_big['url'])) ? $very_big['url'] : $very_big;
$big = (is_array($big) && isset($big['url'])) ? $big['url'] : $big;
$large = (is_array($large) && isset($large['url'])) ? $large['url'] : $large;
$medium = (is_array($medium) && isset($medium['url'])) ? $medium['url'] : $medium;
$small = (is_array($small) && isset($small['url'])) ? $small['url'] : $small;
if($very_big != '') $this->used_images[$very_big] = true;
if($big != '') $this->used_images[$big] = true;
if($large != '') $this->used_images[$large] = true;
if($medium != '') $this->used_images[$medium] = true;
if($small != '') $this->used_images[$small] = true;
}
}
}
}
}
}
/**
* add all used videos, also removing values if unneeded
**/
public function add_used_videos(){
if(!empty($this->all_slides) && count($this->all_slides) > 0){
foreach($this->all_slides as $k => $slide){
$params = $this->get_val($slide, 'params', array());
$layers = $this->get_val($slide, 'layers', array());
$static = $this->get_val($params, array('static', 'isstatic'), false);
//html5 video
if($this->get_val($params, array('bg', 'type')) == 'html5'){
if($this->get_val($params, array('bg', 'mpeg')) != '') $this->used_videos[$this->get_val($params, array('bg', 'mpeg'))] = true;
if($this->get_val($params, array('bg', 'webm')) != '') $this->used_videos[$this->get_val($params, array('bg', 'webm'))] = true;
if($this->get_val($params, array('bg', 'ogv')) != '') $this->used_videos[$this->get_val($params, array('bg', 'ogv'))] = true;
}else{
if($static){
if($this->get_val($params, array('bg', 'mpeg')) != '') $this->set_val($this->static_slide, array(0, 'params', 'bg', 'mpeg'), '');
if($this->get_val($params, array('bg', 'webm')) != '') $this->set_val($this->static_slide, array(0, 'params', 'bg', 'webm'), '');
if($this->get_val($params, array('bg', 'ogv')) != '') $this->set_val($this->static_slide, array(0, 'params', 'bg', 'ogv'), '');
}else{
if($this->get_val($params, array('bg', 'mpeg')) != '') $this->set_val($this->export_slides, array($k, 'params', 'bg', 'mpeg'), '');
if($this->get_val($params, array('bg', 'webm')) != '') $this->set_val($this->export_slides, array($k, 'params', 'bg', 'webm'), '');
if($this->get_val($params, array('bg', 'ogv')) != '') $this->set_val($this->export_slides, array($k, 'params', 'bg', 'ogv'), '');
}
}
//image thumbnail
if(!empty($layers)){
foreach($layers as $lk => $layer){
if(in_array($this->get_val($layer, 'type'), array('video', 'audio'))){
if($this->get_val($layer, array('media', 'mediaType')) == 'html5'){
if($this->get_val($layer, array('media', 'mp4Url'), '') != '') $this->used_videos[$this->get_val($layer, array('media', 'mp4Url'), '')] = true;
if($this->get_val($layer, array('media', 'webmUrl'), '') != '') $this->used_videos[$this->get_val($layer, array('media', 'webmUrl'), '')] = true;
if($this->get_val($layer, array('media', 'ogvUrl'), '') != '') $this->used_videos[$this->get_val($layer, array('media', 'ogvUrl'), '')] = true;
}else{ //if(!in_array($this->get_val($layer, array('media', 'mediaType')), array('html5', 'audio')))
if($this->get_val($layer, array('media', 'audioUrl')) != '') $this->used_videos[$this->get_val($layer, array('media', 'audioUrl'))] = true;
$this->set_val($layer, array('media', 'mp4Url'), '');
$this->set_val($layer, array('media', 'webmUrl'), '');
$this->set_val($layer, array('media', 'ogvUrl'), '');
}
if($static){
$this->static_slide[0]['layers'][$lk] = $layer;
}else{
$this->export_slides[$k]['layers'][$lk] = $layer;
}
}
}
}
}
}
}
/**
* add all used captions
* @obsolete since: 6.0
**/
public function add_used_captions(){
if(!empty($this->all_slides) && count($this->all_slides) > 0){
foreach($this->all_slides as $key => $slide){
$layers = $this->get_val($slide, 'layers', array());
if(!empty($layers)){
foreach($layers as $lk => $layer){
if($this->get_val($layer, array('idle', 'style')) != '') $this->used_captions[$this->get_val($layer, array('idle', 'style'))] = true;
}
}
}
}
}
/**
* add all used animations
* @obsolete since: 6.0
**/
public function add_used_animations(){
if(!empty($this->all_slides) && count($this->all_slides) > 0){
foreach($this->all_slides as $key => $slide){
$layers = $this->get_val($slide, 'layers', array());
if(!empty($layers)){
foreach($layers as $lk => $layer){
if(strpos($this->get_val($layer, 'animation'), 'customin') !== false) $this->used_animations[str_replace('customin-', '', $this->get_val($layer, 'animation'))] = true;
if(strpos($this->get_val($layer, 'endanimation'), 'customout') !== false) $this->used_animations[str_replace('customout-', '', $this->get_val($layer, 'endanimation'))] = true;
}
}
}
}
}
/**
* add navigations if not default animation
**/
public function add_used_navigations(){
$nav = new RevSliderNavigation();
$navigations = $nav->get_all_navigations(false, true);
$arrows = $this->get_val($this->slider_params, array('nav', 'arrows', 'style'), false);
$bullets = $this->get_val($this->slider_params, array('nav', 'bullets', 'style'), false);
$thumbs = $this->get_val($this->slider_params, array('nav', 'thumbs', 'style'), false);
$tabs = $this->get_val($this->slider_params, array('nav', 'tabs', 'style'), false);
$scrubber = $this->get_val($this->slider_params, array('nav', 'scrubber', 'style'), false);
if($arrows !== false) $this->used_navigations[$arrows] = true;
if($bullets !== false) $this->used_navigations[$bullets] = true;
if($thumbs !== false) $this->used_navigations[$thumbs] = true;
if($tabs !== false) $this->used_navigations[$tabs] = true;
if($scrubber !== false) $this->used_navigations[$scrubber] = true;
}
/**
* add all used svg
**/
public function add_used_svg(){
if(!empty($this->all_slides) && count($this->all_slides) > 0){
foreach($this->all_slides as $key => $slide){
$layers = $this->get_val($slide, 'layers');
if(!empty($layers)){
foreach($layers as $lk => $layer){
if($this->get_val($layer, 'type') == 'svg'){
$svg = $this->get_val($layer, array('svg', 'source'));
if($svg !== ''){
$this->used_svg[$svg] = true;
}
}
}
}
}
}
}
/**
* modify the used stuff data
**/
public function modify_used_data(){
$d = array('used_svg' => $this->used_svg, 'used_images' => $this->used_images, 'used_videos' => $this->used_videos);
$d = apply_filters('revslider_exportSlider_usedMedia', $d, $this->all_slides, $this->slider_params); //$this->export_slides, $this->static_slide,
$this->used_svg = $d['used_svg'];
$this->used_images = $d['used_images'];
$this->used_videos = $d['used_videos'];
}
/**
* serialize the export data
**/
public function serialize_export_data(){
$data = array(
'id' => $this->slider_id,
'title' => $this->slider_title,
'alias' => $this->slider_alias,
'params' => $this->slider_params,
'slides' => $this->export_slides,
'settings' => $this->slider_settings
);
if(!empty($this->static_slide)) $data['static_slides'] = $this->static_slide;
$data = apply_filters('revslider_exportSlider_export_data', $data, $this);
$this->export_data = json_encode($data);
}
/**
* serialize the navigation data
**/
public function serialize_navigation_data(){
if(!empty($this->used_navigations)){
$nav = new RevSliderNavigation();
$this->navigation_data = $nav->export_navigation($this->used_navigations);
if($this->navigation_data !== false) $this->navigation_data = json_encode($this->navigation_data);
}
}
/**
* prepare the css for export
**/
public function prepare_caption_css(){
if(!empty($this->used_captions)){
$captions = array();
foreach($this->used_captions as $class => $val){
$caption = $this->get_captions_content($class);
if(!empty($caption)){
unset($caption['id']);
$captions[] = $caption;
}
}
$this->style_data = json_encode($captions);
}
}
/**
* serialize the animation data
**/
public function serialize_animation_data(){
if(!empty($this->used_animations)){
$animations = array();
foreach($this->used_animations as $anim => $val){
$animation = $this->get_custom_animation_by_id($anim);
if($animation !== false) $animations[] = $animation;
}
if(!empty($animations)) $this->animations_data = json_encode($animations);
}
}
/**
* get animation params by id
* @before: RevSliderOperations::getFullCustomAnimationByID()
*/
public function get_custom_animation_by_id($id){
global $SR_GLOBALS;
$this->fill_animations();
if(empty($SR_GLOBALS['animations'])) return false;
foreach($SR_GLOBALS['animations'] as $animation){
if($animation['id'] == $id){
return array(
'id' => $animation['id'],
'handle' => $animation['handle'],
'params' => $animation['params'],
'settings' => $animation['settings']
);
}
}
return false;
}
/**
* create the blank zip file to be used further on
**/
public function create_export_zip(){
$this->usepcl = false;
if(file_exists($this->export_path_zip)){
@unlink($this->export_path_zip); //delete file to start with a fresh one
}
if(class_exists('ZipArchive')){
$this->zip = new ZipArchive;
$success = $this->zip->open($this->export_path_zip, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE);
if($success !== true)
$this->throw_error(__("Can't create zip file: ", 'revslider').$this->export_path_zip);
}else{
//fallback to pclzip
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
$this->pclzip = new PclZip($this->export_path_zip);
//either the function uses die() or all is cool
$this->usepcl = true;
}
}
/**
* add svg to the zip file, by modifying data in $export_data
**/
public function add_svg_to_zip(){
if(empty($this->used_svg)) return;
$c_url = $this->remove_http(content_url());
$c_path = ABSPATH . 'wp-content';
$ud = wp_upload_dir();
$up_dir = $this->get_val($ud, 'baseurl');
$up_dir = $this->remove_http($up_dir);
$cont_url = $this->remove_http($this->get_val($ud, 'baseurl'));
$cont_url_no_www = str_replace('www.', '', $cont_url);
foreach($this->used_svg as $file => $val){
if(strpos($file, 'http') !== false){ //remove all up to wp-content folder
$file = $this->remove_http($file);
$_checkpath = str_replace(array($cont_url.'/', $cont_url_no_www.'/'), '', $file);
$checkpath = str_replace($c_url, '', $file);
$checkpath2 = str_replace($up_dir, '', $file);
if($checkpath2 === $file){ //we have an SVG like whiteboard, fallback to older export
$checkpath2 = $checkpath;
}
//check if file is in the upload folder, if yes, add it to the zip file
if(strpos($file, $up_dir) !== false){
if(!$this->usepcl){
$this->zip->addFile($c_path.$checkpath, 'images/'.$_checkpath);
}else{
$this->pclzip->add($c_path.$checkpath, PCLZIP_OPT_REMOVE_PATH, $c_path, PCLZIP_OPT_ADD_PATH, $_checkpath);
}
}
$file = str_replace('/', '\/', $file);
$checkpath2 = str_replace('/', '\/', str_replace('/revslider/assets/svg', '', $checkpath2));
if(is_file($c_path.$checkpath)){
$this->export_data = str_replace(array('http:'.$file, 'https:'.$file), $checkpath2, $this->export_data);
}
}
}
}
/**
* push images and videos to the zip file
**/
public function add_images_videos_to_zip($root = false){
$this->used_images = array_merge($this->used_images, $this->used_videos);
if(!empty($this->used_images)){
$upload_dir = $this->get_upload_path();
$upload_dir_multi = wp_upload_dir();
$cont_url = $this->get_val($upload_dir_multi, 'baseurl');
$cont_url2 = (strpos($cont_url, 'http://') !== false) ? str_replace('http://', 'https://', $cont_url) : str_replace('https://', 'http://', $cont_url);
$cont_url_no_www = str_replace('www.', '', $cont_url);
$cont_url2_no_www = str_replace('www.', '', $cont_url2);
$upload_dir_multi = $this->get_val($upload_dir_multi, 'basedir').'/';
foreach($this->used_images as $file => $val){
//replace double // except the http:// https://
$file = str_replace(array('http://', 'https://'), '!!!!!', $file);
$file = str_replace('//', '/', $file);
$file = str_replace('!!!!!', 'http://', $file);
$add_path = ($root === false) ? 'images/' : '';
$add_structure = ($root === false) ? 'images/'.$file : $file;
if($root === false){
$file_push = $file;
}else{
$file_expl = explode('.', $file);
$extension = strtolower(end($file_expl));
if(in_array($extension, array('jpg', 'jpeg', 'png', 'gif'))){
$file_push = 'thumb.'.strtolower(end($file_expl));
}else{
$file_push = 'video.'.strtolower(end($file_expl));
}
}
if(strpos($file, 'http') !== false){
//check if we are in objects folder, if yes take the original image into the zip-
$remove = false;
$checkpath = str_replace(array($cont_url.'/', $cont_url_no_www.'/', $cont_url2.'/', $cont_url2_no_www.'/'), '', $file);
$add_checkpath = ($root === false) ? 'images/'.$checkpath : $checkpath;
if($root === true){
$add_checkpath = explode('/', $add_checkpath);
$add_checkpath = end($add_checkpath);
}
if(is_file($upload_dir.$checkpath)){
if(!$this->usepcl){
$this->zip->addFile($upload_dir.$checkpath, $add_checkpath);
}else{
$this->pclzip->add($upload_dir.$checkpath, PCLZIP_OPT_REMOVE_PATH, $upload_dir, PCLZIP_OPT_ADD_PATH, $add_path);
}
$remove = true;
}elseif(is_file($upload_dir_multi.$checkpath)){
if(!$this->usepcl){
$this->zip->addFile($upload_dir_multi.$checkpath, $add_checkpath);
}else{
$this->pclzip->add($upload_dir_multi.$checkpath, PCLZIP_OPT_REMOVE_PATH, $upload_dir_multi, PCLZIP_OPT_ADD_PATH, $add_path);
}
$remove = true;
}
if($remove){ //as its http, remove this from strexport
/*
* fixes an issue where external urls were not getting processed
*/
try {
$unescaped = json_encode(json_decode($this->export_data), JSON_UNESCAPED_SLASHES); // only available from php 5.4
}
catch(Exception $e) {
$unescaped = $this->export_data;
}
$this->export_data = str_replace(array($cont_url . '/' . $checkpath, $cont_url_no_www . '/' . $checkpath), $checkpath, $unescaped);
// $this->export_data = str_replace(array($cont_url.$checkpath, $cont_url_no_www.$checkpath), $checkpath, $this->export_data);
}
}else{
if(is_file($upload_dir.$file)){
if(!$this->usepcl){
$this->zip->addFile($upload_dir.$file, $add_structure);
}else{
$this->pclzip->add($upload_dir.$file, PCLZIP_OPT_REMOVE_PATH, $upload_dir, PCLZIP_OPT_ADD_PATH, $add_path);
}
}elseif(is_file($upload_dir_multi.$file)){
if(!$this->usepcl){
$this->zip->addFile($upload_dir_multi.$file, $add_structure);
}else{
$this->pclzip->add($upload_dir_multi.$file, PCLZIP_OPT_REMOVE_PATH, $upload_dir_multi, PCLZIP_OPT_ADD_PATH, $add_path);
}
}
}
}
}
}
/**
* push the slider, slides and layer data to the zip
**/
public function add_slider_export_to_zip($filename = 'slider_export.txt'){
if(!$this->usepcl){
$this->zip->addFromString($filename, $this->export_data);
}else{
$list = $this->pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => $filename, PCLZIP_ATT_FILE_CONTENT => $this->export_data)));
if($list == 0){
die("ERROR : '".$this->pclzip->errorInfo(true)."'");
}
}
}
/**
* push the custom animations to the zip
**/
public function add_animations_to_zip(){
if(strlen(trim($this->animations_data)) > 0){
if(!$this->usepcl){
$this->zip->addFromString('custom_animations.txt', $this->animations_data); //add custom animations
}else{
$list = $this->pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'custom_animations.txt', PCLZIP_ATT_FILE_CONTENT => $this->animations_data)));
if($list == 0){
die("ERROR : '".$this->pclzip->errorInfo(true)."'");
}
}
}
}
/**
* push the custom css styles to the zip
**/
public function add_styles_to_zip(){
if(strlen(trim($this->style_data)) > 0){
if(!$this->usepcl){
$this->zip->addFromString('styles.txt', $this->style_data);
}else{
$list = $this->pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'styles.txt', PCLZIP_ATT_FILE_CONTENT => $this->style_data)));
if($list == 0){
die("ERROR : '".$this->pclzip->errorInfo(true)."'");
}
}
}
}
/**
* push the custom navigations to the zip
**/
public function add_navigation_to_zip(){
if(strlen(trim($this->navigation_data)) > 0){
if(!$this->usepcl){
$this->zip->addFromString('navigation.txt', $this->navigation_data);
}else{
$list = $this->pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'navigation.txt', PCLZIP_ATT_FILE_CONTENT => $this->navigation_data)));
if($list == 0){
die("ERROR : '".$this->pclzip->errorInfo(true)."'");
}
}
}
}
/**
* push the static styles to the zip
**/
public function add_static_styles_to_zip(){
$static_css = $this->get_static_css();
if(trim($static_css) !== ''){
if(!$this->usepcl){
$this->zip->addFromString("static-captions.css", $static_css); //add slider settings
}else{
$list = $this->pclzip->add(array(array( PCLZIP_ATT_FILE_NAME => 'static-captions.css',PCLZIP_ATT_FILE_CONTENT => $static_css)));
if ($list == 0) { die("ERROR : '".$this->pclzip->errorInfo(true)."'"); }
}
}
}
/**
* push the info.cfg to the zip
* allow for slider packs the automatic creation of the info.cfg
**/
public function add_info_to_zip(){
if(apply_filters('revslider_slider_pack_export', false)){
if(!$this->usepcl){
$this->zip->addFromString('info.cfg', md5($this->alias)); //add slider settings
}else{
$list = $this->pclzip->add(array(array(PCLZIP_ATT_FILE_NAME => 'info.cfg', PCLZIP_ATT_FILE_CONTENT => md5($this->alias))));
if($list == 0){
die("ERROR : '".$this->pclzip->errorInfo(true)."'");
}
}
}
}
/**
* close the zip if we are not in pcl
**/
public function close_export_zip(){
if(!$this->usepcl){
$this->zip->close();
}
}
/**
* send the zip to the client browser
**/
public function push_zip_to_client(){
$exportname = (!empty($this->slider_alias)) ? $this->slider_alias.'.zip' : 'slider_export.zip';
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename='.$exportname);
header('Pragma: no-cache');
header('Expires: 0');
readfile($this->export_path_zip);
}
/**
* delete the export zip file, ignoring errors
**/
public function delete_export_zip(){
@unlink($this->export_path_zip);
}
/**
* Export a Zip with video, thumbnail and layergroup for import
* @dev function
**/
public function export_layer_group($videoid, $thumbid, $layers){
$this->create_export_zip();
$this->slider_alias = 'layergroup';
$this->used_images[$this->get_url_attachment_image($thumbid)] = true;
$this->used_videos[$this->get_url_attachment_image($videoid)] = true;
$this->add_images_videos_to_zip(true);
$this->export_data = stripslashes($layers);
$this->add_slider_export_to_zip('layers.txt');
$this->close_export_zip();
return $this->export_url_zip;
}
}
Run Command [Bypass]
Run Command