PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.9.22
Shortcodes and extra features for Phlox theme v2.9.22
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 / accordion.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 3 years ago recent-posts-land-style.php 4 years ago recent-posts-masonry.php 4 years ago recent-posts-tiles-carousel.php 3 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 3 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 3 years ago touch-slider.php 4 years ago video.php 4 years ago
accordion.php
211 lines
1 <?php
2 /**
3 * Accordion 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
13 function auxin_get_new_accordion_master_array( $master_array ) {
14
15 $master_array['aux_accordion'] = array(
16 'name' => __('Accordion ', 'auxin-elements'),
17 'auxin_output_callback' => 'auxin_widget_accordion_callback',
18 'base' => 'aux_accordion',
19 'description' => __('Collapsible content', 'auxin-elements'),
20 'class' => 'aux-widget-accordion widget-toggle',
21 'show_settings_on_create' => true,
22 'weight' => 1,
23 'is_widget' => false,
24 'is_shortcode' => true,
25 'is_vc' => false,
26 'category' => THEME_NAME,
27 'group' => '',
28 'admin_enqueue_js' => '',
29 'admin_enqueue_css' => '',
30 'front_enqueue_js' => '',
31 'front_enqueue_css' => '',
32 'icon' => 'aux-element aux-pb-icons-accordion',
33 'custom_markup' => '',
34 'js_view' => '',
35 'html_template' => '',
36 'deprecated' => '',
37 'content_element' => '',
38 'as_parent' => '',
39 'as_child' => '',
40 'params' => array(
41 array(
42 'heading' => __('Title','auxin-elements'),
43 'description' => __('Accordion title, leave it empty if you don`t need title.', 'auxin-elements'),
44 'param_name' => 'title',
45 'type' => 'textfield',
46 'value' => __( 'Accordion Title', 'auxin-elements' ),
47 'holder' => 'textfield',
48 'class' => 'title',
49 'admin_label' => true,
50 'dependency' => '',
51 'weight' => '',
52 'group' => '' ,
53 'edit_field_class' => ''
54 ),
55 array(
56 'heading' => __('Type','auxin-elements'),
57 'description' => __('Whether to show only 1 element opens at a time or multiple.','auxin-elements'),
58 'param_name' => 'type',
59 'type' => 'dropdown',
60 'def_value' => 'true',
61 'value' => array(
62 'false' => __('Toggle', 'auxin-elements'),
63 'true' => __('Accordion', 'auxin-elements'),
64 ),
65 'holder' => '',
66 'class' => 'type',
67 'admin_label' => true,
68 'dependency' => '',
69 'weight' => '',
70 'group' => '' ,
71 'edit_field_class' => ''
72 ),
73 array(
74 'heading' => __('Accordion label','auxin-elements'),
75 'description' => __('Enter your accordion item label.', 'auxin-elements'),
76 'repeater' => 'accordion',
77 'repeater-label' => __('Accordion', 'auxin-elements'),
78 'section-name' => __('Accordion Section', 'auxin-elements'),
79 'param_name' => 'accordion_label',
80 'type' => 'textfield',
81 'value' => '',
82 'holder' => 'textfield',
83 'class' => 'accordion_label',
84 'admin_label' => true,
85 'dependency' => '',
86 'weight' => '',
87 'group' => '' ,
88 'edit_field_class' => ''
89 ),
90 array(
91 'heading' => __('Content', 'auxin-elements'),
92 'description' => __('Enter your accordion item content.', 'auxin-elements'),
93 'repeater' => 'accordion',
94 'repeater-label' => __('Accordion', 'auxin-elements'),
95 'section-name' => __('Accordion Section', 'auxin-elements'),
96 'param_name' => 'content',
97 'type' => 'textarea_html',
98 'value' => '',
99 'def_value' => '',
100 'holder' => 'div',
101 'class' => 'content',
102 'admin_label' => true,
103 'dependency' => '',
104 'weight' => '',
105 'group' => '',
106 'edit_field_class' => ''
107 ),
108 array(
109 'heading' => __('Extra class name','auxin-elements'),
110 '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'),
111 'param_name' => 'extra_classes',
112 'type' => 'textfield',
113 'value' => '',
114 'def_value' => '',
115 'holder' => 'textfield',
116 'class' => 'extra_classes',
117 'admin_label' => true,
118 'dependency' => '',
119 'weight' => '',
120 'group' => '' ,
121 'edit_field_class' => ''
122 )
123 )
124 );
125
126 return $master_array;
127 }
128
129 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_new_accordion_master_array', 10, 1 );
130
131
132 /**
133 * Element without loop and column
134 * The front-end output of this element is returned by the following function
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_accordion_callback( $atts, $shortcode_content = null ){
141
142 // Defining default attributes
143 $default_atts = array(
144 'title' => '', // header title
145 'type' => 'true', // accordion/toggle
146 'accordion' => '', // accordion/toggle
147 'title_tag' => 'h6',
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-accordion widget-toggle' // 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 // widget header ------------------------------
158 $output = $result['widget_header'];
159 $output .= $result['widget_title'];
160
161 $extra_classes .= $type == 'true' ? ' aux-type-toggle' : ' aux-type-accordion';
162
163 $output .= '<div class="widget-inner ' .$extra_classes . '" data-toggle="' . $type . '">';
164
165 // widget custom output -----------------------
166 if ( is_array( $accordion ) || is_object( $accordion ) ) {
167 foreach ( $accordion as $index => $value ) {
168 $output .= '<section class="aux-toggle-item">';
169
170 $id_number = esc_attr( $tab_id_prefix . ( $index + 1 ) );
171
172 // Accordion title
173 $header_attrs = array(
174 'id' => 'aux-toggle-header-' . $id_number,
175 'class' => 'aux-toggle-header toggle-header',
176 'tabindex' => $id_number,
177 'role' => 'tab',
178 'aria-controls' => 'aux-toggle-content-' . $id_number,
179 );
180 $output .= sprintf( '<%1$s %2$s>%3$s</%1$s>',
181 $title_tag,
182 auxin_make_html_attributes( $header_attrs ),
183 $value['accordion_label']
184 );
185
186
187 // Accordion content
188 $content_attrs = array(
189 'id' => 'aux-toggle-content-' . $id_number,
190 'class' => 'aux-toggle-content toggle-content',
191 'tabindex' => $id_number,
192 'role' => 'tabpanel',
193 'aria-labelledby'=> 'aux-toggle-header-' . $id_number,
194 );
195 $output .= sprintf( '<div %s><p>%s</p></div>',
196 auxin_make_html_attributes( $content_attrs ),
197 preg_replace('/<p[^>]*>(.*)<\/p[^>]*>/i', '$1', $value['content'])
198 );
199
200 $output .= '</section>';
201 }
202 }
203
204 $output .= '</div>'; // End od widget-toggle
205 $output .= $result['widget_footer'];
206
207 // widget footer ------------------------------
208
209 return $output;
210 }
211