PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.9.17
Shortcodes and extra features for Phlox theme v2.9.17
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elements / tabs.php
auxin-elements / includes / elements Last commit date
about-widget.php 4 years ago accordion-widget.php 4 years ago accordion.php 4 years ago attachment-url.php 4 years ago audio.php 4 years ago before-after.php 4 years ago button.php 4 years ago code.php 4 years ago contact-box.php 4 years ago contact-form.php 4 years ago custom-list.php 4 years ago divider.php 4 years ago dropcap.php 4 years ago facebook.php 4 years ago flickr.php 4 years ago gallery.php 4 years ago general-element-fields.php 4 years ago gmap.php 4 years ago highlight.php 4 years ago image.php 4 years ago instagram-feed.php 4 years ago latest-items.php 4 years ago latest-posts-slider.php 4 years ago popular-posts-widget.php 4 years ago products-grid.php 4 years ago quote.php 4 years ago recent-posts-grid-carousel.php 4 years ago recent-posts-land-style.php 4 years ago recent-posts-masonry.php 4 years ago recent-posts-tiles-carousel.php 4 years ago recent-posts-tiles.php 4 years ago recent-posts-timeline.php 4 years ago recent-posts-widget.php 4 years ago recent-products.php 4 years ago related-posts.php 8 years ago sample-element.php 4 years ago search.php 4 years ago socials-list.php 4 years ago staff.php 4 years ago tab-widget.php 4 years ago tabs.php 4 years ago testimonial.php 4 years ago text.php 4 years ago touch-slider.php 4 years ago video.php 4 years ago
tabs.php
226 lines
1 <?php
2 /**
3 * Tabs element if site origin bundle plugin is activaited
4 *
5 *
6 * @package Auxin
7 * @license LICENSE.txt
8 * @author averta
9 * @link http://phlox.pro/
10 * @copyright (c) 2010-2022 averta
11 */
12 function auxin_get_tabs_master_array( $master_array ) {
13
14 $master_array['aux_tabs'] = array( // shortcode info here
15 'name' => __('Tabs', 'auxin-elements'),
16 'auxin_output_callback' => 'auxin_widget_tabs_callback',
17 'base' => 'aux_tabs',
18 'description' => __('It adds tabs element.', 'auxin-elements'),
19 'class' => 'aux-widget-tabs',
20 'show_settings_on_create' => true,
21 'weight' => 1,
22 'is_widget' => false,
23 'is_shortcode' => true,
24 'is_vc' => false,
25 'category' => THEME_NAME,
26 'group' => '',
27 'admin_enqueue_js' => '',
28 'admin_enqueue_css' => '',
29 'front_enqueue_js' => '',
30 'front_enqueue_css' => '',
31 'icon' => 'aux-element aux-pb-icons-tab',
32 'custom_markup' => '',
33 'js_view' => '',
34 'html_template' => '',
35 'deprecated' => '',
36 'content_element' => '',
37 'as_parent' => '',
38 'as_child' => '',
39 'params' => array(
40 array(
41 'heading' => __('Title','auxin-elements'),
42 'description' => __('Tabs title, leave it empty if you don`t need title.', 'auxin-elements'),
43 'param_name' => 'title',
44 'type' => 'textfield',
45 'value' => '',
46 'holder' => 'textfield',
47 'class' => 'title',
48 'admin_label' => true,
49 'dependency' => '',
50 'weight' => '',
51 'group' => '' ,
52 'edit_field_class' => ''
53 ),
54 array(
55 'heading' => __('Style', 'auxin-elements'),
56 'description' => __('Choose between bordered style and no border.', 'auxin-elements'),
57 'param_name' => 'style',
58 'type' => 'dropdown',
59 'def_value' => 'bordered',
60 'holder' => '',
61 'class' => 'style',
62 'value' =>array (
63 'bordered' => __('Bordered', 'auxin-elements'),
64 'aux-stripe' => __('No border', 'auxin-elements'),
65 ),
66 'admin_label' => true,
67 'dependency' => '',
68 'weight' => '',
69 'group' => '' ,
70 'edit_field_class' => ''
71 ),
72 array(
73 'heading' => __('Tab label','auxin-elements'),
74 'description' => __('Enter your tab item label.', 'auxin-elements'),
75 'repeater' => 'tabs',
76 'repeater-label' => __('Tabs', 'auxin-elements'),
77 'section-name' => __('Tabs Section', 'auxin-elements'),
78 'param_name' => 'tab_label',
79 'type' => 'textfield',
80 'value' => '',
81 'holder' => 'textfield',
82 'class' => 'tab_label',
83 'admin_label' => true,
84 'dependency' => '',
85 'weight' => '',
86 'group' => '' ,
87 'edit_field_class' => ''
88 ),
89 array(
90 'heading' => __('Content', 'auxin-elements'),
91 'description' => __('Enter your tab item content.', 'auxin-elements'),
92 'repeater' => 'tabs',
93 'section-name' => __('Tabs section', 'auxin-elements'),
94 'repeater-label' => __('Tabs', 'auxin-elements'),
95 'param_name' => 'content',
96 'type' => 'textarea_html',
97 'value' => '',
98 'def_value' => '',
99 'holder' => 'div',
100 'class' => 'content',
101 'admin_label' => true,
102 'dependency' => '',
103 'weight' => '',
104 'group' => '',
105 'edit_field_class' => ''
106 ),
107 array(
108 'heading' => __('Extra class name','auxin-elements'),
109 'description' => __('If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.', 'auxin-elements'),
110 'param_name' => 'extra_classes',
111 'type' => 'textfield',
112 'value' => '',
113 'def_value' => '',
114 'holder' => 'textfield',
115 'class' => 'extra_classes',
116 'admin_label' => true,
117 'dependency' => '',
118 'weight' => '',
119 'group' => '' ,
120 'edit_field_class' => ''
121 )
122 )
123 );
124
125
126 return $master_array;
127 }
128
129 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_tabs_master_array', 10, 1 );
130
131 /**
132 * Sample element markup for front-end
133 * In other words, the front-end output of this element is returned by the following function
134 *
135 *
136 * @param array $atts The array containing the parsed values from shortcode,it should be same as defined params above.
137 * @param string $shortcode_content The shorcode content
138 * @return string The output of element markup
139 */
140 function auxin_widget_tabs_callback( $atts, $shortcode_content = null ){
141
142 // Defining default attributes
143 $default_atts = array(
144 'title' => '', // header title
145 'style' => 'bordered', // header title
146 'tabs' => '', // header title
147 'type' => 'horizontal',
148 'tab_id_prefix' => '', // Default prefix for tab index and id
149 'extra_classes' => '', // custom css class names for this element
150 'custom_el_id' => '', // custom id attribute for this element
151 'base_class' => 'aux-widget-tabs' // base class name for container
152 );
153
154 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
155 extract( $result['parsed_atts'] );
156
157 ob_start();
158
159 // widget header ------------------------------
160 echo wp_kses_post( $result['widget_header'] );
161 echo wp_kses_post( $result['widget_title'] );
162
163 // widget custom output -----------------------
164 $extra_classes .= ' aux-' . $type;
165
166 $output = '<div class="widget-tabs widget-container ' . esc_attr( $style ) . '">';
167 $output .= '<div class="widget-inner ' . esc_attr( trim( $extra_classes ) ) . '"> ';
168 $tabs_markup = '<ul class="tabs">';
169 $tabs_content = '<ul class="tabs-content">';
170
171 if ( is_array( $tabs ) || is_object( $tabs ) ) {
172 foreach ( $tabs as $index => $value ) {
173
174 $id_number = esc_attr( $tab_id_prefix . ( $index + 1 ) );
175
176 // Tab
177 $tab_attrs = array(
178 'id' => 'aux-tab-' . $id_number,
179 //'class' => '',
180 'href' => '#',
181 'tabindex' => $id_number,
182 'role' => 'tab',
183 'aria-controls' => 'aux-tab-content-' . $id_number,
184 );
185 $tabs_markup .= sprintf( '<li><a %s>%s</a></li>',
186 auxin_make_html_attributes( $tab_attrs ),
187 $value['tab_label']
188 );
189
190 // Content
191 $content_attrs = array(
192 'id' => 'aux-tab-content-' . $id_number,
193 'class' => 'entry-editor',
194 'tabindex' => $id_number,
195 'role' => 'tabpanel',
196 'aria-labelledby'=> 'aux-tab-' . $id_number,
197 );
198
199 if ( ! empty( $value['__dynamic__' ] ) ) {
200 $content = $value['content'];
201 } else {
202 preg_match('/<p>(.*?)<\/p>/', $value['content'] , $matches);
203 $content = ! empty( $matches[0] ) ? $matches[0] : $value['content'];
204 }
205
206 $tabs_content .= sprintf( '<li><div %s><p>%s</p></div></li>',
207 auxin_make_html_attributes( $content_attrs ),
208 $content
209 );
210
211 }
212 }
213
214
215 $tabs_markup .= '</ul>';
216 $tabs_content .= '</ul>';
217 $output = $output . $tabs_markup . $tabs_content . '</div>' . '</div>';
218
219 echo wp_kses_post( $output );
220
221 // widget footer ------------------------------
222 echo wp_kses_post( $result['widget_footer'] );
223
224 return ob_get_clean();
225 }
226