Exemple #1
0
 protected function sanitize_attributes(&$atts)
 {
     $clean_atts = shortcode_atts(array('type' => 'image', 'image_id' => '', 'bg_image' => '', 'bg_color' => 'rgba(0,0,0,0.4)', 'text_color' => '', 'text_size' => 'normal', 'border_width' => '1', 'outer_padding' => '10', 'inner_padding' => '10', 'min_height' => '150', 'link' => '', 'target_blank' => '1', 'animation' => 'none'), $atts);
     $clean_atts['text_size'] = sanitize_key($clean_atts['text_size']);
     $clean_atts['type'] = sanitize_key($clean_atts['type']);
     $clean_atts['bg_image'] = dt_make_image_src_ssl_friendly(esc_url($clean_atts['bg_image']));
     $clean_atts['bg_color'] = esc_attr($clean_atts['bg_color']);
     $clean_atts['text_color'] = esc_attr($clean_atts['text_color']);
     $clean_atts['target_blank'] = apply_filters('dt_sanitize_flag', $clean_atts['target_blank']);
     $clean_atts['border_width'] = absint($clean_atts['border_width']);
     $clean_atts['outer_padding'] = absint($clean_atts['outer_padding']);
     $clean_atts['inner_padding'] = absint($clean_atts['inner_padding']);
     $clean_atts['min_height'] = absint($clean_atts['min_height']);
     $clean_atts['image_id'] = absint($clean_atts['image_id']);
     $clean_atts['link'] = esc_url($clean_atts['link']);
     $this->atts = $clean_atts;
 }
Exemple #2
0
 public function shortcode_benefit($atts, $content = null)
 {
     $attributes = shortcode_atts(array('image_link' => '', 'target_blank' => 'true', 'image' => '', 'hd_image' => '', 'header_size' => 'h4', 'title' => '', 'content_size' => 'normal'), $atts);
     $attributes['image_link'] = esc_url($attributes['image_link']);
     $attributes['image'] = esc_url($attributes['image']);
     $attributes['hd_image'] = esc_url($attributes['hd_image']);
     $attributes['header_size'] = in_array($attributes['header_size'], array('h2', 'h3', 'h4', 'h5', 'h6')) ? $attributes['header_size'] : 'h4';
     $attributes['content_size'] = in_array($attributes['content_size'], array('normal', 'small', 'big')) ? $attributes['content_size'] : 'normal';
     $attributes['title'] = wp_kses($attributes['title'], array());
     $attributes['target_blank'] = apply_filters('dt_sanitize_flag', $attributes['target_blank']);
     $image = '';
     $title = '';
     $output = '';
     $default_image = null;
     $images = array($attributes['image'], $attributes['hd_image']);
     // get default logo
     foreach ($images as $img) {
         if ($img) {
             $default_image = $img;
             break;
         }
     }
     if (!empty($default_image)) {
         if (dt_retina_on()) {
             $image = dt_is_hd_device() ? $images[1] : $images[0];
         } else {
             $image = $images[0];
         }
         if (empty($image)) {
             $image = $default_image;
         }
         // ssl support
         $image = dt_make_image_src_ssl_friendly($image);
         $image = sprintf('<img src="%s" alt="" />', $image);
         $image_classes = array('benefits-grid-ico');
         if (isset(self::$atts['animation']) && 'none' != self::$atts['animation']) {
             switch (self::$atts['animation']) {
                 case 'scale':
                     $image_classes[] = 'scale-up';
                     break;
                 case 'fade':
                     $image_classes[] = 'fade-in';
                     break;
                 case 'left':
                     $image_classes[] = 'right-to-left';
                     break;
                 case 'right':
                     $image_classes[] = 'left-to-right';
                     break;
                 case 'bottom':
                     $image_classes[] = 'top-to-bottom';
                     break;
                 case 'top':
                     $image_classes[] = 'bottom-to-top';
                     break;
             }
             $image_classes[] = 'animate-element';
         }
         // ninjaaaa!
         $image_classes = esc_attr(implode(' ', $image_classes));
         if ($attributes['image_link']) {
             $image = sprintf('<a href="%s" class="%s"%s>%s</a>', $attributes['image_link'], $image_classes, $attributes['target_blank'] ? ' target="_blank"' : '', $image);
         } else {
             $image = sprintf('<span class="%s">%s</span>', $image_classes, $image);
         }
     }
     if ($attributes['title']) {
         $title = sprintf('<%1$s>%2$s</%1$s>', $attributes['header_size'], $attributes['title']);
     }
     $style = '1';
     $column = '4';
     $dividers = ' class="borders"';
     if (!empty(self::$atts)) {
         $style = self::$atts['style'];
         $column = self::$atts['columns'];
         $dividers = !self::$atts['dividers'] ? $dividers = '' : $dividers;
     }
     switch ($column) {
         case '1':
             $column_class = 'wf-1';
             break;
         case '2':
             $column_class = 'wf-1-2';
             break;
         case '3':
             $column_class = 'wf-1-3';
             break;
         case '5':
             $column_class = 'wf-1-5';
             break;
         default:
             $column_class = 'wf-1-4';
     }
     switch ($style) {
         case '2':
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s"><div class="wf-table"><div class="wf-td">%s</div><div class="wf-td">%s</div></div>%s</div></div></div>', $column_class, $dividers, $attributes['content_size'], $image, $title, do_shortcode(wpautop($content)));
             break;
         case '3':
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s"><div class="wf-table"><div class="wf-td">%s</div><div class="wf-td benefits-inner">%s</div></div></div></div></div>', $column_class, $dividers, $attributes['content_size'], $image, $title . do_shortcode(wpautop($content)));
             break;
         default:
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s">%s</div></div></div>', $column_class, $dividers, $attributes['content_size'], $image . $title . do_shortcode(wpautop($content)));
     }
     return $output;
 }
