/**
         *
         * @param type $content		: inner shortcode elements of this row
         * @param type $shortcode_data : not used
         * @return string
         */
        public function element_in_megamenu($content = '', $shortcode_data = '')
        {
            if (empty($content)) {
                $column = new WR_Megamenu_Column();
                $column_html = $column->element_in_megamenu();
                $column_html = $column_html[0];
            } else {
                $column_html = WR_Megamenu_Helpers_Shortcode::do_shortcode_admin($content);
            }
            if (empty($shortcode_data)) {
                $shortcode_data = $this->config['shortcode_structure'];
            }
            // remove [/wr_megamenu_row][wr_megamenu_column...] from $shortcode_data
            $shortcode_data = explode('][', $shortcode_data);
            $shortcode_data = $shortcode_data[0] . ']';
            // Remove empty value attributes of shortcode tag.
            $shortcode_data = preg_replace('/\\[*([a-z_]*[\\n\\s\\t]*=[\\n\\s\\t]*"")/', '', $shortcode_data);
            $custom_style = WR_Megamenu_Helpers_Placeholder::get_placeholder('custom_style');
            $row[] = '<div class="jsn-row-container ui-sortable row-fluid shortcode-container" ' . $custom_style . '>
							<textarea class="hidden" data-sc-info="shortcode_content" name="shortcode_content[]" >' . $shortcode_data . '</textarea>
							<div class="jsn-iconbar left">
								<a href="javascript:void(0);" title="' . __('Move Up', WR_MEGAMENU_TEXTDOMAIN) . '" class="jsn-move-up disabled"><i class="icon-chevron-up"></i></a>
								<a href="javascript:void(0);" title="' . __('Move Down', WR_MEGAMENU_TEXTDOMAIN) . '" class="jsn-move-down disabled"><i class=" icon-chevron-down"></i></a>
							</div>
							<div class="wr-row-content">
							' . $column_html . '
							</div>
							<div class="jsn-iconbar jsn-vertical">
								<a href="javascript:void(0);" onclick="return false;" class="add-container" title="' . __('Add column', WR_MEGAMENU_TEXTDOMAIN) . '"><i class="wr-icon-add-col"></i></a>
								<a href="javascript:void(0);" onclick="return false;" title="Edit row" data-shortcode="' . $this->config['shortcode'] . '" class="element-edit row"><i class="icon-pencil"></i></a>
								<a href="javascript:void(0);" onclick="return false;" class="item-delete row" title="' . __('Delete row', WR_MEGAMENU_TEXTDOMAIN) . '"><i class="icon-trash"></i></a>
							</div>
							<textarea class="hidden" name="shortcode_content[]" >[/' . $this->config['shortcode'] . ']</textarea>
						</div>';
            return $row;
        }
Exemple #2
0
 /**
  * GET <script type='text/html'... template for shortcode element
  * @global type $Wr_Pb_Widgets
  * @return string
  */
 function get_shortcode_tpl()
 {
     global $wr_megamenu_element;
     if (!isset($_POST[WR_MEGAMENU_NONCE]) || !wp_verify_nonce($_POST[WR_MEGAMENU_NONCE], WR_MEGAMENU_NONCE)) {
         return;
     }
     if (!$_POST['shortcode']) {
         return;
     }
     $shortcode = $_POST['shortcode'];
     $type = $_POST['type'];
     $elements = $wr_megamenu_element->get_elements();
     if ($type == 'element') {
         if (isset($elements['element'][strtolower($shortcode)]) && is_object($elements['element'][strtolower($shortcode)])) {
             $element = $elements['element'][strtolower($shortcode)];
         } else {
             $class = WR_Megamenu_Helpers_Shortcode::get_shortcode_class($shortcode);
             $element = new $class();
         }
         $element->shortcode_data();
         $element_type = $element->element_in_megamenu();
         foreach ($element_type as $element_structure) {
             echo balanceTags("<script type='text/html' id='tmpl-{$shortcode}'>\n{$element_structure}\n</script>\n");
         }
     } else {
         $shortcode = mysql_real_escape_string($shortcode);
         $element = new WR_Megamenu_Widget();
         global $wr_megamenu_widgets;
         $modal_title = $wr_megamenu_widgets[$shortcode]['identity_name'];
         $element->config['shortcode'] = $shortcode;
         $content = $element->config['exception']['data-modal-title'] = $modal_title;
         $element->config['shortcode_structure'] = WR_Megamenu_Helpers_Placeholder::add_placeholder("[wr_megamenu_widget widget_id=\"{$shortcode}\"]%s[/wr_megamenu_widget]", 'widget_title');
         $element->config['el_type'] = $type;
         $element_type = $element->element_in_megamenu($content);
         foreach ($element_type as $element_structure) {
             echo balanceTags("<script type='text/html' id='tmpl-{$shortcode}'>\n{$element_structure}\n</script>\n");
         }
     }
     exit;
 }
