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