Exemple #3
0
 public function render_benefit($attributes, $content = null)
 {
     $image = '';
     $title = '';
     $output = '';
     if ($attributes['icon_code']) {
         $image = wp_kses($attributes['icon_code'], array('i' => array('class' => array())));
     } else {
         $default_image = null;
         $images = array($attributes['image'], $attributes['hd_image']);
         // get default logo
         foreach ($images as $img) {
             if ($img) {
                 $default_image = $img;
                 break;
             }
         }
         if (!empty($default_image)) {
             if (dt_retina_on()) {
                 $image = dt_is_hd_device() ? $images[1] : $images[0];
             } else {
                 $image = $images[0];
             }
             if (empty($image)) {
                 $image = $default_image;
             }
             // ssl support
             $image = dt_make_image_src_ssl_friendly($image);
             $image_size = '';
             if (!empty($attributes['image_size'])) {
                 $image_size = image_hwstring($attributes['image_size'][0], $attributes['image_size'][1]);
             }
             $image = sprintf('<img src="%s" %s alt="" />', $image, $image_size);
         }
     }
     if ($image) {
         $image_classes = array('benefits-grid-ico');
         if (isset($attributes['animation']) && 'none' != $attributes['animation']) {
             switch ($attributes['animation']) {
                 case 'scale':
                     $image_classes[] = 'scale-up';
                     break;
                 case 'fade':
                     $image_classes[] = 'fade-in';
                     break;
                 case 'left':
                     $image_classes[] = 'right-to-left';
                     break;
                 case 'right':
                     $image_classes[] = 'left-to-right';
                     break;
                 case 'bottom':
                     $image_classes[] = 'top-to-bottom';
                     break;
                 case 'top':
                     $image_classes[] = 'bottom-to-top';
                     break;
             }
             $image_classes[] = 'animate-element';
         }
         // ninjaaaa!
         $image_classes = esc_attr(implode(' ', $image_classes));
         if ($attributes['image_link']) {
             $image = sprintf('<a href="%s" class="%s"%s>%s</a>', $attributes['image_link'], $image_classes, $attributes['target_blank'] ? ' target="_blank"' : '', $image);
         } else {
             $image = sprintf('<span class="%s">%s</span>', $image_classes, $image);
         }
     }
     if ($attributes['title']) {
         $title = sprintf('<%1$s>%2$s</%1$s>', $attributes['header_size'], $attributes['title']);
     }
     $style = '1';
     $column = '4';
     $dividers = ' class="borders"';
     if (!empty($attributes)) {
         $style = $attributes['style'];
         $column = $attributes['columns'];
         $dividers = !$attributes['dividers'] ? $dividers = '' : $dividers;
     }
     switch ($column) {
         case '1':
             $column_class = 'wf-1';
             break;
         case '2':
             $column_class = 'wf-1-2';
             break;
         case '3':
             $column_class = 'wf-1-3';
             break;
         case '5':
             $column_class = 'wf-1-5';
             break;
         default:
             $column_class = 'wf-1-4';
     }
     switch ($style) {
         case '2':
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s"><div class="wf-table"><div class="wf-td">%s</div><div class="wf-td">%s</div></div>%s</div></div></div>', $column_class, $dividers, $attributes['content_size'], $image, $title, $content);
             break;
         case '3':
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s"><div class="wf-table"><div class="wf-td">%s</div><div class="wf-td benefits-inner">%s</div></div></div></div></div>', $column_class, $dividers, $attributes['content_size'], $image, $title . $content);
             break;
         default:
             $output = sprintf('<div class="wf-cell %s"><div%s><div class="text-%s">%s</div></div></div>', $column_class, $dividers, $attributes['content_size'], $image . $title . $content);
     }
     return $output;
 }
