Exemplo n.º 1
0
    public static function shortcode($atts, $content = null, $code = 'accordion')
    {
        extract(shortcode_atts(array('closed_bg' => 'accent1', 'title_color' => 'accent8', 'collapsible' => 'true'), $atts));
        if (!wpv_sub_shortcode('pane', $content, $params, $sub_contents)) {
            return do_shortcode($content);
        }
        wp_enqueue_script('jquery-ui-accordion');
        $title_tag = apply_filters('wpv_accordion_title_tag', 'h4');
        $closed_bg = wpv_sanitize_accent($closed_bg);
        $title_color = wpv_sanitize_accent($title_color);
        global $wpv_accordions_shown;
        if (!isset($wpv_accordions_shown)) {
            $wpv_accordions_shown = 0;
        }
        $wpv_accordions_shown++;
        $output = '';
        foreach ($sub_contents as $i => $sc) {
            $tab_class = '';
            $bgimage = '';
            if (isset($params[$i]['background_image']) && !empty($params[$i]['background_image'])) {
                $bgimage = 'background-image: url("' . $params[$i]['background_image'] . '");';
                $tab_class .= ' has-bg';
            }
            $output .= '<li class="pane-wrapper" style="' . esc_attr($bgimage) . '">
					<' . $title_tag . ' class="tab' . $tab_class . '"><div class="inner">' . $params[$i]['title'] . '</div></' . $title_tag . '>
					<div class="pane"><div class="inner">' . do_shortcode(trim($sc)) . '</div></div>
					</li>';
        }
        $style = '<style>.wpv-accordion-' . $wpv_accordions_shown . ' .tab .inner { background-color: ' . $closed_bg . '; color: ' . $title_color . '; }</style>';
        return '<div class="wpv-accordion-wrapper wpv-accordion-' . $wpv_accordions_shown . '"><ul class="wpv-accordion" data-collapsible="' . esc_attr($collapsible) . '">' . $output . '</ul>' . $style . '</div>';
    }
Exemplo n.º 2
0
 public static function shortcode($atts, $content = null, $code = 'accordion')
 {
     extract(shortcode_atts(array('mini' => 'true', 'collapsible' => 'true'), $atts));
     if (!wpv_sub_shortcode('pane', $content, $params, $sub_contents)) {
         return do_shortcode($content);
     }
     wp_enqueue_script('jquery-ui-accordion');
     $title_tag = apply_filters('wpv_accordion_title_tag', 'h4');
     $output = '';
     foreach ($sub_contents as $i => $sc) {
         $output .= '<' . $title_tag . ' class="tab"><div class="inner">' . $params[$i]['title'] . '</div></' . $title_tag . '>' . '<div class="pane"><div class="inner">' . do_shortcode(trim($sc)) . '</div></div>';
     }
     return '<div class="wpv-accordion-wrapper"><div class="accordion" data-collapsible="' . $collapsible . '">' . $output . '</div></div>';
 }
