/** * * @param type $content : inner shortcode elements of this column * @param string $shortcode_data * @return string */ public function elementInMegamenu($content = '', $shortcodeData = '') { $columnHtml = empty($content) ? '' : JSNTplMMHelperShortcode::doShortcodeAdmin($content, true); $span = !empty($this->params['span']) ? $this->params['span'] : 'span12'; $shortcodeData = '[' . $this->config['shortcode'] . ' span="' . $span . '"]'; // Remove empty value attributes of shortcode tag. $shortcodeData = preg_replace('/\\[*([a-z_]*[\\n\\s\\t]*=[\\n\\s\\t]*"")/', '', $shortcodeData); $rnd_id = JSNTplMMHelperCommon::randomString(); $column[] = '<div class="jsn-column-container clearafter shortcode-container "> <div class="jsn-column ' . $span . '"> <div class="thumbnail clearafter"> <textarea class="hidden" name="shortcode_content[]" >' . $shortcodeData . '</textarea> <div class="jsn-column-content item-container" data-column-class="' . $span . '" > <div class="jsn-handle-drag jsn-horizontal jsn-iconbar-trigger"><div class="jsn-iconbar layout"><a class="jsn-mm-item-delete column" onclick="return false;" title="' . JText::_('JSN_TPLFW_MEGAMENU_DELETE_COLUMN', true) . '" href="#"><i class="icon-trash"></i></a></div></div> <div class="jsn-element-container item-container-content">' . $columnHtml . '</div> <a class="jsn-add-more jsn-mm-more-element" href="javascript:void(0);"><i class="icon-plus"></i>' . JText::_('JSN_TPLFW_MEGAMENU_ADD_ELEMENT', true) . '</a> </div> <textarea class="hidden" name="shortcode_content[]" >[/' . $this->config['shortcode'] . ']</textarea> </div> </div> </div>'; return $column; }
public static function shortcodeToMegamenuFrontend($shortcodeName, $content = '', $shortcodeData = '', $shortcodeParams = '') { $class = self::getShortcodeClass($shortcodeName); if (class_exists($class)) { $tmpElements = array(); //global $wr_megamenu_element; $objJSNTplMMElement = new JSNTplMMElement(); $objJSNTplMMElement->init(); $elements = $objJSNTplMMElement->getElements(); $tmpElements = array_merge($tmpElements, $elements['layout']); $tmpElements = array_merge($tmpElements, $elements['element']); $instance = isset($tmpElements[strtolower($class)]) ? $tmpElements[strtolower($class)] : null; if (!is_object($instance)) { $instance = new $class(); } $el_title = ''; if (isset($instance->config['extract_param'])) { parse_str(trim($shortcodeParams), $output); foreach ($instance->config['extract_param'] as $param) { if (isset($output[$param])) { $instance->params[$param] = JSNTplMMHelperCommon::removeQuotes($output[$param]); } } } $params = self::shortcodeParseAtts($shortcodeParams); $shortcodeView = $instance->elementShortcode($params, $content); return $shortcodeView; } }