Exemple #4
0
 public function render_benefit($attributes, $content = null)
 {
     $image = '';
     if ($attributes['icon_code']) {
         $image = wp_kses($attributes['icon_code'], array('i' => array('class' => array())));
     } else {
         $default_image = null;
         $images = array($attributes['image'], $attributes['hd_image']);
         // get default logo
         foreach ($images as $img) {
             if ($img) {
                 $default_image = $img;
                 break;
             }
         }
         if (!empty($default_image)) {
             if (dt_retina_on()) {
                 $image = dt_is_hd_device() ? $images[1] : $images[0];
             } else {
                 $image = $images[0];
             }
             if (empty($image)) {
                 $image = $default_image;
             }
             // ssl support
             $image = dt_make_image_src_ssl_friendly($image);
             $image_size = '';
             if (!empty($attributes['image_size'])) {
                 $image_size = image_hwstring($attributes['image_size'][0], $attributes['image_size'][1]);
             }
             $image = sprintf('<img src="%s" %s alt="%s" />', $image, $image_size, esc_attr($attributes['image_alt']));
         }
     }
     if ($image) {
         $image_classes = array('benefits-grid-ico');
         if (presscore_shortcode_animation_on($attributes['animation'])) {
             $image_classes[] = presscore_get_shortcode_animation_html_class($attributes['animation']);
         }
         // ninjaaaa!
         $image_classes = esc_attr(implode(' ', $image_classes));
         if ($attributes['image_link']) {
             $image = sprintf('<a href="%s" class="%s"%s>%s</a>', $attributes['image_link'], $image_classes, $attributes['target_blank'] ? ' target="_blank"' : '', $image);
         } else {
             $image = sprintf('<span class="%s">%s</span>', $image_classes, $image);
         }
     }
     $style = empty($attributes['style']) ? '1' : $attributes['style'];
     $title = '';
     if ($attributes['title']) {
         if ($attributes['image_link']) {
             $title = sprintf('<%1$s class="benefit-title"><a href="%2$s"%3$s>%4$s</a></%1$s>', $attributes['header_size'], $attributes['image_link'], $attributes['target_blank'] ? ' target="_blank"' : '', $attributes['title']);
         } else {
             $title = sprintf('<%1$s>%2$s</%1$s>', $attributes['header_size'], $attributes['title']);
         }
     }
     $output = '';
     switch ($style) {
         case '2':
             $output .= '<div class="wf-cell">' . '<div>' . '<div class="text-' . $attributes['content_size'] . '">' . '<div class="wf-table">' . '<div class="wf-td">' . $image . '</div>' . '<div class="wf-td">' . $title . '</div>' . '</div>' . $content . '</div>' . '</div>' . '</div>';
             break;
         case '3':
             $output .= '<div class="wf-cell">' . '<div>' . '<div class="text-' . $attributes['content_size'] . '">' . '<div class="wf-table">' . '<div class="wf-td">' . $image . '</div>' . '<div class="wf-td benefits-inner">' . $title . $content . '</div>' . '</div>' . '</div>' . '</div>' . '</div>';
             break;
         default:
             $output .= '<div class="wf-cell">' . '<div>' . '<div class="text-' . $attributes['content_size'] . '">' . '<div class="line-decoration">' . $image . $title . '</div>' . $content . '</div>' . '</div>' . '</div>';
     }
     return $output;
 }
