/**
  *
  * update dynamic-captions css file content
  */
 public static function updateDynamicCaptions($full = false)
 {
     if ($full) {
         $captions = array();
         $captions = RevOperations::getCaptionsContentArray();
         $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         //write styles into dynamic css
         //UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
     } else {
         //go through all sliders and check which classes are used, get all classes from DB and write them into the file
         $slider = new RevSlider();
         $arrSliders = $slider->getArrSliders();
         $classes = array();
         //get used classes
         if (!empty($arrSliders)) {
             foreach ($arrSliders as $slider) {
                 try {
                     $slides = $slider->getSlides();
                     if (!empty($slides)) {
                         foreach ($slides as $slide) {
                             $layers = $slide->getLayers();
                             if (!empty($layers)) {
                                 foreach ($layers as $layer) {
                                     if (isset($layer['style'])) {
                                         if (!empty($layer['style'])) {
                                             $classes[$layer['style']] = true;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } catch (Exception $e) {
                     $errorMessage = "ERROR: " . $e->getMessage();
                 }
             }
         }
         if (!empty($classes)) {
             $captions = array();
             foreach ($classes as $class => $val) {
                 $captionCheck = RevOperations::getCaptionsContentArray($class);
                 if (!empty($captionCheck)) {
                     $captions[] = $captionCheck;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
             //write styles into dynamic css
             //UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
         }
     }
 }
 /**
  * 
  * get slide template 
  * currently it's the first slide in the slider gallery
  */
 private function getSlideTemplates()
 {
     $sliderTemplateID = $this->getParam("slider_template_id");
     if (empty($sliderTemplateID)) {
         UniteFunctionsRev::throwError("You must provide a template for the slider show.");
     }
     $sliderTemplate = new RevSlider();
     $sliderTemplate->initByID($sliderTemplateID);
     if ($sliderTemplate->isSlidesFromPosts()) {
         UniteFunctionsRev::throwError("The slider that is template must be from gallery");
     }
     $arrSlides = $sliderTemplate->getSlides(true);
     return $arrSlides;
 }
 /**
  *
  * onAjax action handler
  */
 public static function onAjaxAction()
 {
     $slider = new RevSlider();
     $slide = new RevSlide();
     $operations = new RevSliderOperations();
     $action = self::getPostGetVar("client_action");
     $data = self::getPostGetVar("data");
     $nonce = self::getPostGetVar("nonce");
     if (empty($nonce)) {
         $nonce = self::getPostGetVar("rs-nonce");
     }
     try {
         //verify the nonce
         $isVerified = wp_verify_nonce($nonce, "revslider_actions");
         if ($isVerified == false) {
             RevSliderFunctions::throwError("Wrong request");
         }
         switch ($action) {
             case 'add_new_preset':
                 if (!isset($data['settings']) || !isset($data['values'])) {
                     self::ajaxResponseError(__('Missing values to add preset', 'revslider'), false);
                 }
                 $result = $operations->add_preset_setting($data);
                 if ($result === true) {
                     $presets = $operations->get_preset_settings();
                     self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 exit;
                 break;
             case 'update_preset':
                 if (!isset($data['name']) || !isset($data['values'])) {
                     self::ajaxResponseError(__('Missing values to update preset', 'revslider'), false);
                 }
                 $result = $operations->update_preset_setting($data);
                 if ($result === true) {
                     $presets = $operations->get_preset_settings();
                     self::ajaxResponseSuccess(__('Preset created', 'revslider'), array('data' => $presets));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 exit;
                 break;
             case 'remove_preset':
                 if (!isset($data['name'])) {
                     self::ajaxResponseError(__('Missing values to remove preset', 'revslider'), false);
                 }
                 $result = $operations->remove_preset_setting($data);
                 if ($result === true) {
                     $presets = $operations->get_preset_settings();
                     self::ajaxResponseSuccess(__('Preset deleted', 'revslider'), array('data' => $presets));
                 } else {
                     self::ajaxResponseError($result, false);
                 }
                 exit;
                 break;
             case "export_slider":
                 $sliderID = self::getGetVar("sliderid");
                 $dummy = self::getGetVar("dummy");
                 $slider->initByID($sliderID);
                 $slider->exportSlider($dummy);
                 break;
             case "import_slider":
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateNav = self::getPostGetVar("update_navigations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle(null, $updateAnim, $updateStatic, $updateNav);
                 break;
             case "import_slider_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateNav = self::getPostGetVar("update_navigations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderHandle($viewBack, $updateAnim, $updateStatic, $updateNav);
                 break;
             case "import_slider_online_template_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 self::importSliderOnlineTemplateHandle($viewBack, 'true', 'none');
                 break;
             case "import_slide_online_template_slidersview":
                 $redirect_id = esc_attr(self::getPostGetVar("redirect_id"));
                 $viewBack = self::getViewUrl(self::VIEW_SLIDE, "id={$redirect_id}");
                 $slidenum = intval(self::getPostGetVar("slidenum"));
                 $sliderid = intval(self::getPostGetVar("slider_id"));
                 self::importSliderOnlineTemplateHandle($viewBack, 'true', 'none', array('slider_id' => $sliderid, 'slide_id' => $slidenum));
                 break;
             case "import_slider_template_slidersview":
                 $viewBack = self::getViewUrl(self::VIEW_SLIDERS);
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic);
                 break;
             case "import_slide_template_slidersview":
                 $redirect_id = esc_attr(self::getPostGetVar("redirect_id"));
                 $viewBack = self::getViewUrl(self::VIEW_SLIDE, "id={$redirect_id}");
                 $updateAnim = self::getPostGetVar("update_animations");
                 $updateStatic = self::getPostGetVar("update_static_captions");
                 $slidenum = intval(self::getPostGetVar("slidenum"));
                 $sliderid = intval(self::getPostGetVar("slider_id"));
                 self::importSliderTemplateHandle($viewBack, $updateAnim, $updateStatic, array('slider_id' => $sliderid, 'slide_id' => $slidenum));
                 break;
             case "create_slider":
                 $data = $operations->modifyCustomSliderParams($data);
                 $newSliderID = $slider->createSliderFromOptions($data);
                 self::ajaxResponseSuccessRedirect(__("Slider created", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, 'id=new&slider=' . esc_attr($newSliderID)));
                 //redirect to slide now
                 break;
             case "update_slider":
                 $data = $operations->modifyCustomSliderParams($data);
                 $slider->updateSliderFromOptions($data);
                 self::ajaxResponseSuccess(__("Slider updated", 'revslider'));
                 break;
             case "delete_slider":
             case "delete_slider_stay":
                 $isDeleted = $slider->deleteSliderFromData($data);
                 if (is_array($isDeleted)) {
                     $isDeleted = implode(', ', $isDeleted);
                     self::ajaxResponseError(__("Template can't be deleted, it is still being used by the following Sliders: ", 'revslider') . $isDeleted);
                 } else {
                     if ($action == 'delete_slider_stay') {
                         self::ajaxResponseSuccess(__("Slider deleted", 'revslider'));
                     } else {
                         self::ajaxResponseSuccessRedirect(__("Slider deleted", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
                     }
                 }
                 break;
             case "duplicate_slider":
                 $slider->duplicateSliderFromData($data);
                 self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
                 break;
             case "add_slide":
             case "add_bulk_slide":
                 $numSlides = $slider->createSlideFromData($data);
                 $sliderID = $data["sliderid"];
                 if ($numSlides == 1) {
                     $responseText = __("Slide Created", 'revslider');
                 } else {
                     $responseText = $numSlides . " " . __("Slides Created", 'revslider');
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}");
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "add_slide_fromslideview":
                 $slideID = $slider->createSlideFromData($data, true);
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id={$slideID}");
                 $responseText = __("Slide Created, redirecting...", 'revslider');
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case 'copy_slide_to_slider':
                 $slideID = isset($data['redirect_id']) ? $data['redirect_id'] : -1;
                 if ($slideID === -1) {
                     RevSliderFunctions::throwError(__('Missing redirect ID!', 'revslider'));
                 }
                 $return = $slider->copySlideToSlider($data);
                 if ($return !== true) {
                     RevSliderFunctions::throwError($return);
                 }
                 $urlRedirect = self::getViewUrl(self::VIEW_SLIDE, "id={$slideID}");
                 $responseText = __("Slide copied to current Slider, redirecting...", 'revslider');
                 self::ajaxResponseSuccessRedirect($responseText, $urlRedirect);
                 break;
             case "update_slide":
                 $slide->updateSlideFromData($data);
                 self::ajaxResponseSuccess(__("Slide updated", 'revslider'));
                 break;
             case "update_static_slide":
                 $slide->updateStaticSlideFromData($data);
                 self::ajaxResponseSuccess(__("Static Global Layers updated", 'revslider'));
                 break;
             case "delete_slide":
             case "delete_slide_stay":
                 $isPost = $slide->deleteSlideFromData($data);
                 if ($isPost) {
                     $message = __("Post deleted", 'revslider');
                 } else {
                     $message = __("Slide deleted", 'revslider');
                 }
                 $sliderID = RevSliderFunctions::getVal($data, "sliderID");
                 if ($action == 'delete_slide_stay') {
                     self::ajaxResponseSuccess($message);
                 } else {
                     self::ajaxResponseSuccessRedirect($message, self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}"));
                 }
                 break;
             case "duplicate_slide":
             case "duplicate_slide_stay":
                 $return = $slider->duplicateSlideFromData($data);
                 if ($action == 'duplicate_slide_stay') {
                     self::ajaxResponseSuccess(__("Slide duplicated", 'revslider'), array('id' => $return[1]));
                 } else {
                     self::ajaxResponseSuccessRedirect(__("Slide duplicated", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider=" . $return[0]));
                 }
                 break;
             case "copy_move_slide":
             case "copy_move_slide_stay":
                 $sliderID = $slider->copyMoveSlideFromData($data);
                 if ($action == 'copy_move_slide_stay') {
                     self::ajaxResponseSuccess(__("Success!", 'revslider'));
                 } else {
                     self::ajaxResponseSuccessRedirect(__("Success! Refreshing page...", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}"));
                 }
                 break;
             case "add_slide_to_template":
                 $template = new RevSliderTemplate();
                 if (!isset($data['slideID']) || intval($data['slideID']) == 0) {
                     RevSliderFunctions::throwError(__('No valid Slide ID given', 'revslider'));
                     exit;
                 }
                 if (!isset($data['title']) || strlen(trim($data['title'])) < 3) {
                     RevSliderFunctions::throwError(__('No valid title given', 'revslider'));
                     exit;
                 }
                 if (!isset($data['settings']) || !isset($data['settings']['width']) || !isset($data['settings']['height'])) {
                     RevSliderFunctions::throwError(__('No valid title given', 'revslider'));
                     exit;
                 }
                 $return = $template->copySlideToTemplates($data['slideID'], $data['title'], $data['settings']);
                 if ($return == false) {
                     RevSliderFunctions::throwError(__('Could not save Slide as Template', 'revslider'));
                     exit;
                 }
                 //get HTML for template section
                 ob_start();
                 $rs_disable_template_script = true;
                 //disable the script output of template selector file
                 include RS_PLUGIN_PATH . 'admin/views/templates/template-selector.php';
                 $html = ob_get_contents();
                 ob_clean();
                 ob_end_clean();
                 self::ajaxResponseSuccess(__('Slide added to Templates', 'revslider'), array('HTML' => $html));
                 exit;
                 break;
                 break;
             case "get_static_css":
                 $contentCSS = $operations->getStaticCss();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "get_dynamic_css":
                 $contentCSS = $operations->getDynamicCss();
                 self::ajaxResponseData($contentCSS);
                 break;
             case "insert_captions_css":
                 $arrCaptions = $operations->insertCaptionsContentData($data);
                 if ($arrCaptions !== false) {
                     $db = new RevSliderDB();
                     $styles = $db->fetch(RevSliderGlobals::$table_css);
                     $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                     $styles = RevSliderCssParser::compress_css($styles);
                     $custom_css = RevSliderOperations::getStaticCss();
                     $custom_css = RevSliderCssParser::compress_css($custom_css);
                     $arrCSS = $operations->getCaptionsContentArray();
                     $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
                     $arrCssStyles = $arrCSS;
                     self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles));
                 }
                 RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
                 exit;
                 break;
             case "update_captions_css":
                 $arrCaptions = $operations->updateCaptionsContentData($data);
                 if ($arrCaptions !== false) {
                     $db = new RevSliderDB();
                     $styles = $db->fetch(RevSliderGlobals::$table_css);
                     $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                     $styles = RevSliderCssParser::compress_css($styles);
                     $custom_css = RevSliderOperations::getStaticCss();
                     $custom_css = RevSliderCssParser::compress_css($custom_css);
                     $arrCSS = $operations->getCaptionsContentArray();
                     $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
                     $arrCssStyles = $arrCSS;
                     self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles));
                 }
                 RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
                 exit;
                 break;
             case "update_captions_advanced_css":
                 $arrCaptions = $operations->updateAdvancedCssData($data);
                 if ($arrCaptions !== false) {
                     $db = new RevSliderDB();
                     $styles = $db->fetch(RevSliderGlobals::$table_css);
                     $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                     $styles = RevSliderCssParser::compress_css($styles);
                     $custom_css = RevSliderOperations::getStaticCss();
                     $custom_css = RevSliderCssParser::compress_css($custom_css);
                     $arrCSS = $operations->getCaptionsContentArray();
                     $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
                     $arrCssStyles = $arrCSS;
                     self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles));
                 }
                 RevSliderFunctions::throwError(__('CSS could not be saved', 'revslider'));
                 exit;
                 break;
             case "rename_captions_css":
                 //rename all captions in all sliders with new handle if success
                 $arrCaptions = $operations->renameCaption($data);
                 $db = new RevSliderDB();
                 $styles = $db->fetch(RevSliderGlobals::$table_css);
                 $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                 $styles = RevSliderCssParser::compress_css($styles);
                 $custom_css = RevSliderOperations::getStaticCss();
                 $custom_css = RevSliderCssParser::compress_css($custom_css);
                 $arrCSS = $operations->getCaptionsContentArray();
                 $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
                 $arrCssStyles = $arrCSS;
                 self::ajaxResponseSuccess(__("Class name renamed", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles));
                 break;
             case "delete_captions_css":
                 $arrCaptions = $operations->deleteCaptionsContentData($data);
                 $db = new RevSliderDB();
                 $styles = $db->fetch(RevSliderGlobals::$table_css);
                 $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                 $styles = RevSliderCssParser::compress_css($styles);
                 $custom_css = RevSliderOperations::getStaticCss();
                 $custom_css = RevSliderCssParser::compress_css($custom_css);
                 $arrCSS = $operations->getCaptionsContentArray();
                 $arrCssStyles = RevSliderFunctions::jsonEncodeForClientSide($arrCSS);
                 $arrCssStyles = $arrCSS;
                 self::ajaxResponseSuccess(__("Style deleted!", 'revslider'), array("arrCaptions" => $arrCaptions, 'compressed_css' => $styles . $custom_css, 'initstyles' => $arrCssStyles));
                 break;
             case "update_static_css":
                 $staticCss = $operations->updateStaticCss($data);
                 $db = new RevSliderDB();
                 $styles = $db->fetch(RevSliderGlobals::$table_css);
                 $styles = RevSliderCssParser::parseDbArrayToCss($styles, "\n");
                 $styles = RevSliderCssParser::compress_css($styles);
                 $custom_css = RevSliderOperations::getStaticCss();
                 $custom_css = RevSliderCssParser::compress_css($custom_css);
                 self::ajaxResponseSuccess(__("CSS saved", 'revslider'), array("css" => $staticCss, 'compressed_css' => $styles . $custom_css));
                 break;
             case "insert_custom_anim":
                 $arrAnims = $operations->insertCustomAnim($data);
                 //$arrCaptions =
                 self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_custom_anim":
                 $arrAnims = $operations->updateCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_custom_anim_name":
                 $arrAnims = $operations->updateCustomAnimName($data);
                 self::ajaxResponseSuccess(__("Animation saved", 'revslider'), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "delete_custom_anim":
                 $arrAnims = $operations->deleteCustomAnim($data);
                 self::ajaxResponseSuccess(__("Animation deleted", 'revslider'), $arrAnims);
                 //,array("arrCaptions"=>$arrCaptions)
                 break;
             case "update_slides_order":
                 $slider->updateSlidesOrderFromData($data);
                 self::ajaxResponseSuccess(__("Order updated", 'revslider'));
                 break;
             case "change_slide_title":
                 $slide->updateTitleByID($data);
                 self::ajaxResponseSuccess(__('Title updated', 'revslider'));
                 break;
             case "change_slide_image":
                 $slide->updateSlideImageFromData($data);
                 $sliderID = RevSliderFunctions::getVal($data, "slider_id");
                 self::ajaxResponseSuccessRedirect(__("Slide changed", 'revslider'), self::getViewUrl(self::VIEW_SLIDE, "id=new&slider={$sliderID}"));
                 break;
             case "preview_slide":
                 $operations->putSlidePreviewByData($data);
                 break;
             case "preview_slider":
                 $sliderID = RevSliderFunctions::getPostGetVariable("sliderid");
                 $do_markup = RevSliderFunctions::getPostGetVariable("only_markup");
                 if ($do_markup == 'true') {
                     $operations->previewOutputMarkup($sliderID);
                 } else {
                     $operations->previewOutput($sliderID);
                 }
                 break;
             case "get_import_slides_data":
                 $slides = array();
                 if (!is_array($data)) {
                     $slider->initByID(intval($data));
                     $full_slides = $slider->getSlides();
                     //static slide is missing
                     if (!empty($full_slides)) {
                         foreach ($full_slides as $slide_id => $mslide) {
                             $slides[$slide_id]['layers'] = $mslide->getLayers();
                             $slides[$slide_id]['params'] = $mslide->getParams();
                         }
                     }
                     $staticID = $slide->getStaticSlideID($slider->getID());
                     if ($staticID !== false) {
                         $msl = new RevSliderSlide();
                         if (strpos($staticID, 'static_') === false) {
                             $staticID = 'static_' . $slider->getID();
                         }
                         $msl->initByID($staticID);
                         if ($msl->getID() !== '') {
                             $slides[$msl->getID()]['layers'] = $msl->getLayers();
                             $slides[$msl->getID()]['params'] = $msl->getParams();
                             $slides[$msl->getID()]['params']['title'] = __('Static Slide', 'revslider');
                         }
                     }
                 }
                 if (!empty($slides)) {
                     self::ajaxResponseData(array('slides' => $slides));
                 } else {
                     self::ajaxResponseData('');
                 }
                 break;
             case "toggle_slide_state":
                 $currentState = $slide->toggleSlideStatFromData($data);
                 self::ajaxResponseData(array("state" => $currentState));
                 break;
             case "toggle_hero_slide":
                 $currentHero = $slider->setHeroSlide($data);
                 self::ajaxResponseSuccess(__('Slide is now the new active Hero Slide', 'revslider'));
                 break;
             case "slide_lang_operation":
                 $responseData = $slide->doSlideLangOperation($data);
                 self::ajaxResponseData($responseData);
                 break;
             case "update_general_settings":
                 $operations->updateGeneralSettings($data);
                 self::ajaxResponseSuccess(__("General settings updated", 'revslider'));
                 break;
             case "update_posts_sortby":
                 $slider->updatePostsSortbyFromData($data);
                 self::ajaxResponseSuccess(__("Sortby updated", 'revslider'));
                 break;
             case "replace_image_urls":
                 $slider->replaceImageUrlsFromData($data);
                 self::ajaxResponseSuccess(__("Image urls replaced", 'revslider'));
                 break;
             case "reset_slide_settings":
                 $slider->resetSlideSettings($data);
                 self::ajaxResponseSuccess(__("Settings in all Slides changed", 'revslider'));
                 break;
             case "activate_purchase_code":
                 $result = false;
                 if (!empty($data['code'])) {
                     $result = $operations->checkPurchaseVerification($data);
                 } else {
                     RevSliderFunctions::throwError(__('The API key, the Purchase Code and the Username need to be set!', 'revslider'));
                     exit;
                 }
                 if ($result) {
                     self::ajaxResponseSuccessRedirect(__("Purchase Code Successfully Activated", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
                 } else {
                     RevSliderFunctions::throwError(__('Purchase Code is invalid', 'revslider'));
                 }
                 break;
             case "deactivate_purchase_code":
                 $result = $operations->doPurchaseDeactivation($data);
                 if ($result) {
                     self::ajaxResponseSuccessRedirect(__("Successfully removed validation", 'revslider'), self::getViewUrl(self::VIEW_SLIDERS));
                 } else {
                     RevSliderFunctions::throwError(__('Could not remove Validation!', 'revslider'));
                 }
                 break;
             case 'dismiss_notice':
                 update_option('revslider-valid-notice', 'false');
                 self::ajaxResponseSuccess(__(".", 'revslider'));
                 break;
             case 'dismiss_dynamic_notice':
                 $notices_discarded = get_option('revslider-notices-dc', array());
                 $notices_discarded[] = esc_attr(trim($data['id']));
                 update_option('revslider-notices-dc', $notices_discarded);
                 self::ajaxResponseSuccess(__(".", 'revslider'));
                 break;
             case 'toggle_favorite':
                 if (isset($data['id']) && intval($data['id']) > 0) {
                     $return = self::toggle_favorite_by_id($data['id']);
                     if ($return === true) {
                         self::ajaxResponseSuccess(__('Setting Changed!', 'revslider'));
                     } else {
                         $error = $return;
                     }
                 } else {
                     $error = __('No ID given', 'revslider');
                 }
                 self::ajaxResponseError($error);
                 break;
             case "subscribe_to_newsletter":
                 if (isset($data['email']) && !empty($data['email'])) {
                     $return = ThemePunch_Newsletter::subscribe($data['email']);
                     if ($return !== false) {
                         if (!isset($return['status']) || $return['status'] === 'error') {
                             $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', 'revslider');
                             self::ajaxResponseError($error);
                         } else {
                             self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the subscription", 'revslider'), $return);
                         }
                     } else {
                         self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider'));
                     }
                 } else {
                     self::ajaxResponseError(__('No Email given', 'revslider'));
                 }
                 break;
             case "unsubscribe_to_newsletter":
                 if (isset($data['email']) && !empty($data['email'])) {
                     $return = ThemePunch_Newsletter::unsubscribe($data['email']);
                     if ($return !== false) {
                         if (!isset($return['status']) || $return['status'] === 'error') {
                             $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', 'revslider');
                             self::ajaxResponseError($error);
                         } else {
                             self::ajaxResponseSuccess(__("Success! Please check your Emails to finish the process", 'revslider'), $return);
                         }
                     } else {
                         self::ajaxResponseError(__('Invalid Email/Could not connect to the Newsletter server', 'revslider'));
                     }
                 } else {
                     self::ajaxResponseError(__('No Email given', 'revslider'));
                 }
                 break;
             case 'change_specific_navigation':
                 $nav = new RevSliderNavigation();
                 $found = false;
                 $navigations = $nav->get_all_navigations();
                 foreach ($navigations as $navig) {
                     if ($data['id'] == $navig['id']) {
                         $found = true;
                         break;
                     }
                 }
                 if ($found) {
                     $nav->create_update_navigation($data, $data['id']);
                 } else {
                     $nav->create_update_navigation($data);
                 }
                 self::ajaxResponseSuccess(__('Navigation saved/updated', 'revslider'), array('navs' => $nav->get_all_navigations()));
                 break;
             case 'change_navigations':
                 $nav = new RevSliderNavigation();
                 $nav->create_update_full_navigation($data);
                 self::ajaxResponseSuccess(__('Navigations updated', 'revslider'), array('navs' => $nav->get_all_navigations()));
                 break;
             case 'delete_navigation':
                 $nav = new RevSliderNavigation();
                 if (isset($data) && intval($data) > 0) {
                     $return = $nav->delete_navigation($data);
                     if ($return !== true) {
                         self::ajaxResponseError($return);
                     } else {
                         self::ajaxResponseSuccess(__('Navigation deleted', 'revslider'), array('navs' => $nav->get_all_navigations()));
                     }
                 }
                 self::ajaxResponseError(__('Wrong ID given', 'revslider'));
                 break;
             case "get_facebook_photosets":
                 if (!empty($data['url'])) {
                     $facebook = new RevSliderFacebook();
                     $return = $facebook->get_photo_set_photos_options($data['url'], $data['album'], $data['app_id'], $data['app_secret']);
                     if (!empty($return)) {
                         self::ajaxResponseSuccess(__('Successfully fetched Facebook albums', 'revslider'), array('html' => implode(' ', $return)));
                     } else {
                         $error = __('Could not fetch Facebook albums', 'revslider');
                         self::ajaxResponseError($error);
                     }
                 } else {
                     self::ajaxResponseSuccess(__('Cleared Albums', 'revslider'), array('html' => implode(' ', $return)));
                 }
                 break;
             case "get_flickr_photosets":
                 if (!empty($data['url']) && !empty($data['key'])) {
                     $flickr = new RevSliderFlickr($data['key']);
                     $user_id = $flickr->get_user_from_url($data['url']);
                     $return = $flickr->get_photo_sets($user_id, $data['count'], $data['set']);
                     if (!empty($return)) {
                         self::ajaxResponseSuccess(__('Successfully fetched flickr photosets', 'revslider'), array("data" => array('html' => implode(' ', $return))));
                     } else {
                         $error = __('Could not fetch flickr photosets', 'revslider');
                         self::ajaxResponseError($error);
                     }
                 } else {
                     if (empty($data['url']) && empty($data['key'])) {
                         self::ajaxResponseSuccess(__('Cleared Photosets', 'revslider'), array('html' => implode(' ', $return)));
                     } elseif (empty($data['url'])) {
                         $error = __('No User URL - Could not fetch flickr photosets', 'revslider');
                         self::ajaxResponseError($error);
                     } else {
                         $error = __('No API KEY - Could not fetch flickr photosets', 'revslider');
                         self::ajaxResponseError($error);
                     }
                 }
                 break;
             case "get_youtube_playlists":
                 if (!empty($data['id'])) {
                     $youtube = new RevSliderYoutube(trim($data['api']), trim($data['id']));
                     $return = $youtube->get_playlist_options($data['playlist']);
                     self::ajaxResponseSuccess(__('Successfully fetched YouTube playlists', 'revslider'), array("data" => array('html' => implode(' ', $return))));
                 } else {
                     $error = __('Could not fetch YouTube playlists', 'revslider');
                     self::ajaxResponseError($error);
                 }
                 break;
             case 'rs_get_store_information':
                 global $wp_version;
                 $code = get_option('revslider-code', '');
                 $shop_version = RevSliderTemplate::SHOP_VERSION;
                 $validated = get_option('revslider-valid', 'false');
                 if ($validated == 'false') {
                     $api_key = '';
                     $username = '';
                     $code = '';
                 }
                 $rattr = array('code' => urlencode($code), 'product' => urlencode('revslider'), 'shop_version' => urlencode($shop_version), 'version' => urlencode(RevSliderGlobals::SLIDER_REVISION));
                 $request = wp_remote_post('http://templates.themepunch.tools/revslider/store.php', array('user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo('url'), 'body' => $rattr));
                 $response = '';
                 if (!is_wp_error($request)) {
                     $response = json_decode(@$request['body'], true);
                 }
                 self::ajaxResponseData(array("data" => $response));
                 break;
             default:
                 self::ajaxResponseError("wrong ajax action: {$action}");
                 break;
         }
     } catch (Exception $e) {
         $message = $e->getMessage();
         if ($action == "preview_slide" || $action == "preview_slider") {
             echo $message;
             exit;
         }
         self::ajaxResponseError($message);
     }
     //it's an ajax action, so exit
     self::ajaxResponseError("No response output on {$action} action. please check with the developer.");
     exit;
 }
Example #4
0
<?php

if (!defined('ABSPATH')) {
    exit;
}
//get input
$slideID = RevSliderFunctions::getGetVar("id");
if ($slideID == 'new') {
    //add new transparent slide
    $sID = intval(RevSliderFunctions::getGetVar("slider"));
    if ($sID > 0) {
        $revs = new RevSlider();
        $revs->initByID($sID);
        //check if we already have slides, if yes, go to first
        $arrS = $revs->getSlides(false);
        if (empty($arrS)) {
            $slideID = $revs->createSlideFromData(array('sliderid' => $sID), true);
        } else {
            $slideID = key($arrS);
        }
    }
}
$patternViewSlide = self::getViewUrl("slide", "id=[slideid]");
//init slide object
$slide = new RevSlide();
$slide->initByID($slideID);
$slideParams = $slide->getParams();
$operations = new RevSliderOperations();
//init slider object
$sliderID = $slide->getSliderID();
$slider = new RevSlider();
        $tmpl->write_template_markup($template);
    }
}
?>
			<div style="clear:both;width:100%"></div>
		</div>
		<div style="clear:both;width:100%"></div>
	</div>


	<!-- THE ALL SLIDES GROUP -->
	<div class="revolution-all-slides-templates revolution-template-groups">
		<?php 
if (!empty($all_slider)) {
    foreach ($all_slider as $c_slider) {
        $c_slides = $c_slider->getSlides(false);
        //$c_slides = $c_slider->getArrSlideNames();
        $c_title = $c_slider->getTitle();
        $width = $c_slider->getParam("width", 1240);
        $height = $c_slider->getParam("height", 868);
        /*if(!empty($c_slider['filter']) && is_array($c_slider['filter'])){
        			foreach($c_slider['filter'] as $f => $v){
        				$c_slider['filter'][$f] = 'temp_'.$v;
        			}
        		}*/
        if (!empty($c_slides)) {
            ?>
					<div class="template_group_wrappers <?php 
            //if(isset($c_slider['filter'])){ echo implode(' ', $c_slider['filter']); }
            ?>
">
Example #6
0
 static function build($post)
 {
     $description = str_replace(']]>', ']]&gt;', apply_filters('the_content', get_the_content()));
     $standard_details = wpcasa_standard_details();
     $custom = get_post_custom($post->ID);
     $price = $custom['_price'][0];
     $address = $custom['_map_address'][0];
     $property = new ctwizPropertyModel(array("id" => (string) $post->ID, "url" => esc_url(apply_filters('the_permalink', get_permalink())), 'description' => $description, 'publishDate' => get_the_modified_time('U'), 'requested' => $price, 'currency' => wpcasa_get_currency(), 'address' => $address));
     $type_terms = get_the_terms($post->ID, "property-type");
     if ($type_terms) {
         foreach ($type_terms as $term) {
             $prope = ctwizKeywordModel::_($term->name, "types");
             if ($prope) {
                 $property->houseType = $prope;
                 break;
             }
         }
     } else {
         return false;
     }
     $agent_display_option = get_post_meta($post->ID, 'REAL_HOMES_agent_display_option', true);
     if ($agent_display_option == "my_profile_info") {
         $property->agentMobilePhone = get_the_author_meta('mobile_number');
         $property->agentPhone = get_the_author_meta('office_number');
         $property->agentFax = get_the_author_meta('fax_number');
         $property->agentEmail = get_the_author_meta('user_email');
         $property->agentName = get_the_author_meta('display_name');
     } else {
         $property_agent = get_post_meta($post->ID, 'REAL_HOMES_agents', true);
         if (!empty($property_agent) && intval($property_agent) > 0) {
             $agent_id = intval($property_agent);
             $property->agentMobilePhone = get_post_meta($agent_id, 'REAL_HOMES_mobile_number', true);
             $property->agentPhone = get_post_meta($agent_id, 'REAL_HOMES_office_number', true);
             $property->agentFax = get_post_meta($agent_id, 'REAL_HOMES_fax_number', true);
             $property->agentEmail = get_post_meta($agent_id, 'REAL_HOMES_agent_email', true);
             $property->agentName = get_the_title($agent_id);
         }
     }
     if (!empty($standard_details)) {
         foreach ($standard_details as $feature => $value) {
             $property_details_value = get_post_meta(get_the_ID(), '_' . $feature, true);
             $prop = ctwizKeywordModel::_($value['label']);
             if ($prop) {
                 //                    echo $property_details_value."\n";
                 $property->{$prop} = $property_details_value;
             }
         }
     }
     $property_features_terms = get_the_terms(get_the_ID(), 'feature');
     if ($property_features_terms) {
         foreach ($property_features_terms as $term) {
             $prop = ctwizKeywordModel::_($term->name);
             if ($prop) {
                 $property->{$prop} = true;
             }
         }
     }
     $status = $custom['_price_status'][0];
     if (!empty($status)) {
         $prope = ctwizKeywordModel::_($status);
         if ($prope == "forRent") {
             $property->forRent = true;
         }
         if ($prope == "forSale") {
             $property->forSale = true;
         }
     }
     $properties_images = get_posts(array("post_parent" => intval($post->ID), 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID'));
     $photos = array();
     foreach ($properties_images as $image_id) {
         $photos[] = array('url' => wp_get_attachment_url($image_id->ID), 'caption' => $image_id->post_name);
     }
     // get rev slider
     if (isset($custom['_space'][0])) {
         list($a, $b) = explode(" ", str_replace(array("[", "]"), array("", ""), $custom['_space'][0]));
         try {
             $slider = new RevSlider();
             $slider->initByMixed($b);
             $slides = $slider->getSlides(true);
             foreach ($slides as $slide) {
                 $photos[] = array('url' => $slide->getImageUrl());
             }
         } catch (Exception $e) {
             //don't care
         }
     }
     if (has_post_thumbnail()) {
         $image_id = get_post_thumbnail_id();
         $image_url = wp_get_attachment_url($image_id);
         $photos[] = array('url' => $image_url);
     }
     $property->photos = $photos;
     return $property;
 }
}
$slider = new RevSlider();
$slider->initByID($sliderID);
$sliderParams = $slider->getParams();
$arrSliders = $slider->getArrSlidersShort($sliderID);
$selectSliders = UniteFunctionsRev::getHTMLSelect($arrSliders, "", "id='selectSliders'", true);
$numSliders = count($arrSliders);
//set iframe parameters
//$width = $sliderParams["width"];
//$height = $sliderParams["height"];
$width = isset($sliderParams["width"]) ? $sliderParams["width"] : '';
$height = isset($sliderParams["height"]) ? $sliderParams["height"] : '';
$iframeWidth = $width + 60;
$iframeHeight = $height + 50;
$iframeStyle = "width:" . $iframeWidth . "px;height:" . $iframeHeight . "px;";
$arrSlides = $slider->getSlides(false);
$numSlides = count($arrSlides);
$linksSliderSettings = self::getViewUrl(RevSliderAdmin::VIEW_SLIDER, "id={$sliderID}");
$patternViewSlide = self::getViewUrl("slide", "id=[slideid]");
//treat in case of slides from gallery
if ($slider->isSlidesFromPosts() == false) {
    $templateName = "slides_gallery";
    //handle wpml
    $isWpmlExists = UniteWpmlRev::isWpmlExists();
    $useWpml = $slider->getParam("use_wpml", "off");
    $wpmlActive = false;
    if ($isWpmlExists && $useWpml == "on") {
        $wpmlActive = true;
        //get langs floating menu
        $urlIconDelete = self::$url_plugin . "images/icon-trash.png";
        $urlIconEdit = self::$url_plugin . "images/icon-edit.png";
}
$slider = new RevSlider();
$slider->initByID($sliderID);
$sliderParams = $slider->getParams();
$arrSliders = $slider->getArrSlidersShort($sliderID);
$selectSliders = UniteFunctionsRev::getHTMLSelect($arrSliders, "", "id='selectSliders'", true);
$numSliders = count($arrSliders);
//set iframe parameters
$width = $sliderParams["width"];
$height = $sliderParams["height"];
$iframeWidth = $width + 60;
$iframeHeight = $height + 50;
$iframeStyle = "width:{$iframeWidth}px;height:{$iframeHeight}px;";
//handle wpml
$isWpmlExists = UniteWpmlRev::isWpmlExists();
$useWpml = $slider->getParam("use_wpml", "off");
$langFilterValue = null;
$wpmlActive = false;
if ($isWpmlExists && $useWpml == "on") {
    $wpmlActive = true;
    $arrLangs = UniteWpmlRev::getArrLanguages();
    $langFilterValue = $operations->getLangFilterValue();
    $selectLangsFilter = UniteFunctionsRev::getHTMLSelect($arrLangs, $langFilterValue, "id='select_lang_filter' ", true);
    $langFloatMenu = UniteWpmlRev::getLangsWithFlagsHtmlList("id='slides_langs_float' class='slides_langs_float'");
}
$arrSlides = $slider->getSlides(false, $langFilterValue);
$numSlides = count($arrSlides);
$linksSliderSettings = self::getViewUrl(RevSliderAdmin::VIEW_SLIDER, "id={$sliderID}");
require self::getPathTemplate("slides");
?>
	
<?php

$sliderID = self::getGetVar("id");
if (empty($sliderID)) {
    UniteFunctionsRev::throwError("Slider ID not found");
}
$slider = new RevSlider();
$slider->initByID($sliderID);
$sliderParams = $slider->getParams();
//set iframe parameters
$width = $sliderParams["width"];
$height = $sliderParams["height"];
$iframeWidth = $width + 60;
$iframeHeight = $height + 50;
$iframeStyle = "width:{$iframeWidth}px;height:{$iframeHeight}px;";
$arrSlides = $slider->getSlides();
$numSlides = count($arrSlides);
$linksSliderSettings = self::getViewUrl(RevSliderAdmin::VIEW_SLIDER, "id={$sliderID}");
require self::getPathTemplate("slides");
?>
	
Example #10
0
 /**
  * Constructor
  */
 public function __construct()
 {
     parent::__construct();
     $operations = new RevOperations();
     $sliderID = $this->getRequest()->getParam('id');
     $storeID = $this->getRequest()->getParam('store_id', 0);
     if (empty($sliderID)) {
         UniteFunctionsRev::throwError("Slider ID not found");
     }
     $slider = new RevSlider();
     $slider->initByID($sliderID);
     $sliderParams = $slider->getParams();
     $arrSliders = $slider->getArrSlidersShort($sliderID);
     $selectSliders = UniteFunctionsRev::getHTMLSelect($arrSliders, "", "id='selectSliders'", true);
     $numSliders = count($arrSliders);
     //set iframe parameters
     $width = $sliderParams["width"];
     $height = $sliderParams["height"];
     $iframeWidth = $width + 60;
     $iframeHeight = $height + 50;
     $iframeStyle = "width:" . $iframeWidth . "px;height:" . $iframeHeight . "px;";
     $arrSlides = $slider->getSlides(false, $storeID);
     $numSlides = count($arrSlides);
     $linksSliderSettings = $this->helper("adminhtml")->getUrl('adminhtml/nwdrevslider/slider/id/' . $sliderID);
     $patternViewSlide = $this->helper("adminhtml")->getUrl('adminhtml/nwdrevslider/slider/id/[slideid]');
     $useStaticLayers = $slider->getParam("enable_static_layers", "off");
     //treat in case of slides from gallery
     if ($slider->isSlidesFromPosts() == false) {
         $templateName = "slides_gallery";
         // store view
         $selectStoreView = Mage::app()->getLayout()->createBlock('core/html_select')->setName('select_storeview')->setId('select_storeview')->setTitle('Store View')->setValue($storeID)->setOptions(Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true))->getHtml();
         $this->assign('storeID', $storeID);
         $this->assign('selectStoreView', $selectStoreView);
         $this->setTemplate('nwdthemes/revslider/templates/slides_gallery.phtml');
     } else {
         //slides from posts
         $templateName = "slides_posts";
         $sourceType = $slider->getParam("source_type", "posts");
         $showSortBy = $sourceType == "posts" ? true : false;
         $showDelete = $sourceType == "specific_posts" ? true : false;
         //get button links
         $urlNewPost = $this->helper('adminhtml')->getUrl('adminhtml/catalog_product/new');
         $linkNewPost = UniteFunctionsRev::getHtmlLink($urlNewPost, $this->__("<i class='revicon-pencil-1'></i>New Product"), "button_new_post", "button-primary revblue", true);
         //get ordering
         $arrSortBy = $this->helper('nwdrevslider')->getArrSortBy();
         $sortBy = $slider->getParam("post_sortby", RevSlider::DEFAULT_POST_SORTBY);
         $selectSortBy = UniteFunctionsRev::getHTMLSelect($arrSortBy, $sortBy, "id='select_sortby'", true);
         $this->assign('showSortBy', $showSortBy);
         $this->assign('showDelete', $showDelete);
         $this->assign('selectSortBy', $selectSortBy);
         $this->assign('linkNewPost', $linkNewPost);
         $this->setTemplate('nwdthemes/revslider/templates/slides_posts.phtml');
     }
     $this->assign('sliderID', $sliderID);
     $this->assign('iframeStyle', $iframeStyle);
     $this->assign('patternViewSlide', $patternViewSlide);
     $this->assign('selectSliders', $selectSliders);
     $this->assign('linksSliderSettings', $linksSliderSettings);
     $this->assign('useStaticLayers', $useStaticLayers);
     $this->assign('arrSlides', $arrSlides);
     $this->assign('slider', $slider);
     $this->assign('numSlides', $numSlides);
     $this->assign('numSliders', $numSliders);
 }
    public function previewOutputMarkup($sliderID, $output = null)
    {
        if ($sliderID == "empty_output") {
            $this->loadingMessageOutput();
            exit;
        }
        if ($output == null) {
            $output = new RevSliderOutput();
        }
        $slider = new RevSlider();
        $slider->initByID($sliderID);
        $output->setPreviewMode();
        //put the output html
        $urlPlugin = "http://yourpluginpath/";
        $urlPreviewPattern = UniteBaseClassRev::$url_ajax_actions . "&client_action=preview_slider&only_markup=true&sliderid=" . $sliderID . "&lang=[lang]&nonce=[nonce]";
        $setBase = Mage::helper('nwdrevslider')->isSsl() ? "https://" : "http://";
        ?>
		<html>
		<head>
			<script type='text/javascript' src='<?php 
        echo $setBase;
        ?>
ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
		</head>
		<body style="padding:0px;margin:0px;">
		<?php 
        //UniteBaseClassRev::$url_plugin
        ob_start();
        ?>
<link rel='stylesheet' href='<?php 
        echo $urlPlugin;
        ?>
css/settings.css?rev=<?php 
        echo GlobalsRevSlider::SLIDER_REVISION;
        ?>
' type='text/css' media='all' />
<?php 
        $_usedStyles = array();
        $_slides = $slider->getSlides();
        foreach ($_slides as $_slide) {
            $_layers = $_slide->getLayers();
            foreach ($_layers as $_layer) {
                $_style = isset($_layer['style']) ? $_layer['style'] : '';
                if ($_style && !in_array($_style, $_usedStyles)) {
                    $_usedStyles[] = $_style;
                }
            }
        }
        echo Mage::helper('nwdrevslider')->inlcudeStyleFonts($_usedStyles);
        $http = Mage::helper('nwdrevslider')->isSsl() ? 'https' : 'http';
        ?>

<script type='text/javascript' src='<?php 
        echo $urlPlugin;
        ?>
js/jquery.themepunch.tools.min.js?rev=<?php 
        echo GlobalsRevSlider::SLIDER_REVISION;
        ?>
'></script>
<script type='text/javascript' src='<?php 
        echo $urlPlugin;
        ?>
js/jquery.themepunch.revolution.min.js?rev=<?php 
        echo GlobalsRevSlider::SLIDER_REVISION;
        ?>
'></script>
<?php 
        $head_content = ob_get_contents();
        ob_clean();
        ob_end_clean();
        ob_start();
        $custom_css = RevOperations::getStaticCss();
        echo $custom_css . "\n\n";
        echo '/*****************' . "\n";
        echo ' ** ' . __('CAPTIONS CSS') . "\n";
        echo ' ****************/' . "\n\n";
        $db = new UniteDBRev();
        $styles = $db->fetch(GlobalsRevSlider::$table_css);
        echo UniteCssParserRev::parseDbArrayToCss($styles, "\n");
        $style_content = ob_get_contents();
        ob_clean();
        ob_end_clean();
        ob_start();
        $output->putSliderBase($sliderID);
        $content = ob_get_contents();
        ob_clean();
        ob_end_clean();
        $script_content = substr($content, strpos($content, '<script type="text/javascript">'), strpos($content, '</script>') + 9 - strpos($content, '<script type="text/javascript">'));
        $content = htmlentities(str_replace($script_content, '', $content));
        $script_content = str_replace('				', '', $script_content);
        $script_content = str_replace(array('<script type="text/javascript">', '</script>'), '', $script_content);
        ?>
		<style>
			body 	 { font-family:sans-serif; font-size:12px;}
			textarea { background:#f1f1f1; border:#ddd; font-size:10px; line-height:16px; margin-bottom:40px; padding:10px;}
			.rev_cont_title { color:#000; text-decoration:none;font-size:14px; line-height:24px; font-weight:800;background: #D5D5D5;padding: 10px;}
			.rev_cont_title a,
			.rev_cont_title a:visited { margin-left:25px;font-size:12px;line-height:12px;float:right;background-color:#8e44ad; color:#fff; padding:8px 10px;text-decoration:none;}
			.rev_cont_title a:hover	  { background-color:#9b59b6}
		</style>
		<p><?php 
        $dir = Mage::getBaseUrl('media');
        ?>
			<?php 
        echo Mage::helper('nwdrevslider')->__('Replace image path:');
        ?>
			<?php 
        echo Mage::helper('nwdrevslider')->__('From:');
        ?>
			<input type="text" name="orig_image_path" value="<?php 
        echo $dir;
        ?>
" />
			<?php 
        echo Mage::helper('nwdrevslider')->__('To:');
        ?>
			<input type="text" name="replace_image_path" value="" />
			<input id="rev_replace_images" type="button" name="replace_images" value="<?php 
        echo Mage::helper('nwdrevslider')->__('Replace');
        ?>
" />
		</p>

		<div class="rev_cont_title"><?php 
        echo Mage::helper('nwdrevslider')->__('Header');
        ?>
 <a class="button-primary revpurple export_slider_standalone copytoclip" data-idt="rev_head_content"  href="javascript:void(0);" original-title=""><?php 
        echo Mage::helper('nwdrevslider')->__('Mark to Copy');
        ?>
</a><div style="clear:both"></div></div>
		<textarea id="rev_head_content" readonly="true" style="width: 100%; height: 100px; color:#3498db"><?php 
        echo $head_content;
        ?>
</textarea>
		<div class="rev_cont_title"><?php 
        echo Mage::helper('nwdrevslider')->__('CSS');
        ?>
<a class="button-primary revpurple export_slider_standalone copytoclip" data-idt="rev_style_content"  href="javascript:void(0);" original-title=""><?php 
        echo Mage::helper('nwdrevslider')->__('Mark to Copy');
        ?>
</a></div>
		<textarea id="rev_style_content" readonly="true" style="width: 100%; height: 100px;"><?php 
        echo $style_content;
        ?>
</textarea>
		<div class="rev_cont_title"><?php 
        echo Mage::helper('nwdrevslider')->__('Body');
        ?>
<a class="button-primary revpurple export_slider_standalone copytoclip" data-idt="rev_the_content"  href="javascript:void(0);" original-title=""><?php 
        echo Mage::helper('nwdrevslider')->__('Mark to Copy');
        ?>
</a></div>
		<textarea id="rev_the_content" readonly="true" style="width: 100%; height: 100px;"><?php 
        echo $content;
        ?>
</textarea>
		<div class="rev_cont_title"><?php 
        echo Mage::helper('nwdrevslider')->__('Script');
        ?>
<a class="button-primary revpurple export_slider_standalone copytoclip" data-idt="rev_script_content"  href="javascript:void(0);" original-title=""><?php 
        echo Mage::helper('nwdrevslider')->__('Mark to Copy');
        ?>
</a></div>
		<textarea id="rev_script_content" readonly="true" style="width: 100%; height: 100px;"><?php 
        echo $script_content;
        ?>
</textarea>

		<script>
			jQuery('body').on('click','.copytoclip',function() {
				jQuery("#"+jQuery(this).data('idt')).select();
			});
			jQuery('#rev_replace_images').on('click', function() {
				var originalPath = jQuery('input[name=orig_image_path]').val();
				var replacePath = jQuery('input[name=replace_image_path]').val();
				var revContent = $('#rev_the_content').val();
				$('#rev_the_content').val(revContent.replace(originalPath, replacePath));
				jQuery('input[name=orig_image_path]').val(replacePath);
				jQuery('input[name=replace_image_path]').val(originalPath);
			});
		</script>
		</body>
		</html>
		<?php 
        exit;
    }
 public static function updateDynamicCaptions($full = false)
 {
     if ($full) {
         $captions = array();
         $captions = RevOperations::getCaptionsContentArray();
         $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
         UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
     } else {
         $slider = new RevSlider();
         $arrSliders = $slider->getArrSliders();
         $classes = array();
         if (!empty($arrSliders)) {
             foreach ($arrSliders as $slider) {
                 try {
                     $slides = $slider->getSlides();
                     if (!empty($slides)) {
                         foreach ($slides as $slide) {
                             $layers = $slide->getLayers();
                             if (!empty($layers)) {
                                 foreach ($layers as $layer) {
                                     if (isset($layer['style'])) {
                                         if (!empty($layer['style'])) {
                                             $classes[$layer['style']] = true;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } catch (Exception $e) {
                     $errorMessage = "ERROR: " . $e->getMessage();
                 }
             }
         }
         if (!empty($classes)) {
             $captions = array();
             foreach ($classes as $class => $val) {
                 $captionCheck = RevOperations::getCaptionsContentArray($class);
                 if (!get_magic_quotes_gpc()) {
                     $captionCheck = str_replace('"', "'", $captionCheck);
                 } else {
                     $captionCheck = str_replace('"', "'", $captionCheck);
                     $captionCheck = str_replace('\\\\', "", $captionCheck);
                 }
                 if (!empty($captionCheck)) {
                     $captions[] = $captionCheck;
                 }
             }
             $styles = UniteCssParserRev::parseArrayToCss($captions, "\n");
             UniteFunctionsRev::writeFile($styles, GlobalsRevSlider::$filepath_dynamic_captions);
         }
     }
 }