Esempio n. 1
0
 /**
  * Frontend Shortcode Handler
  *
  * @param array $atts array of attributes
  * @param string $content text within enclosing form of shortcode element
  * @param string $shortcodename the shortcode found, when == callback name
  * @return string $output returns the modified html string
  */
 function shortcode_handler($atts, $content = "", $shortcodename = "", $meta = "")
 {
     avia_sc_grid_row::$count++;
     $atts = shortcode_atts(array('color' => 'main_color', 'border' => '', 'min_height' => '0', 'mobile' => 'av-flex-cells', 'id' => ''), $atts, $this->config['shortcode']);
     extract($atts);
     $output = "";
     $params['class'] = "av-layout-grid-container entry-content-wrapper {$color} {$mobile} {$border}" . $meta['el_class'];
     $params['open_structure'] = false;
     $params['id'] = !empty($id) ? $id : "av-layout-grid-" . avia_sc_grid_row::$count;
     $params['custom_markup'] = $meta['custom_markup'];
     //we dont need a closing structure if the element is the first one or if a previous fullwidth element was displayed before
     if (isset($meta['index']) && $meta['index'] == 0) {
         $params['close'] = false;
     }
     if (!empty($meta['siblings']['prev']['tag']) && in_array($meta['siblings']['prev']['tag'], AviaBuilder::$full_el_no_section)) {
         $params['close'] = false;
     }
     if (isset($meta['index']) && $meta['index'] != 0) {
         $params['class'] .= " submenu-not-first";
     }
     avia_sc_cell::$attr = $atts;
     $output .= avia_new_section($params);
     $output .= ShortcodeHelper::avia_remove_autop($content, true);
     $output .= avia_section_after_element_content($meta, 'after_submenu', false);
     // added to fix http://www.kriesi.at/support/topic/footer-disseapearing/#post-427764
     avia_sc_section::$close_overlay = "";
     return $output;
 }