Exemple #3
0
    /**
     * Get html item
     *
     * @param array $data
     *
     * @return string
     */
    static function get_element_item_html($data)
    {
        $default = array('element_wrapper' => '', 'modal_title' => '', 'element_type' => '', 'name' => '', 'shortcode' => '', 'shortcode_data' => '', 'content_class' => '', 'content' => '', 'action_btn' => '', 'has_preview' => true, 'this_' => '');
        $data = array_merge($default, $data);
        extract($data);
        $preview_html = '';
        if ($has_preview) {
            $preview_html = '<div class="shortcode-preview-container" style="display: none">
					<div class="shortcode-preview-fog"></div>
					<div class="jsn-overlay jsn-bgimage image-loading-24"></div>
				</div>';
        }
        $extra_class = WR_Megamenu_Helpers_Placeholder::get_placeholder('extra_class');
        $custom_style = WR_Megamenu_Helpers_Placeholder::get_placeholder('custom_style');
        $other_class = '';
        $tag = $shortcode;
        // Check if this element is deactivate
        if (strpos($shortcode_data, 'widget_id')) {
            $tag = 'wr_megamenu_widget';
        }
        preg_match_all('/\\[' . $tag . '\\s+([A-Za-z0-9_-]+=\\"[^"\']*\\"\\s*)*\\s*\\]/', $shortcode_data, $rg_sc_params);
        if (!empty($rg_sc_params[0])) {
            $sc_name_params = !empty($rg_sc_params[0][0]) ? $rg_sc_params[0][0] : $rg_sc_params[0];
            if (strpos($sc_name_params, 'disabled_el="yes"') !== false) {
                $other_class = 'disabled';
            }
        }
        // Remove empty value attributes of shortcode tag.
        $shortcode_data = preg_replace('/\\[*([a-z_]*[\\n\\s\\t]*=[\\n\\s\\t]*""\\s)/', '', $shortcode_data);
        // Content
        $content = balanceTags($content);
        $content = apply_filters('wr_mm_content', $content, $shortcode_data, $shortcode);
        // action buttons
        $buttons = array('edit' => '<a href="#" onclick="return false;" title="' . __('Edit element', WR_MEGAMENU_TEXTDOMAIN) . '" data-shortcode="' . $shortcode . '" class="element-edit"><i class="icon-pencil"></i></a>', 'clone' => '<a href="#" onclick="return false;" title="' . __('Duplicate element', WR_MEGAMENU_TEXTDOMAIN) . '" data-shortcode="' . $shortcode . '" class="element-clone"><i class="icon-copy"></i></a>', 'deactivate' => '<a href="#" onclick="return false;" title="' . __('Deactivate element', WR_MEGAMENU_TEXTDOMAIN) . '" data-shortcode="' . $shortcode . '" class="element-deactivate"><i class="icon-checkbox-unchecked"></i></a>', 'delete' => '<a href="#" onclick="return false;" title="' . __('Delete element', WR_MEGAMENU_TEXTDOMAIN) . '" class="element-delete"><i class="icon-trash"></i></a>');
        if (!empty($other_class)) {
            $buttons = array_merge($buttons, array('deactivate' => '<a href="#" onclick="return false;" title="' . __('Activate element', WR_MEGAMENU_TEXTDOMAIN) . '" data-shortcode="' . $shortcode . '" class="element-deactivate"><i class="icon-checkbox-partial"></i></a>'));
        }
        $action_btns = empty($action_btn) ? implode('', $buttons) : $buttons[$action_btn];
        $buttons = apply_filters('wr_mm_button', "<div class='jsn-iconbar'>{$action_btns}</div>", $shortcode_data, $shortcode);
        return "<{$element_wrapper} class='jsn-item jsn-element ui-state-default jsn-iconbar-trigger shortcode-container {$extra_class} {$other_class}' {$modal_title} {$element_type} data-name='{$name}' {$custom_style}>\n\t\t\t\t<i class='drag-element-icon'></i>\n\t\t\t\t<textarea class='hidden shortcode-content' shortcode-name='{$shortcode}' data-sc-info='shortcode_content' name='shortcode_content[]' >{$shortcode_data}</textarea>\n\t\t\t\t<div class='{$content_class}'>{$content}</div>\n\t\t\t\t{$buttons}\n\t\t\t\t{$preview_html}\n\t\t\t</{$element_wrapper}>";
    }
Exemple #4
0
 /**
  * Get style info
  *
  * @param array $element
  * @param type $output
  * @return type
  */
 static function get_style($element, $output)
 {
     $style = !empty($element['style']) ? $element['style'] : '';
     if (is_array($element['style'])) {
         $styles = array();
         foreach ($element['style'] as $att_name => $att_value) {
             $styles[] = "{$att_name} : {$att_value}";
         }
         $styles = "style = '" . implode(';', $styles) . "'";
     } else {
         $styles = '';
     }
     $output = WR_Megamenu_Helpers_Placeholder::remove_placeholder($output, 'custom_style', $styles);
     return $output;
 }
