?> "> <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; }
/** * 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('[', '[', $_shortcode_content); $_shortcode_content = str_replace('[wr_', '[wr_', $_shortcode_content); $_shortcode_content = str_replace('[/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); } }
/** * 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]; } }