Exemple #5
0
 public function shortcode($atts, $content = null)
 {
     $default_atts = array('bg_image' => '', 'bg_color' => '', 'bg_opacity' => '100', 'text_color' => '', 'text_size' => 'normal', 'border_width' => '1', 'outer_padding' => '10', 'inner_padding' => '10', 'min_height' => '150', 'link' => '', 'target_blank' => '1', 'animation' => 'none');
     $attributes = shortcode_atts($default_atts, $atts);
     $attributes['animation'] = in_array($attributes['animation'], array('none', 'scale', 'fade', 'left', 'right', 'bottom', 'top')) ? $attributes['animation'] : $default_atts['animation'];
     $attributes['bg_image'] = dt_make_image_src_ssl_friendly(esc_url($attributes['bg_image']));
     $attributes['bg_color'] = apply_filters('of_sanitize_color', $attributes['bg_color']);
     $attributes['bg_opacity'] = absint($attributes['bg_opacity']);
     $attributes['bg_opacity'] = $attributes['bg_opacity'] > 100 ? 100 : $attributes['bg_opacity'];
     $attributes['text_size'] = in_array($attributes['text_size'], array('normal', 'small', 'big')) ? $attributes['text_size'] : $default_atts['text_size'];
     $attributes['text_color'] = apply_filters('of_sanitize_color', $attributes['text_color']);
     $attributes['border_width'] = absint($attributes['border_width']);
     $attributes['outer_padding'] = absint($attributes['outer_padding']);
     $attributes['inner_padding'] = absint($attributes['inner_padding']);
     $attributes['min_height'] = absint($attributes['min_height']);
     $attributes['link'] = esc_url($attributes['link']);
     $attributes['target_blank'] = apply_filters('dt_sanitize_flag', $attributes['target_blank']);
     $banner_inner_height = $attributes['min_height'] - $attributes['inner_padding'];
     $banner_style = array();
     $banner_bg_style = array();
     $banner_inner_style = array();
     $banner_classes = array('shortcode-banner');
     $banner_more_inner_style = '';
     if ($attributes['bg_color']) {
         $banner_inner_style[] = 'background-color: ' . dt_stylesheet_color_hex2rgb($attributes['bg_color']);
         $banner_inner_style[] = 'background-color: ' . dt_stylesheet_color_hex2rgba($attributes['bg_color'], $attributes['bg_opacity']);
     }
     $banner_inner_style[] = sprintf('border: solid %spx transparent', $attributes['inner_padding']);
     $banner_inner_style[] = sprintf('outline: solid %spx', $attributes['border_width']);
     if ($attributes['text_color']) {
         $banner_inner_style[] = 'color: ' . $attributes['text_color'];
         $banner_inner_style[] = 'outline-color: ' . $attributes['text_color'];
     }
     $banner_inner_style[] = 'height: ' . $banner_inner_height . 'px';
     $banner_bg_style[] = 'padding: ' . ($attributes['outer_padding'] > $attributes['border_width'] ? $attributes['outer_padding'] : $attributes['border_width']) . 'px';
     $banner_bg_style[] = 'min-height: ' . $attributes['min_height'] . 'px';
     $banner_style[] = 'min-height: ' . $attributes['min_height'] . 'px';
     if ($attributes['bg_image']) {
         $banner_style[] = sprintf('background-image: url(%s)', $attributes['bg_image']);
     }
     $text_size_class = '';
     if ('small' == $attributes['text_size']) {
         $text_size_class = ' text-small';
     } elseif ('big' == $attributes['text_size']) {
         $text_size_class = ' text-big';
     }
     $link = '';
     if ($attributes['link']) {
         if ($attributes['target_blank']) {
             $link = sprintf(' onclick="window.open(\'%s\');"', $attributes['link']);
         } else {
             $link = sprintf(' onclick="window.location.href=\'%s\';"', $attributes['link']);
         }
     }
     if ($link) {
         $banner_classes[] = 'shortcode-banner-link';
     }
     if ('none' != $attributes['animation']) {
         switch ($attributes['animation']) {
             case 'scale':
                 $banner_classes[] = 'scale-up';
                 break;
             case 'fade':
                 $banner_classes[] = 'fade-in';
                 break;
             case 'left':
                 $banner_classes[] = 'right-to-left';
                 break;
             case 'right':
                 $banner_classes[] = 'left-to-right';
                 break;
             case 'bottom':
                 $banner_classes[] = 'top-to-bottom';
                 break;
             case 'top':
                 $banner_classes[] = 'bottom-to-top';
                 break;
         }
         $banner_classes[] = 'animate-element';
     }
     $output = sprintf('<div class="%s" %s><div class="shortcode-banner-bg wf-table" %s><div class="shortcode-banner-inside wf-table%s" %s><div %s>%s</div></div></div></div>', esc_attr(implode(' ', $banner_classes)), 'style="' . esc_attr(implode(';', $banner_style)) . '"' . $link, 'style="' . esc_attr(implode(';', $banner_bg_style)) . '"', $text_size_class, 'style="' . esc_attr(implode(';', $banner_inner_style)) . '"', $banner_more_inner_style, do_shortcode($content));
     return $output;
 }