Exemple #5
0
 /**
  * DEFINE html structure of shortcode in MegaMenu area
  *
  * @param string $content
  * @param string $shortcode_data: string stores params (which is modified default value) of shortcode
  * @param string $el_title: Element Title used to identifying elements in WR MegaMenu
  * Ex:  param-tag=h6&param-text=Your+heading&param-font=custom&param-font-family=arial
  * @return string
  */
 public function element_in_megamenu($content = '', $shortcode_data = '', $el_title = '', $index = '')
 {
     $shortcode = $this->config['shortcode'];
     $is_sub_element = isset($this->config['sub_element']) ? true : false;
     $parent_shortcode = $is_sub_element ? str_replace('wr_item_', '', $shortcode) : $shortcode;
     $type = !empty($this->config['el_type']) ? $this->config['el_type'] : 'widget';
     // Empty content if this is not sub element
     if (!$is_sub_element) {
         $content = '';
     }
     $exception = isset($this->config['exception']) ? $this->config['exception'] : array();
     $content = isset($exception['default_content']) ? $exception['default_content'] : $content;
     $modal_title = '';
     // if is widget
     if ($type == 'widget') {
         global $wr_megamenu_widgets;
         if (isset($wr_megamenu_widgets[$shortcode]) && is_array($wr_megamenu_widgets[$shortcode]) && isset($wr_megamenu_widgets[$shortcode]['identity_name'])) {
             $modal_title = $wr_megamenu_widgets[$shortcode]['identity_name'];
             $content = $this->config['exception']['data-modal-title'] = $modal_title;
         }
     }
     // if content is still empty, Generate it
     if (empty($content)) {
         if (!$is_sub_element) {
             $content = ucfirst(str_replace('wr_', '', $shortcode));
         } else {
             if (isset($exception['item_text'])) {
                 if (!empty($exception['item_text'])) {
                     $content = WR_Megamenu_Helpers_Placeholder::add_placeholder($exception['item_text'] . ' %s', 'index');
                 }
             } else {
                 $content = WR_Megamenu_Helpers_Placeholder::add_placeholder(__(ucfirst($parent_shortcode), WR_MEGAMENU_TEXTDOMAIN) . ' ' . __('Item', WR_MEGAMENU_TEXTDOMAIN) . ' %s', 'index');
             }
         }
     }
     $content = !empty($el_title) ? $content . ': ' . "<span>{$el_title}</span>" : $content;
     // element name
     if ($type == 'element') {
         if (!$is_sub_element) {
             $name = ucfirst(str_replace('wr_', '', $shortcode));
         } else {
             $name = __(ucfirst($parent_shortcode), WR_MEGAMENU_TEXTDOMAIN) . ' ' . __('Item', WR_MEGAMENU_TEXTDOMAIN);
         }
     } else {
         $name = $content;
     }
     if (empty($shortcode_data)) {
         $shortcode_data = $this->config['shortcode_structure'];
     }
     // Process index for subitem element
     if (!empty($index)) {
         $shortcode_data = str_replace('_WR_INDEX_', $index, $shortcode_data);
     }
     $shortcode_data = stripslashes($shortcode_data);
     $element_wrapper = !empty($exception['item_wrapper']) ? $exception['item_wrapper'] : ($is_sub_element ? 'li' : 'div');
     $content_class = $is_sub_element ? 'jsn-item-content' : 'wr-mm-element';
     $modal_title = empty($modal_title) ? !empty($exception['data-modal-title']) ? "data-modal-title='{$exception['data-modal-title']}'" : '' : $modal_title;
     $element_type = "data-el-type='{$type}'";
     $data = array('element_wrapper' => $element_wrapper, 'modal_title' => $modal_title, 'element_type' => $element_type, 'name' => $name, 'shortcode' => $shortcode, 'shortcode_data' => $shortcode_data, 'content_class' => $content_class, 'content' => $content, 'action_btn' => empty($exception['action_btn']) ? '' : $exception['action_btn']);
     $extra = array();
     if (isset($this->config['exception']['disable_preview_container'])) {
         $extra = array('has_preview' => FALSE);
     }
     $data = array_merge($data, $extra);
     $html_preview = WR_Megamenu_Helpers_Functions::get_element_item_html($data);
     return array($html_preview);
 }
Exemple #6
0
 /**
  * Do shortcode & Return final html output for frontend
  * @param type $content
  */
 public static function doshortcode_content($wr_megamenu_content)
 {
     // remove placeholder text which was inserted to &lt; and &gt;
     $wr_megamenu_content = WR_Megamenu_Helpers_Placeholder::remove_placeholder($wr_megamenu_content, 'wrapper_append', '');
     $wr_megamenu_content = preg_replace_callback('/\\[wr_megamenu_widget\\s+([A-Za-z0-9_-]+=\\"[^"\']*\\"\\s*)*\\s*\\](.*)\\[\\/wr_megamenu_widget\\]/Us', array('self', 'widget_content'), $wr_megamenu_content);
     $output = do_shortcode($wr_megamenu_content);
     return $output;
 }