/** * get params & structure of shortcode * OVERWRIGE parent function */ public function shortcode_data() { $params = JSNPagebuilderHelpersShortcode::generateShortcodeParams($this->items); $this->config['params'] = array_merge(array('div_margin_top' => '', 'div_margin_bottom' => '', 'disabled_el' => 'no', 'css_suffix' => ''), $params); // get content of sub-shortcode $sub_items_content = array(); $sub_items = isset($this->config['params']['sub_sc_content']) ? $this->config['params']['sub_sc_content'] : array(); foreach ($sub_items as $sub_item_type => &$sub_shortcodes) { foreach ($sub_shortcodes as $sub_shortcode) { $sub_sc = new $sub_item_type(); // $sub_sc->init_element(); // empty std if (empty($sub_shortcode['std'])) { // only empty 'std' if (count($sub_shortcode) == 1) { // get default shortcode structure of sub-shortcode $sub_sc->config['params'] = JSNPagebuilderHelpersShortcode::generateShortcodeParams($sub_sc->items, null, null, false, true); // re-generate shortcode structure $sub_shortcode['std'] = JSNPagebuilderHelpersShortcode::generateShortcodeStructure($sub_sc->config['shortcode'], $sub_sc->config['params']); } else { // MODIFY $instance->items JSNPagebuilderHelpersShortcode::generateShortcodeParams($sub_sc->items, NULL, $sub_shortcode, TRUE); // re-generate shortcode structure $sub_sc->shortcode_data(); // get updated std of sub-shortcode $sub_shortcode['std'] = $sub_sc->config['shortcode_structure']; } } else { // if std of sub-shortcode is predefined ( such as GoogleMap ) $params = stripslashes($sub_shortcode['std']); $extract_params = JSNPagebuilderHelpersShortcode::generateShortcodeParams(urldecode($params)); // MODIFY $instance->items JSNPagebuilderHelpersShortcode::generateShortcodeParams($sub_sc->items, NULL, $extract_params, TRUE); // re-generate shortcode structure $sub_sc->shortcode_data(); } $sub_items_content[] = $sub_shortcode['std']; } } $sub_items_content = implode('', $sub_items_content); // END get content of sub-shortcode $this->config['shortcode_structure'] = JSNPagebuilderHelpersShortcode::generateShortcodeStructure($this->config['shortcode'], $this->config['params'], $sub_items_content); }
/** * get params & structure of shortcode * * @return void */ public function shortcode_data() { $this->config['params'] = JSNPagebuilderHelpersShortcode::generateShortcodeParams($this->items, null, null, false, true); $this->config['shortcode_structure'] = JSNPagebuilderHelpersShortcode::generateShortcodeStructure($this->config['shortcode'], $this->config['params']); }
/** * Get params & structure of shortcode * * @return type */ public function shortcode_data() { $params = JSNPagebuilderHelpersShortcode::generateShortcodeParams($this->items, null, null, false, true); // add Margin parameter for Not child shortcode if (strpos($this->config['shortcode'], '_item') === false) { $this->config['params'] = array_merge(array('div_margin_top' => '', 'div_margin_bottom' => '', 'css_suffix' => ''), $params); } else { $this->config['params'] = $params; } $this->config['shortcode_structure'] = JSNPagebuilderHelpersShortcode::generateShortcodeStructure($this->config['shortcode'], $this->config['params']); }