PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.4
Shortcodes and extra features for Phlox theme v2.17.4
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 1 year ago accordion-widget.php 1 year ago accordion.php 1 year ago attachment-url.php 1 year ago audio.php 1 year ago before-after.php 1 year ago button.php 1 year ago code.php 1 year ago contact-box.php 1 year ago contact-form.php 1 year ago custom-list.php 1 year ago divider.php 1 year ago dropcap.php 1 year ago facebook.php 1 year ago flickr.php 1 year ago gallery.php 1 year ago gmap.php 1 year ago highlight.php 1 year ago image.php 1 year ago instagram-feed.php 1 year ago latest-posts-slider.php 1 year ago popular-posts-widget.php 1 year ago products-grid.php 1 year ago quote.php 1 year ago recent-posts-grid-carousel.php 1 year ago recent-posts-land-style.php 1 year ago recent-posts-masonry.php 1 year ago recent-posts-tiles-carousel.php 1 year ago recent-posts-tiles.php 1 year ago recent-posts-timeline.php 1 year ago recent-posts-widget.php 1 year ago recent-products.php 1 year ago related-posts.php 8 years ago sample-element.php 1 year ago search.php 1 year ago socials-list.php 1 year ago staff.php 1 year ago tab-widget.php 1 year ago tabs.php 1 year ago testimonial.php 1 year ago text.php 1 year ago touch-slider.php 1 year ago video.php 1 year ago
tabs.php
225 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-2025 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 'category' => THEME_NAME,
25 'group' => '',
26 'admin_enqueue_js' => '',
27 'admin_enqueue_css' => '',
28 'front_enqueue_js' => '',
29 'front_enqueue_css' => '',
30 'icon' => 'aux-element aux-pb-icons-tab',
31 'custom_markup' => '',
32 'js_view' => '',
33 'html_template' => '',
34 'deprecated' => '',
35 'content_element' => '',
36 'as_parent' => '',
37 'as_child' => '',
38 'params' => array(
39 array(
40 'heading' => __('Title','auxin-elements'),
41 'description' => __('Tabs title, leave it empty if you don`t need title.', 'auxin-elements'),
42 'param_name' => 'title',
43 'type' => 'textfield',
44 'value' => '',
45 'holder' => 'textfield',
46 'class' => 'title',
47 'admin_label' => true,
48 'dependency' => '',
49 'weight' => '',
50 'group' => '' ,
51 'edit_field_class' => ''
52 ),
53 array(
54 'heading' => __('Style', 'auxin-elements'),
55 'description' => __('Choose between bordered style and no border.', 'auxin-elements'),
56 'param_name' => 'style',
57 'type' => 'dropdown',
58 'def_value' => 'bordered',
59 'holder' => '',
60 'class' => 'style',
61 'value' =>array (
62 'bordered' => __('Bordered', 'auxin-elements'),
63 'aux-stripe' => __('No border', 'auxin-elements'),
64 ),
65 'admin_label' => true,
66 'dependency' => '',
67 'weight' => '',
68 'group' => '' ,
69 'edit_field_class' => ''
70 ),
71 array(
72 'heading' => __('Tab label','auxin-elements'),
73 'description' => __('Enter your tab item label.', 'auxin-elements'),
74 'repeater' => 'tabs',
75 'repeater-label' => __('Tabs', 'auxin-elements'),
76 'section-name' => __('Tabs Section', 'auxin-elements'),
77 'param_name' => 'tab_label',
78 'type' => 'textfield',
79 'value' => '',
80 'holder' => 'textfield',
81 'class' => 'tab_label',
82 'admin_label' => true,
83 'dependency' => '',
84 'weight' => '',
85 'group' => '' ,
86 'edit_field_class' => ''
87 ),
88 array(
89 'heading' => __('Content', 'auxin-elements'),
90 'description' => __('Enter your tab item content.', 'auxin-elements'),
91 'repeater' => 'tabs',
92 'section-name' => __('Tabs section', 'auxin-elements'),
93 'repeater-label' => __('Tabs', 'auxin-elements'),
94 'param_name' => 'content',
95 'type' => 'textarea_html',
96 'value' => '',
97 'def_value' => '',
98 'holder' => 'div',
99 'class' => 'content',
100 'admin_label' => true,
101 'dependency' => '',
102 'weight' => '',
103 'group' => '',
104 'edit_field_class' => ''
105 ),
106 array(
107 'heading' => __('Extra class name','auxin-elements'),
108 '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'),
109 'param_name' => 'extra_classes',
110 'type' => 'textfield',
111 'value' => '',
112 'def_value' => '',
113 'holder' => 'textfield',
114 'class' => 'extra_classes',
115 'admin_label' => true,
116 'dependency' => '',
117 'weight' => '',
118 'group' => '' ,
119 'edit_field_class' => ''
120 )
121 )
122 );
123
124
125 return $master_array;
126 }
127
128 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_tabs_master_array', 10, 1 );
129
130 /**
131 * Sample element markup for front-end
132 * In other words, the front-end output of this element is returned by the following function
133 *
134 *
135 * @param array $atts The array containing the parsed values from shortcode,it should be same as defined params above.
136 * @param string $shortcode_content The shorcode content
137 * @return string The output of element markup
138 */
139 function auxin_widget_tabs_callback( $atts, $shortcode_content = null ){
140
141 // Defining default attributes
142 $default_atts = array(
143 'title' => '', // header title
144 'style' => 'bordered', // header title
145 'tabs' => '', // header title
146 'type' => 'horizontal',
147 'tab_id_prefix' => '', // Default prefix for tab index and id
148 'extra_classes' => '', // custom css class names for this element
149 'custom_el_id' => '', // custom id attribute for this element
150 'base_class' => 'aux-widget-tabs' // base class name for container
151 );
152
153 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
154 extract( $result['parsed_atts'] );
155
156 ob_start();
157
158 // widget header ------------------------------
159 echo wp_kses_post( $result['widget_header'] );
160 echo wp_kses_post( $result['widget_title'] );
161
162 // widget custom output -----------------------
163 $extra_classes .= ' aux-' . $type;
164
165 $output = '<div class="widget-tabs widget-container ' . esc_attr( $style ) . '">';
166 $output .= '<div class="widget-inner ' . esc_attr( trim( $extra_classes ) ) . '"> ';
167 $tabs_markup = '<ul class="tabs">';
168 $tabs_content = '<ul class="tabs-content">';
169
170 if ( is_array( $tabs ) || is_object( $tabs ) ) {
171 foreach ( $tabs as $index => $value ) {
172
173 $id_number = esc_attr( $tab_id_prefix . ( $index + 1 ) );
174
175 // Tab
176 $tab_attrs = array(
177 'id' => 'aux-tab-' . $id_number,
178 //'class' => '',
179 'href' => '#',
180 'tabindex' => $id_number,
181 'role' => 'tab',
182 'aria-controls' => 'aux-tab-content-' . $id_number,
183 );
184 $tabs_markup .= sprintf( '<li><a %s>%s</a></li>',
185 auxin_make_html_attributes( $tab_attrs ),
186 $value['tab_label']
187 );
188
189 // Content
190 $content_attrs = array(
191 'id' => 'aux-tab-content-' . $id_number,
192 'class' => 'entry-editor',
193 'tabindex' => $id_number,
194 'role' => 'tabpanel',
195 'aria-labelledby'=> 'aux-tab-' . $id_number,
196 );
197
198 if ( ! empty( $value['__dynamic__' ] ) ) {
199 $content = $value['content'];
200 } else {
201 preg_match('/<p>(.*?)<\/p>/', $value['content'] , $matches);
202 $content = ! empty( $matches[0] ) ? $matches[0] : $value['content'];
203 }
204
205 $tabs_content .= sprintf( '<li><div %s><p>%s</p></div></li>',
206 auxin_make_html_attributes( $content_attrs ),
207 $content
208 );
209
210 }
211 }
212
213
214 $tabs_markup .= '</ul>';
215 $tabs_content .= '</ul>';
216 $output = $output . $tabs_markup . $tabs_content . '</div>' . '</div>';
217
218 echo wp_kses_post( $output );
219
220 // widget footer ------------------------------
221 echo wp_kses_post( $result['widget_footer'] );
222
223 return ob_get_clean();
224 }
225