/** * function that sets some internal variables and counters, then calls the actual shortcode handling function */ public function shortcode_handler_prepare($atts, $content = "", $shortcodename = "", $fake = false) { $meta = array(); if (empty($this->config['inline'])) { $meta = array('el_class' => " avia-builder-el-" . ShortcodeHelper::$shortcode_index . " ", 'index' => ShortcodeHelper::$shortcode_index, 'this' => ShortcodeHelper::find_tree_item(ShortcodeHelper::$shortcode_index), 'siblings' => array('next' => ShortcodeHelper::find_tree_item(ShortcodeHelper::$shortcode_index, 1), 'prev' => ShortcodeHelper::find_tree_item(ShortcodeHelper::$shortcode_index, -1))); if (!empty($meta['siblings']['prev']['tag'])) { $meta['el_class'] .= " el_after_" . $meta['siblings']['prev']['tag'] . " "; } if (!empty($meta['siblings']['next']['tag'])) { $meta['el_class'] .= " el_before_" . $meta['siblings']['next']['tag'] . " "; } $fullwidth = AviaBuilder::$full_el; if (!empty($meta['this']['tag']) && !in_array($meta['this']['tag'], $fullwidth)) { if (!empty($meta['siblings']['next']['tag']) && in_array($meta['siblings']['next']['tag'], $fullwidth)) { $meta['siblings']['next'] = false; } if (!empty($meta['siblings']['prev']['tag']) && in_array($meta['siblings']['prev']['tag'], $fullwidth)) { $meta['siblings']['prev'] = false; } } //single element without siblings if (empty($meta['siblings']['next']) && empty($meta['siblings']['prev'])) { $meta['el_class'] .= " avia-builder-el-no-sibling "; } else { if (empty($meta['siblings']['next'])) { $meta['el_class'] .= " avia-builder-el-last "; } else { if (empty($meta['siblings']['prev'])) { $meta['el_class'] .= " avia-builder-el-first "; } } } //if the shortcode was added without beeing a builder element (eg button within layerslider) reset all styles for that shortcode and make sure it is marked as a fake element if (empty($meta['this']['tag']) || $shortcodename != $meta['this']['tag']) { $fake = true; $meta = array('el_class' => ''); } //fake is set when we manually call one shortcode inside another if (!$fake) { ShortcodeHelper::$shortcode_index++; } } if (isset($atts['custom_class'])) { $meta['el_class'] .= " " . $atts['custom_class']; $meta['custom_class'] = $atts['custom_class']; } $content = $this->shortcode_handler($atts, $content, $shortcodename, $meta); return $content; }