Example #1
0
    ?>
">
		<div class="wr-mm-form-container jsn-bootstrap3">
			<div id="modalOptions" class="form-horizontal <?php 
    echo esc_attr($submodal);
    ?>
">
	<?php 
    if (!empty($params)) {
        $params = stripslashes($params);
        $params = urldecode($params);
    }
    // elements
    if ($el_type == 'element') {
        // get shortcode class
        $class = WR_Megamenu_Helpers_Shortcode::get_shortcode_class($shortcode);
        if (class_exists($class)) {
            global $wr_megamenu_element;
            $elements = $wr_megamenu_element->get_elements();
            $instance = isset($elements['element'][strtolower($class)]) ? $elements['element'][strtolower($class)] : null;
            if (!is_object($instance)) {
                $instance = new $class();
            }
            if (!empty($params)) {
                $extract_params = WR_Megamenu_Helpers_Shortcode::extract_params($params, $shortcode);
                // if have sub-shortcode, extract sub shortcodes content
                if (!empty($instance->config['has_subshortcode'])) {
                    $sub_sc_data = WR_Megamenu_Helpers_Shortcode::extract_sub_shortcode($params, true);
                    $sub_sc_data = apply_filters('wr_mm_sub_items_filter', $sub_sc_data, $shortcode, isset($_COOKIE['wr_mm_data_for_modal']) ? $_COOKIE['wr_mm_data_for_modal'] : '');
                    $extract_params['sub_items_content'] = $sub_sc_data;
                }
Example #2
0
 /**
  * Render shortcode preview in a blank page
  * @return Ambigous <string, mixed>|WP_Error
  */
 function shortcode_iframe_preview()
 {
     global $wr_megamenu_element;
     if (isset($_GET['wr_shortcode_preview'])) {
         if (!isset($_GET['wr_shortcode_name']) || !isset($_POST['params'])) {
             return __('empty shortcode name / parameters', WR_MEGAMENU_TEXTDOMAIN);
         }
         if (!isset($_GET[WR_MEGAMENU_NONCE]) || !wp_verify_nonce($_GET[WR_MEGAMENU_NONCE], WR_MEGAMENU_NONCE)) {
             return;
         }
         $shortcode = esc_sql($_GET['wr_shortcode_name']);
         $params = urldecode($_POST['params']);
         $pattern = '/^\\[wr_megamenu_widget/i';
         if (!preg_match($pattern, trim($params))) {
             // get shortcode class
             $class = WR_Megamenu_Helpers_Shortcode::get_shortcode_class($shortcode);
             // get option settings of shortcode
             $elements = $wr_megamenu_element->get_elements();
             $element = isset($elements['element'][strtolower($class)]) ? $elements['element'][strtolower($class)] : null;
             if (!is_object($element)) {
                 $element = new $class();
             }
             if ($_POST['params']) {
                 $extract_params = WR_Megamenu_Helpers_Shortcode::extract_params($params, $shortcode);
             } else {
                 $extract_params = $element->config;
             }
             $element->shortcode_data();
             $_shortcode_content = $extract_params['_shortcode_content'];
             // Keep non-WR shortcode as they are in preview iframe
             $_shortcode_content = str_replace('[', '&#91;', $_shortcode_content);
             $_shortcode_content = str_replace('&#91;wr_', '[wr_', $_shortcode_content);
             $_shortcode_content = str_replace('&#91;/wr_', '[/wr_', $_shortcode_content);
             $content = $element->element_shortcode($extract_params, $_shortcode_content);
         } else {
             $class = 'WR_Megamenu_Widget';
             $content = '<script type="text/javascript">jQuery.noConflict();</script>';
             $content .= WR_Megamenu_Helpers_Shortcode::widget_content(array($params));
         }
         global $Wr_Megamenu_Preview_Class;
         $Wr_Megamenu_Preview_Class = $class;
         $html = '<div id="shortcode_inner_wrapper" class="jsn-bootstrap3">';
         $html .= $content;
         $html .= '</div>';
         echo balanceTags($html);
     }
 }
Example #3
0
 /**
  * Return html structure of shortcode in MegaMenu area
  * @param type $shortcode_name
  * @param type $attr
  * @param type $content
  */
 public static function shortcode_to_megamenu($shortcode_name, $content = '', $shortcode_data = '', $shortcode_params = '')
 {
     $class = WR_Megamenu_Helpers_Shortcode::get_shortcode_class($shortcode_name);
     if (class_exists($class)) {
         global $wr_megamenu_element;
         $elements = $wr_megamenu_element->get_elements();
         $instance = isset($elements['element'][strtolower($class)]) ? $elements['element'][strtolower($class)] : null;
         if (!is_object($instance)) {
             $instance = new $class();
         }
         $el_title = '';
         if ($class != 'WR_Megamenu_Widget') {
             // extract param of shortcode ( now for column )
             if (isset($instance->config['extract_param'])) {
                 parse_str(trim($shortcode_params), $output);
                 foreach ($instance->config['extract_param'] as $param) {
                     if (isset($output[$param])) {
                         $instance->params[$param] = WR_Megamenu_Helpers_Common::remove_quotes($output[$param]);
                     }
                 }
             }
             // get content in megamenu of shortcode: Element Title must always first option of Content tab
             if (isset($instance->items['content']) && isset($instance->items['content'][0])) {
                 $title = $instance->items['content'][0];
                 if (@$title['role'] == 'title') {
                     $params = shortcode_parse_atts($shortcode_params);
                     $el_title = !empty($params[$title['id']]) ? $params[$title['id']] : __('(Untitled)', WR_MEGAMENU_TEXTDOMAIN);
                 }
             }
         } else {
             $widget_info = WR_Megamenu_Helpers_Shortcode::extract_widget_params($shortcode_data);
             $el_title = !empty($widget_info['title']) ? $widget_info['title'] : '';
             $params = WR_Megamenu_Helpers_Shortcode::extract_params($shortcode_data);
             $instance->config['shortcode'] = $params['widget_id'];
             $instance->config['el_type'] = 'widget';
         }
         $shortcode_view = $instance->element_in_megamenu($content, $shortcode_data, $el_title);
         return $shortcode_view[0];
     }
 }