%PDF- %PDF-
Direktori : /var/www/html/buggydubrovnik.com/wp-content/plugins/revslider/includes/ |
Current File : /var/www/html/buggydubrovnik.com/wp-content/plugins/revslider/includes/extension.class.php |
<?php /** * Slider Revolution * * @package Essential_Grid * @author ThemePunch <info@themepunch.com> * @link http://revolution.themepunch.com/ * @copyright 2015 ThemePunch */ /** * @package RevSliderExtension * @author ThemePunch <info@themepunch.com> */ if( !defined( 'ABSPATH') ) exit(); class RevSliderExtension { public function __construct() { $this->init_essential_grid_extensions(); } /*************************** * Setup part for Revslider inclusion into Essential Grid ***************************/ /** * Do all initializations for RevSlider integration */ public function init_essential_grid_extensions(){ if(!class_exists('Essential_Grid')) return false; //only add if Essential Grid is installed add_filter('essgrid_set_ajax_source_order', array($this, 'add_slider_to_eg_ajax')); add_filter('essgrid_handle_ajax_content', array($this, 'set_slider_values_to_eg_ajax'), 10, 4); add_action('essgrid_add_meta_options', array($this, 'add_eg_additional_meta_field')); add_action('essgrid_save_meta_options', array($this, 'save_eg_additional_meta_field'), 10, 2); //only do on frontend add_action('admin_head', array($this, 'add_eg_additional_inline_javascript')); add_action('wp_head', array($this, 'add_eg_additional_inline_javascript')); } /** * Add Slider to the List of choosable media */ public function add_slider_to_eg_ajax($media){ $media['revslider'] = array('name' => __('Slider Revolution', 'revslider'), 'type' => 'ccw'); return $media; } /** * Add Slider to the List of choosable media */ public function set_slider_values_to_eg_ajax($handle, $media_sources, $post, $grid_id){ if($handle !== 'revslider') return false; $slider_source = ''; $values = get_post_custom($post['ID']); if(isset($values['eg_sources_revslider'])){ if(isset($values['eg_sources_revslider'][0])) $slider_source = (isset($values['eg_sources_revslider'][0])) ? $values['eg_sources_revslider'][0] : ''; else $slider_source = (isset($values['eg_sources_revslider'])) ? $values['eg_sources_revslider'] : ''; } if($slider_source === ''){ return false; }else{ return ' data-ajaxtype="'.$handle.'" data-ajaxsource="'.$slider_source.'"'; } } /** * Adds custom meta field into the essential grid meta box for post/pages */ public function add_eg_additional_meta_field($values){ $sld = new RevSlider(); $sliders = $sld->getArrSliders(); $shortcodes = array(); if(!empty($sliders)){ $first = true; foreach($sliders as $slider){ $name = $slider->getParam('shortcode','false'); if($name != 'false'){ $shortcodes[$slider->getID()] = $name; $first = false; } } } $selected_slider = (isset($values['eg_sources_revslider'])) ? $values['eg_sources_revslider'] : ''; if($selected_slider == ''){ $selected_slider = array(); $selected_slider[0] = ''; } ?> <p> <strong style="font-size:14px"><?php _e('Choose Revolution Slider', 'revslider'); ?></strong> </p> <p> <select name="eg_sources_revslider" id="eg_sources_revslider"> <option value=""<?php selected($selected_slider[0], ''); ?>><?php _e('--- Choose Slider ---', 'revslider'); ?></option> <?php if(!empty($shortcodes)){ foreach($shortcodes as $id => $name){ ?> <option value="<?php echo $id; ?>"<?php selected($selected_slider[0], $id); ?>><?php echo $name; ?></option> <?php } } ?> </select> </p> <?php } /** * Adds custom meta field into the essential grid meta box for post/pages */ public function save_eg_additional_meta_field($metas, $post_id){ if(isset($metas['eg_sources_revslider'])) update_post_meta($post_id, 'eg_sources_revslider', $metas['eg_sources_revslider']); } /** * Adds needed javascript to the DOM */ public function add_eg_additional_inline_javascript(){ ?> <script type="text/javascript"> var ajaxRevslider; jQuery(document).ready(function() { // CUSTOM AJAX CONTENT LOADING FUNCTION ajaxRevslider = function(obj) { // obj.type : Post Type // obj.id : ID of Content to Load // obj.aspectratio : The Aspect Ratio of the Container / Media // obj.selector : The Container Selector where the Content of Ajax will be injected. It is done via the Essential Grid on Return of Content var content = ""; data = {}; data.action = 'revslider_ajax_call_front'; data.client_action = 'get_slider_html'; data.token = '<?php echo wp_create_nonce("RevSlider_Front"); ?>'; data.type = obj.type; data.id = obj.id; data.aspectratio = obj.aspectratio; // SYNC AJAX REQUEST jQuery.ajax({ type:"post", url:"<?php echo admin_url('admin-ajax.php'); ?>", dataType: 'json', data:data, async:false, success: function(ret, textStatus, XMLHttpRequest) { if(ret.success == true) content = ret.data; }, error: function(e) { console.log(e); } }); // FIRST RETURN THE CONTENT WHEN IT IS LOADED !! return content; }; // CUSTOM AJAX FUNCTION TO REMOVE THE SLIDER var ajaxRemoveRevslider = function(obj) { return jQuery(obj.selector+" .rev_slider").revkill(); }; // EXTEND THE AJAX CONTENT LOADING TYPES WITH TYPE AND FUNCTION var extendessential = setInterval(function() { if (jQuery.fn.tpessential != undefined) { clearInterval(extendessential); if(typeof(jQuery.fn.tpessential.defaults) !== 'undefined') { jQuery.fn.tpessential.defaults.ajaxTypes.push({type:"revslider",func:ajaxRevslider,killfunc:ajaxRemoveRevslider,openAnimationSpeed:0.3}); // type: Name of the Post to load via Ajax into the Essential Grid Ajax Container // func: the Function Name which is Called once the Item with the Post Type has been clicked // killfunc: function to kill in case the Ajax Window going to be removed (before Remove function ! // openAnimationSpeed: how quick the Ajax Content window should be animated (default is 0.3) } } },30); }); </script> <?php } } ?>