예제 #1
0
			<div class="tp-arrows tp-rightarrow"></div>
		</div>
		<div class="rs-bullets-preview"></div>
		<div class="rs-thumbs-preview"></div>
		<div class="rs-tabs-preview"></div>
	</div>
	
	<a class="button-primary revgreen" id="rs-save-navigation-style" href="javascript:void(0);"><i class="rs-icon-save-light"></i><?php 
_e('Save All Changes', REVSLIDER_TEXTDOMAIN);
?>
</a>
	
	
	<script type="text/javascript">
		var rs_navigations = jQuery.parseJSON(<?php 
echo RevSliderFunctions::jsonEncodeForClientSide($navigs);
?>
) || new Array();

		jQuery(document).ready(function(){
			var rs_current_editing = false;
			var cur_edit_type = false;
			var latest_nav_id = 0;
			var global_navigation_template = wp.template( "rs-navigation-wrap" );
			var global_navigation_template_header = wp.template( "rs-navigation-header-wrap" );
			
			rs_add_all_navigation_entries();
			
			function rs_add_navigation_header(title, type){
				var data = { title: title, type: type };
				
예제 #2
0
 /**
  *
  * 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 "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;
 }
					if (e.closest('#nav_bullets_subs').length>0) 
						navtype = 'bullets';	
					else 
					if (e.closest('#nav_tabs_subs').length>0)
						navtype = 'tabs';
					else 
					if (e.closest('#nav_thumbnails_subs').length>0)
						navtype = 'thumbs';
						
					var s = changeNavStyle(navtype,jQuery(this));	
					if (s!=undefined)
						cont.html("Suggested Size:"+s.w+" x "+s.h+"px");
					else cont.hide();
				})				
				var rs_navigations = jQuery.parseJSON(<?php 
echo RevSliderFunctions::jsonEncodeForClientSide($arr_navigations);
?>
);								
				
				
				var googlef_template_container = wp.template( "rs-preset-googlefont" );
				
				jQuery('#add_new_google_font').click(function(){
					var content = googlef_template_container({'value':''});
					jQuery('#rs-google-fonts').append(content);
				});
				
				jQuery('body').on('click', '.rs-google-remove-field', function(){
					jQuery(this).parent().remove();
				});
				
예제 #4
0
</div>

<?php 
if ($slide->isStaticSlide()) {
    $slideID = $slide->getID();
}
$mslide_list = array();
if (!empty($arrSlidesWPML)) {
    foreach ($arrSlidesWPML as $arwmpl) {
        if ($arwmpl['id'] == $slideID) {
            continue;
        }
        $mslide_list[] = array($arwmpl['id'] => $arwmpl['title']);
    }
}
$mslide_list = RevSliderFunctions::jsonEncodeForClientSide($mslide_list);
?>
<script type="text/javascript">
	var g_patternViewSlide = '<?php 
echo $patternViewSlide;
?>
';

	
	var g_messageDeleteSlide = "<?php 
_e("Delete this slide?", REVSLIDER_TEXTDOMAIN);
?>
";
	jQuery(document).ready(function(){
		RevSliderAdmin.initEditSlideView(<?php 
echo $slideID;
예제 #5
0
<?php

if (!defined('ABSPATH')) {
    exit;
}
//get taxonomies with cats
$postTypesWithCats = RevSliderOperations::getPostTypesWithCatsForClient();
$jsonTaxWithCats = RevSliderFunctions::jsonEncodeForClientSide($postTypesWithCats);
//check existing slider data:
$sliderID = self::getGetVar('id');
$arrFieldsParams = array();
if (!empty($sliderID)) {
    $slider = new RevSlider();
    $slider->initByID($sliderID);
    //get setting fields
    $settingsFields = $slider->getSettingsFields();
    $arrFieldsMain = $settingsFields['main'];
    $arrFieldsParams = $settingsFields['params'];
    $linksEditSlides = self::getViewUrl(RevSliderAdmin::VIEW_SLIDE, 'id=new&slider=' . intval($sliderID));
    require self::getPathTemplate('edit-slider');
} else {
    require self::getPathTemplate('create-slider');
}
    /**
     * Add dialog for shortcode generator
     * @since: 5.1.1
     */
    public static function add_tiny_mce_shortcode_dialog()
    {
        $sld = new RevSlider();
        $sliders = $sld->getArrSliders();
        $shortcodes = '';
        ?>
		<div id="revslider-tiny-mce-dialog" tabindex="-1" action="" title="" style="display: none; ">
			<form id="revslider-tiny-mce-settings-form" action="">
				<!-- STEP 1 -->
				<div id="revslider-tiny-dialog-step-1">					
					<p class="revslider-quicktitle"></p>
					<div class="revslider-quick-inner-wrapper" style="padding-right:0px;padding-bottom:0px;">
						<select name="revslider-existing-slider" id="revslider-existing-slider">
							<option value="-1" selected="selected"><?php 
        _e('--- Choose Slider ---', 'revslider');
        ?>
</option>
							<?php 
        $sl = array();
        $sliders_info = array();
        if (!empty($sliders)) {
            foreach ($sliders as $slider) {
                $alias = $slider->getParam('alias', 'false');
                $title = $slider->getTitle();
                $type = $slider->getParam('source_type', 'gallery');
                $slider_type = $slider->getParam('slider-type', 'standard');
                $active_slide = $slider->getParam('hero_active', -1);
                $sliderID = $slider->getID();
                if ($type == 'gallery') {
                    $slides = $slider->getSlides();
                } elseif ($type == 'specific_posts') {
                    $slides = $slider->getSlidesFromPosts();
                }
                if (!empty($slides)) {
                    $sliders_info[$sliderID] = array();
                    foreach ($slides as $slide) {
                        $bg_extraClass = '';
                        $bg_fullstyle = '';
                        $urlImageForView = $slide->getThumbUrl();
                        $bgt = $slide->getParam('background_type', 'transparent');
                        if ($type == 'woocommerce') {
                        }
                        if ($bgt == 'image' || $bgt == 'streamvimeo' || $bgt == 'streamyoutube' || $bgt == 'streaminstagram') {
                            switch ($type) {
                                case 'posts':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/post.png';
                                    break;
                                case 'woocommerce':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/wc.png';
                                    break;
                                case 'facebook':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/fb.png';
                                    break;
                                case 'twitter':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/tw.png';
                                    break;
                                case 'instagram':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/ig.png';
                                    break;
                                case 'flickr':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/fr.png';
                                    break;
                                case 'youtube':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/yt.png';
                                    break;
                                case 'vimeo':
                                    $urlImageForView = RS_PLUGIN_URL . 'public/assets/assets/sources/vm.png';
                                    break;
                            }
                        }
                        if ($bgt == 'image' || $bgt == 'vimeo' || $bgt == 'youtube' || $bgt == 'html5' || $bgt == 'streamvimeo' || $bgt == 'streamyoutube' || $bgt == 'streaminstagram') {
                            $bg_style = ' ';
                            if ($slide->getParam('bg_fit', 'cover') == 'percentage') {
                                $bg_style .= "background-size: " . $slide->getParam('bg_fit_x', '100') . '% ' . $slide->getParam('bg_fit_y', '100') . '%;';
                            } else {
                                $bg_style .= "background-size: " . $slide->getParam('bg_fit', 'cover') . ";";
                            }
                            if ($slide->getParam('bg_position', 'center center') == 'percentage') {
                                $bg_style .= "background-position: " . intval($slide->getParam('bg_position_x', '0')) . '% ' . intval($slide->getParam('bg_position_y', '0')) . '%;';
                            } else {
                                $bg_style .= "background-position: " . $slide->getParam('bg_position', 'center center') . ";";
                            }
                            $bg_style .= "background-repeat: " . $slide->getParam('bg_repeat', 'no-repeat') . ";";
                            $bg_fullstyle = ' style="background-image:url(' . $urlImageForView . ');' . $bg_style . '" ';
                        }
                        if ($bgt == 'solid') {
                            $bg_fullstyle = ' style="background-color:' . $slide->getParam('slide_bg_color', 'transparent') . ';" ';
                        }
                        if ($bgt == 'trans') {
                            $bg_extraClass = 'mini-transparent';
                        }
                        if ($slide->getParam('thumb_for_admin', 'off') == "on") {
                            $bg_fullstyle = ' style="background-image:url(' . $slide->getParam('slide_thumb', '') . ');background-size:cover;background-position:center center" ';
                        }
                        $sliders_info[$sliderID][] = array('id' => $slide->getID(), 'slider_type' => $slider_type, 'title' => $slide->getTitle(), 'slidertitle' => $title, 'slideralias' => $alias, 'sliderid' => $sliderID, 'state' => $slide->getParam('state', 'published'), 'slide_thumb' => $slide->getParam('slide_thumb', ''), 'bg_fullstyle' => $bg_fullstyle, 'bg_extraClass' => $bg_extraClass, 'active_slide' => $active_slide);
                        if ($active_slide == -1) {
                            $active_slide = -99;
                        }
                        //do this so that we are hero, only the first slide will be active if no hero slide was yet set
                    }
                }
                $sl[$type][] = array('alias' => $alias, 'title' => $title, 'id' => $sliderID);
            }
            if (!empty($sl)) {
                foreach ($sl as $type => $slider) {
                    $mtype = $type == 'specific_posts' ? 'Specific Posts' : $type;
                    echo '<option disabled="disabled">--- ' . ucfirst(esc_attr($mtype)) . ' ---</option>';
                    foreach ($slider as $values) {
                        if ($values['alias'] != 'false') {
                            echo '<option data-sliderid="' . esc_attr($values['id']) . '" data-slidertype="' . esc_attr($type) . '" value="' . esc_attr($values['alias']) . '">' . esc_attr($values['title']) . '</option>' . "\n";
                        }
                    }
                }
            }
        }
        ?>
						</select>

						<ul id="rs-shortcode-select-wrapper">
							<li class="rs-slider-modify-li rs-slider-modify-new-slider">								
								<a href="<?php 
        echo RevSliderBaseAdmin::getViewUrl(RevSliderAdmin::VIEW_SLIDER);
        ?>
" target="_blank" class="button-primary revgreen" id="rs-create-predefined-slider"><span class="dashicons dashicons-plus"></span><span class="rs-slider-modify-title"><?php 
        _e('Create Slider', 'revslider');
        ?>
</span></a>
							</li>
							<?php 
        if (!empty($sliders_info)) {
            foreach ($sliders_info as $type => $slider) {
                foreach ($slider as $values) {
                    ?>
										<li id="slider_list_item_<?php 
                    echo $values['sliderid'];
                    ?>
" class="rs-slider-modify-li" data-sliderid="<?php 
                    echo esc_attr($values['sliderid']);
                    ?>
" data-slideralias="<?php 
                    echo esc_attr($values['slideralias']);
                    ?>
">
											<span class="mini-transparent mini-as-bg"></span>
											<div class="rs-slider-modify-container <?php 
                    echo $values['bg_extraClass'];
                    ?>
"  <?php 
                    echo $values['bg_fullstyle'];
                    ?>
></div>
											<i class="slide-link-forward eg-icon-forward"></i>

											<span class="rs-slider-modify-title">#<?php 
                    echo $values['sliderid'] . ' ' . $values['slidertitle'];
                    ?>
</span>
										</li>
										<?php 
                    break;
                }
            }
        }
        ?>
							
							<span style="clear:both;width:100%;display:block"></span>

						</ul>
						<span style="clear:both;width:100%;display:block"></span>
						<script type="text/javascript">
							var rev_sliders_info = jQuery.parseJSON(<?php 
        echo RevSliderFunctions::jsonEncodeForClientSide($sliders_info);
        ?>
);
						</script>
					</div>
					<div class="revslider-stepnavigator">
						<span class="revslider-currentstep"><strong><?php 
        _e('STEP 1', 'revslider');
        ?>
</strong><?php 
        _e('Select / Create Slider', 'revslider');
        ?>
</span>
						<span class="revslider-step-actions-wrapper">
							<a href="javascript:void(0);" class="button-primary nonclickable" id="rs-modify-predefined-slider"><span class="dashicons dashicons-admin-generic"></span><?php 
        _e('Quick Modify Slider', 'revslider');
        ?>
</a>
							<a href="javascript:void(0);" class="button-primary nonclickable" id="rs-add-predefined-slider"><span class="dashicons dashicons-migrate"></span><?php 
        _e('Add Selected Slider', 'revslider');
        ?>
</a>							
						</span>
						<span style="clear:both;width:100%;display:block"></span>
					</div>
				</div>
				
				<!-- STEP 1.5 -->
				<div id="revslider-tiny-dialog-step-1-5" style="display: none;">
					<p class="revslider-quicktitle"></p>
					<div id="revslider-tiny-settings-wrap" class="revslider-quick-inner-wrapper" style="padding-right:0px;padding-bottom:0px;">
							<ul class="rs-mod-slides-wrapper">
								
							</ul>
					</div>					
					<div class="revslider-stepnavigator"><span class="revslider-currentstep"><strong><?php 
        _e('STEP 2', 'revslider');
        ?>
</strong><?php 
        _e('Quick Modify / Add Slider', 'revslider');
        ?>
</span>
						<span class="revslider-step-actions-wrapper">
							<a href="javascript:void(0);" class="button-primary  rs-goto-step-1"><span class="dashicons dashicons-arrow-left-alt"></span><?php 
        _e('Select Slider', 'revslider');
        ?>
</a>
							<a href="javascript:void(0);" class="button-primary " id="revslider-add-custom-shortcode-modify"><span class="dashicons dashicons-migrate"></span><?php 
        _e('Add Selected Slider', 'revslider');
        ?>
</a>							
						</span>
					</div>
				</div>
			</form>
		</div>

		<script>
			jQuery("document").ready(function() {
				jQuery('body').on('click', '.slide-published.pubclickable', function(){
					var li = jQuery(this).closest('li');						
					li.find('.slide-published').removeClass("pubclickable");
					li.find('.slide-unpublished').addClass("pubclickable");
				});		
				jQuery('body').on('click', '.slide-unpublished.pubclickable', function(){
					var li = jQuery(this).closest('li');
					li.find('.slide-published').addClass("pubclickable");
					li.find('.slide-unpublished').removeClass("pubclickable");
				});
				
				jQuery('body').on('click', '.slide-hero-published.pubclickable', function(){
					var li = jQuery(this).closest('li');
					jQuery('.slide-link-published-wrapper').each(function(){
						jQuery(this).find('.slide-hero-published').addClass("pubclickable");
						jQuery(this).find('.slide-hero-unpublished').removeClass("pubclickable");
					});
					li.find('.slide-hero-published').removeClass("pubclickable");
					li.find('.slide-hero-unpublished').addClass("pubclickable");
				});		
				jQuery('body').on('click', '.slide-hero-unpublished.pubclickable', function(){
					var li = jQuery(this).closest('li');
					jQuery('.slide-link-published-wrapper').each(function(){
						jQuery(this).find('.slide-hero-published').addClass("pubclickable");
						jQuery(this).find('.slide-hero-unpublished').removeClass("pubclickable");
					});
					li.find('.slide-hero-published').addClass("pubclickable");
					//li.find('.slide-hero-unpublished').removeClass("pubclickable");
				});	
			});		
		</script>

		
		<script type="text/html" id="tmpl-rs-modify-slide-wrap">
			<li id="slidelist_item_{{ data.id }}" class="rs-slide-modify-li">
				<span class="mini-transparent mini-as-bg"></span>
				<div class="rs-slide-modify-container {{ data.bg_extraClass }}" {{{ data.bg_fullstyle }}}></div>
				<i class="slide-link-forward eg-icon-forward"></i>
				
				<span class="slide-link-published-wrapper">
					<# if(data.slider_type !== 'hero'){ #>
						<# if(data.state == 'published'){ #>
							<span class="slide-published" ></span>
							<span class="slide-unpublished pubclickable"></span>
						<# }else{ #>
							<span class="slide-unpublished"></span>
							<span class="slide-published pubclickable"></span>
						<# } #>
					<# }else{ #>
						<# if(data.active_slide == data.id || data.active_slide == -1){ #> <?php 
        /* || data.active_slide == -1 */
        ?>
							<span class="slide-hero-published"></span>
							<span class="slide-hero-unpublished pubclickable"></span>
						<# }else{ #>
							<span class="slide-hero-published pubclickable"></span>
							<span class="slide-hero-unpublished"></span>
						<# } #>
					<# } #>
				</span>
				<span class="rs-slide-modify-title">{{ data.title }}</span>
			</li>
		</script>
		<?php 
    }