Esempio n. 2
0
 /**
  * Frontend Shortcode Handler
  *
  * @param array $atts array of attributes
  * @param string $content text within enclosing form of shortcode element
  * @param string $shortcodename the shortcode found, when == callback name
  * @return string $output returns the modified html string
  */
 function shortcode_handler($atts, $content = "", $shortcodename = "", $meta = "")
 {
     global $avia_config;
     avia_sc_section::$section_count++;
     $atts = shortcode_atts(array('src' => '', 'position' => 'top left', 'repeat' => 'no-repeat', 'attach' => 'scroll', 'color' => 'main_color', 'custom_bg' => '', 'padding' => 'default', 'shadow' => 'shadow', 'id' => '', 'min_height' => '', 'min_height_px' => '', 'video' => '', 'video_ratio' => '16:9', 'video_mobile_disabled' => '', 'custom_markup' => '', 'attachment' => '', 'attachment_size' => '', 'bottom_border' => '', 'overlay_enable' => '', 'overlay_opacity' => '', 'overlay_color' => '', 'overlay_pattern' => '', 'overlay_custom_pattern' => '', 'scroll_down' => ''), $atts, $this->config['shortcode']);
     extract($atts);
     $output = "";
     $class = "avia-section " . $color . " avia-section-" . $padding . " avia-" . $shadow;
     $background = "";
     $params['id'] = !empty($id) ? AviaHelper::save_string($id, '-') : "av_section_" . avia_sc_section::$section_count;
     $params['custom_markup'] = $meta['custom_markup'];
     $params['attach'] = "";
     if (!empty($attachment) && !empty($attachment_size)) {
         $attachment_entry = get_post($attachment);
         if (!empty($attachment_entry)) {
             if (!empty($attachment_size)) {
                 $src = wp_get_attachment_image_src($attachment_entry->ID, $attachment_size);
                 $src = !empty($src[0]) ? $src[0] : "";
             }
         }
     } else {
         $attachment = false;
     }
     if ($custom_bg != "") {
         $background .= "background-color: {$custom_bg}; ";
     }
     /*set background image*/
     if ($src != "") {
         if ($repeat == 'stretch') {
             $background .= "background-repeat: no-repeat; ";
             $class .= " avia-full-stretch";
         } else {
             $background .= "background-repeat: {$repeat}; ";
         }
         $background .= "background-image: url({$src}); ";
         $background .= $attach == 'parallax' ? "background-attachment: scroll; " : "background-attachment: {$attach}; ";
         $background .= "background-position: {$position}; ";
         if ($attach == 'parallax') {
             $attachment_class = "";
             if ($repeat == 'stretch' || $repeat == 'no-repeat') {
                 $attachment_class .= " avia-full-stretch";
             }
             $class .= " av-parallax-section";
             $speed = apply_filters('avf_parallax_speed', "0.3", $params['id']);
             $params['attach'] .= "<div class='av-parallax' data-avia-parallax-ratio='{$speed}' >";
             $params['attach'] .= "<div class='av-parallax-inner {$color} {$attachment_class}' style = '{$background}' >";
             $params['attach'] .= "</div>";
             $params['attach'] .= "</div>";
             $background = "";
         }
         $params['data'] = "data-section-bg-repeat='{$repeat}'";
     } else {
         $attach = "scroll";
     }
     if ($custom_bg != "") {
         $background .= "background-color: {$custom_bg}; ";
     }
     if ($background) {
         $background = "style = '{$background}'";
     }
     /*check/create overlay*/
     $overlay = "";
     $pre_wrap = "<div class='av-section-color-overlay-wrap'>";
     if (!empty($overlay_enable)) {
         $overlay_src = "";
         $overlay = "opacity: {$overlay_opacity}; ";
         if (!empty($overlay_color)) {
             $overlay .= "background-color: {$overlay_color}; ";
         }
         if (!empty($overlay_pattern)) {
             if ($overlay_pattern == "custom") {
                 $overlay_src = $overlay_custom_pattern;
             } else {
                 $overlay_src = str_replace('{{AVIA_BASE_URL}}', AVIA_BASE_URL, $overlay_pattern);
             }
         }
         if (!empty($overlay_src)) {
             $overlay .= "background-image: url({$overlay_src}); background-repeat: repeat;";
         }
         $overlay = "<div class='av-section-color-overlay' style='{$overlay}'></div>";
         $class .= " av-section-color-overlay-active";
         $params['attach'] .= $pre_wrap . $overlay;
     }
     if (!empty($scroll_down)) {
         if (!$overlay) {
             $params['attach'] .= $pre_wrap;
         }
         $params['attach'] .= "<a href='#next-section' title='' class='scroll-down-link' " . av_icon_string('scrolldown') . "></a>";
     }
     $class .= " avia-bg-style-" . $attach;
     $params['class'] = $class . " " . $meta['el_class'];
     $params['bg'] = $background;
     $params['min_height'] = $min_height;
     $params['min_height_px'] = $min_height_px;
     $params['video'] = $video;
     $params['video_ratio'] = $video_ratio;
     $params['video_mobile_disabled'] = $video_mobile_disabled;
     if (isset($meta['index'])) {
         if ($meta['index'] == 0) {
             $params['main_container'] = true;
         }
         if ($meta['index'] == 0 || isset($meta['siblings']['prev']['tag']) && in_array($meta['siblings']['prev']['tag'], AviaBuilder::$full_el_no_section)) {
             $params['close'] = false;
         }
     }
     $avia_config['layout_container'] = "section";
     $output .= avia_new_section($params);
     $output .= ShortcodeHelper::avia_remove_autop($content, true);
     /*set extra arrow element*/
     if (strpos($bottom_border, 'border-extra') !== false) {
         $backgroundEl = "";
         $backgroundElColor = !empty($custom_bg) ? $custom_bg : $avia_config['backend_colors']['color_set'][$color]['bg'];
         if ($backgroundElColor) {
             $backgroundEl = " style='background-color:{$backgroundElColor};' ";
         }
         avia_sc_section::$add_to_closing = "<div class='av-extra-border-element {$bottom_border}'><div class='av-extra-border-outer'><div class='av-extra-border-inner' {$backgroundEl}></div></div></div>";
     } else {
         avia_sc_section::$add_to_closing = "";
     }
     //next section needs an extra closing tag if overlay with wrapper was added:
     if ($overlay || !empty($scroll_down)) {
         avia_sc_section::$close_overlay = "</div>";
     } else {
         avia_sc_section::$close_overlay = "";
     }
     //if the next tag is a section dont create a new section from this shortcode
     if (!empty($meta['siblings']['next']['tag']) && in_array($meta['siblings']['next']['tag'], AviaBuilder::$full_el)) {
         $skipSecond = true;
     }
     //if there is no next element dont create a new section. if we got a sidebar always create a next section at the bottom
     if (empty($meta['siblings']['next']['tag']) && !avia_has_sidebar()) {
         $skipSecond = true;
     }
     if (empty($skipSecond)) {
         $new_params['id'] = "after_section_" . avia_sc_section::$section_count;
         $output .= avia_new_section($new_params);
     }
     unset($avia_config['layout_container']);
     return $output;
 }