Exemplo n.º 3
0
 public static function shortcode($atts, $content = null, $code)
 {
     extract(shortcode_atts(array('layout' => 'horizontal', 'left_color' => 'accent8', 'right_color' => 'accent1', 'nav_color' => 'accent2'), $atts));
     if (!wpv_sub_shortcode('tab', $content, $params, $sub_contents)) {
         return 'error parsing slider shortcode';
     }
     wp_enqueue_script('jquery-ui-tabs');
     wp_enqueue_script('front-jquery.ui.tabs.rotate');
     global $wpv_tabs_shown;
     if (!isset($wpv_tabs_shown)) {
         $wpv_tabs_shown = 0;
     }
     $wpv_tabs_shown++;
     $id = 'tabs-' . $wpv_tabs_shown;
     $output = '<ul class="ui-tabs-nav">';
     if (isset($GLOBALS['wpv_last_column_title']) && !empty($GLOBALS['wpv_last_column_title']) && $layout == 'vertical') {
         $output .= '<li class="inactive-block-title"><h2>' . $GLOBALS['wpv_last_column_title'] . '</h2></li>';
     }
     foreach ($params as $i => $p) {
         $p = shortcode_atts(array('title' => '', 'class' => '', 'icon' => ''), $p);
         if (!empty($p['icon'])) {
             $p['icon'] = wpv_shortcode_icon(array('name' => $p['icon']));
             $p['class'] .= ' has-icon';
         }
         $class = empty($p['class']) ? '' : " class='{$p['class']}'";
         $output .= '<li' . $class . '><a href="#tab-' . $wpv_tabs_shown . '-' . $i . '-' . self::sanitize_id($params[$i]['title']) . '">' . $p['icon'] . ' <span class="title-text">' . $p['title'] . '</span></a></li>';
     }
     $output .= '</ul>';
     foreach ($sub_contents as $i => $c) {
         $class = isset($params[$i]['class']) ? ' tab-' . $params[$i]['class'] : '';
         $output .= '<div class="pane' . $class . '" id="tab-' . $wpv_tabs_shown . '-' . $i . '-' . self::sanitize_id($params[$i]['title']) . '">' . do_shortcode(trim($c)) . '</div>';
     }
     $l = new WpvLessc();
     $l->importDir = '.';
     $l->setFormatter("compressed");
     $left_color = wpv_sanitize_accent($left_color);
     $right_color = wpv_sanitize_accent($right_color);
     $nav_color = wpv_sanitize_accent($nav_color);
     $inner_style = '';
     if (!empty($left_color) && !empty($right_color)) {
         $readable = WpvTemplates::readable_color_mixin();
         $vertical_styles = $layout !== 'vertical' ? '' : "\n\t\t\t\t#{$id}.vertical {\n\t\t\t\t\t&,\n\t\t\t\t\t&:before {\n\t\t\t\t\t\tbackground: {$right_color};\n\t\t\t\t\t}\n\n\t\t\t\t\t.ui-tabs-nav {\n\t\t\t\t\t\t&:before {\n\t\t\t\t\t\t\tbackground: {$left_color};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t.pane:before {\n\t\t\t\t\t\tbackground: {$left_color};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t";
         $inner_style = $l->compile($readable . $vertical_styles . "\n\t\t\t\t#{$id} {\n\t\t\t\t\t.ui-tabs-nav {\n\t\t\t\t\t\t&,\n\t\t\t\t\t\tli {\n\t\t\t\t\t\t\tbackground: {$left_color};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tli {\n\t\t\t\t\t\t\t&, a, a .icon {\n\t\t\t\t\t\t\t\tcolor: {$nav_color};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.ui-state-active,\n\t\t\t\t\t\t.ui-state-selected,\n\t\t\t\t\t\t.ui-state-hover {\n\t\t\t\t\t\t\tbackground: {$right_color};\n\n\t\t\t\t\t\t\t&, a, a .icon {\n\t\t\t\t\t\t\t\t.readable-color({$right_color});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t.inactive-block-title {\n\t\t\t\t\t\t\th1, h2, h3, h4, h5, h6 {\n\t\t\t\t\t\t\t\tcolor: {$nav_color};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t&.horizontal {\n\t\t\t\t\t\t.pane {\n\t\t\t\t\t\t\tbackground: {$right_color};\n\n\t\t\t\t\t\t\t&,\n\t\t\t\t\t\t\tp,\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t.column-title,\n\t\t\t\t\t\t\t.sep-text h2.regular-title-wrapper,\n\t\t\t\t\t\t\t.text-divider-double,\n\t\t\t\t\t\t\t.sep-text .sep-text-line,\n\t\t\t\t\t\t\t.sep,\n\t\t\t\t\t\t\t.sep-2,\n\t\t\t\t\t\t\t.sep-3,\n\t\t\t\t\t\t\ttd,\n\t\t\t\t\t\t\tth,\n\t\t\t\t\t\t\tcaption {\n\t\t\t\t\t\t\t\t.readable-color({$right_color});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t");
     }
     $style = '<style>' . $inner_style . '</style>';
     return '<div class="wpv-tabs ' . $layout . '" id="' . $id . '">' . $output . '</div>' . $style;
 }
Exemplo n.º 4
0
    private function get_special_markup($id, $content)
    {
        $result = apply_filters('wpv_editor_get_special_markup', $content, $id);
        if ($result !== $content) {
            return $result;
        }
        ob_start();
        switch ($id) {
            case 'accordion':
                if (!wpv_sub_shortcode('pane', $content, $params, $sub_contents)) {
                    return $content;
                }
                echo '<div class="wpv_accordion">';
                foreach ($sub_contents as $i => $text) {
                    ?>

					<div>
						<h3 class="title-wrapper clearfix">
							<a class="accordion-title"><?php 
                    echo $params[$i]['title'];
                    ?>
</a>
							<a class="accordion-remove icon-remove" title="<?php 
                    esc_attr_e('Remove', 'honeymoon');
                    ?>
"></a>
							<a class="accordion-clone icon-copy" title="<?php 
                    esc_attr_e('Clone', 'honeymoon');
                    ?>
"></a>
							<a class="accordion-background-selector" data-background-image="<?php 
                    if (isset($params[$i]['background_image'])) {
                        echo esc_attr($params[$i]['background_image']);
                    }
                    ?>
" title="<?php 
                    esc_attr_e('Change Pane Background', 'honeymoon');
                    ?>
"><?php 
                    wpv_icon('image');
                    ?>
</a>
						</h3>
						<div class="pane clearfix inner-sortable"><?php 
                    echo $this->do_parse($text);
                    ?>
</div>
					</div>

				<?php 
                }
                echo '<div><h3><a class="accordion-add icon-plus"></a></h3></div>';
                echo '</div>';
                break;
            case 'tabs':
                if (!wpv_sub_shortcode('tab', $content, $params, $sub_contents)) {
                    return $content;
                }
                $suffix = 'tabs-' . $this->get_uniqid_suffix();
                echo '<div class="wpv_tabs"><ul>';
                foreach ($params as $i => $pi) {
                    $p = shortcode_atts(array('title' => '', 'icon' => ''), $pi);
                    ?>
					<li>
						<a href="#tabs-<?php 
                    echo esc_attr($suffix . $i);
                    ?>
" class="tab-title"><?php 
                    echo $p['title'];
                    ?>
</a>
						<a class="tab-remove icon-remove" title="<?php 
                    esc_attr_e('Remove', 'honeymoon');
                    ?>
"></a>
						<a class="tab-clone icon-copy" title="<?php 
                    esc_attr_e('Clone', 'honeymoon');
                    ?>
"></a>
						<a class="wpv-icon-selector-trigger tab-icon-selector vamtam-icon <?php 
                    echo esc_attr(wpv_get_icon_type($p['icon']));
                    ?>
 <?php 
                    if (empty($p['icon'])) {
                        echo 'no-icon';
                    }
                    ?>
" data-icon-name="<?php 
                    echo esc_attr($p['icon']);
                    ?>
" title="<?php 
                    esc_attr_e('Change Icon', 'honeymoon');
                    ?>
"><?php 
                    wpv_icon($p['icon']);
                    ?>
</a>
					</li>
				<?php 
                }
                echo '<li class="ui-state-default"><a class="tab-add icon-plus"></a></li>';
                echo '</ul>';
                foreach ($sub_contents as $i => $text) {
                    ?>
					<div id="tabs-<?php 
                    echo $suffix . $i;
                    ?>
" class="clearfix inner-sortable"><?php 
                    echo $this->do_parse($text);
                    ?>
</div>
				<?php 
                }
                echo '</div>';
                break;
            case 'services_expandable':
                echo "<textarea class='inner-content'>{$content}</textarea>";
                // xss ok
                break;
            default:
                echo $content;
                // xss ok
        }
        return ob_get_clean();
    }