PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.9.21
Shortcodes and extra features for Phlox theme v2.9.21
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 / testimonial.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
testimonial.php
283 lines
1 <?php
2 /**
3 * Testimonial Widget
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_testimonial_master_array( $master_array ) {
14
15 $master_array['aux_testimonial'] = array(
16 'name' => __('Testimonial ', 'auxin-elements'),
17 'auxin_output_callback' => 'auxin_widget_testimonial_callback',
18 'base' => 'aux_testimonial',
19 'description' => __('Testimonial Element', 'auxin-elements'),
20 'class' => 'aux-widget-testimonial',
21 'show_settings_on_create' => true,
22 'weight' => 1,
23 'is_widget' => true,
24 'is_shortcode' => true,
25 'is_vc' => true,
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-testimonial',
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' => __( 'Testimonial Templates','auxin-elements' ),
43 'description' => '',
44 'param_name' => 'template',
45 'type' => 'aux_visual_select',
46 'def_value' => 'default',
47 'holder' => '',
48 'class' => 'template',
49 'admin_label' => false,
50 'dependency' => '',
51 'weight' => '',
52 'group' => '',
53 'edit_field_class' => '',
54 'choices' => array(
55 'default' => array(
56 'label' => __( 'Default Template', 'auxin-elements' ),
57 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-1.svg'
58 ),
59 'def-img' => array(
60 'label' => __( 'Default Template With Image', 'auxin-elements' ),
61 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-2.svg'
62 ),
63 'bordered' => array(
64 'label' => __( 'Bordered On Content', 'auxin-elements' ),
65 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-3.svg'
66 ),
67 'quote' => array(
68 'label' => __( 'Quotation Mark on Top of the Content', 'auxin-elements' ),
69 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-4.svg'
70 ),
71 'info-top' => array(
72 'label' => __( 'Show Info on Top of Content', 'auxin-elements' ),
73 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-5.svg'
74 ),
75 'image-top' => array(
76 'label' => __( 'Show Image on Top of the Content', 'auxin-elements' ),
77 'image' => AUXELS_ADMIN_URL . '/assets/images/visual-select/testimonial-6.svg'
78 )
79 )
80 ),
81 array(
82 'heading' => __('Customer Name','auxin-elements'),
83 'description' => __('Customer Name, leave it empty if you don`t need title.', 'auxin-elements'),
84 'param_name' => 'title',
85 'type' => 'textfield',
86 'value' => '',
87 'holder' => 'textfield',
88 'class' => 'title',
89 'admin_label' => true,
90 'dependency' => '',
91 'weight' => '',
92 'group' => '' ,
93 'edit_field_class' => ''
94 ),
95 array(
96 'heading' => __('Customer Link','auxin-elements'),
97 'description' => __('Customer Link, leave it empty if you don`t need it', 'auxin-elements'),
98 'param_name' => 'link',
99 'type' => 'textfield',
100 'value' => '',
101 'holder' => 'textfield',
102 'class' => 'title',
103 'admin_label' => true,
104 'dependency' => '',
105 'weight' => '',
106 'group' => '' ,
107 'edit_field_class' => ''
108 ),
109 array(
110 'heading' => __('Customer Occupation','auxin-elements'),
111 'description' => __('Customer Occupation, leave it empty if you don`t need it.', 'auxin-elements'),
112 'param_name' => 'subtitle',
113 'type' => 'textfield',
114 'value' => '',
115 'holder' => 'textfield',
116 'class' => 'subtitle',
117 'admin_label' => true,
118 'dependency' => '',
119 'weight' => '',
120 'group' => '' ,
121 'edit_field_class' => ''
122 ),
123 array(
124 'heading' => __('Customer Rating','auxin-elements'),
125 'description' => __('Customer Rating, Set it to "None" if you don`t need it.', 'auxin-elements'),
126 'param_name' => 'rating',
127 'type' => 'dropdown',
128 'def_value' => '',
129 'value' => array(
130 'none' => __( 'None' , 'auxin-elements' ),
131 '1' => '1',
132 '2' => '2',
133 '3' => '3',
134 '4' => '4',
135 '5' => '5',
136 ),
137 'holder' => 'dropdown',
138 'class' => 'rating',
139 'admin_label' => true,
140 'dependency' => '',
141 'weight' => '',
142 'group' => '' ,
143 'edit_field_class' => ''
144 ),
145 array(
146 'heading' => __('Customer Image', 'auxin-elements'),
147 'description' => '',
148 'param_name' => 'customer_img',
149 'type' => 'attach_image',
150 'def_value' => '',
151 'value' => '',
152 'holder' => '',
153 'class' => 'customer-img',
154 'admin_label' => true,
155 'dependency' => array(
156 'element' => 'template',
157 'value' => array('bordered', 'def-img', 'info-top', 'image-top')
158 ),
159 'weight' => '',
160 'group' => '',
161 'edit_field_class' => ''
162 ),
163 array(
164 'heading' => __('Content','auxin-elements'),
165 'description' => __('Enter a text as a text content.','auxin-elements'),
166 'param_name' => 'content',
167 'type' => 'textarea_html',
168 'value' => '',
169 'def_value' => '',
170 'holder' => 'div',
171 'class' => 'content',
172 'admin_label' => true,
173 'dependency' => '',
174 'weight' => '',
175 'group' => '' ,
176 'edit_field_class' => ''
177 ),
178 )
179 );
180
181 return $master_array;
182 }
183
184 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_testimonial_master_array', 10, 1 );
185
186
187 /**
188 * Testimonial Widget Markup
189 *
190 * The front-end output of this element is returned by the following function
191 *
192 * @param array $atts The array containing the parsed values from shortcode, it should be same as defined params above.
193 * @param string $shortcode_content The shorcode content
194 * @return string The output of element markup
195 */
196 function auxin_widget_testimonial_callback( $atts, $shortcode_content = null ){
197
198 // Defining default attributes
199 $default_atts = array(
200
201 'template' => 'default',
202 'title' => '',
203 'subtitle' => '',
204 'rating' => '',
205 'link' => '',
206 'customer_img' => '',
207 'show_image' => true,
208 'image_html' => '',
209 'image_size' => 'thumbnail',
210 'content' => '',
211 'extra_classes' => '', // custom css class names for this element
212 'custom_el_id' => '', // custom id attribute for this element
213 'base_class' => 'aux-widget-testimonial-container' // base class name for container
214
215 );
216
217 $result = auxin_get_widget_scafold( $atts, $default_atts );
218
219 extract( $result['parsed_atts'] );
220
221 // Validate boolean variables
222 $show_image = auxin_is_true( $show_image );
223
224 $image_above_content = $template === 'image-top';
225
226 $image = empty( $image_html ) ? wp_get_attachment_image( $customer_img, $image_size, "", array( "class" => "img-square" ) ) : $image_html;
227 $content = empty( $content ) ? $shortcode_content : $content ;
228 $main_class = ' aux-widget-testimonial aux-testimonial-' . $template ;
229
230 ob_start();
231
232 // widget header ------------------------------
233 echo wp_kses_post( $result['widget_header'] );
234 ?>
235 <div class=" <?php echo esc_attr( $main_class );?> ">
236 <?php if( ! empty( $content ) && ! $image_above_content ) { ?>
237 <div class="aux-testimonial-content">
238 <div class="entry-content">
239 <?php $encoding_flag = defined('ENT_HTML401') ? ENT_HTML401 : ENT_QUOTES; ?>
240 <?php echo do_shortcode( html_entity_decode( $content, $encoding_flag, 'UTF-8') ); ?>
241 </div>
242 </div>
243 <?php } ?>
244 <div class="aux-testimonial-infobox">
245 <?php if ( !empty( $image ) && $show_image ) { ?>
246 <div class="aux-testimonial-image">
247 <?php echo wp_kses_post( $image ) ;?>
248 </div>
249 <?php } ?>
250 <div class="aux-testimonial-info">
251 <?php if( ! empty( $title ) && empty( $link ) ) { ?>
252 <h4 class="col-title"><?php echo auxin_kses( $title ); ?></h4>
253 <?php } elseif( ! empty( $title ) && ! empty( $link ) ) {?>
254 <h4 class="col-title"><a href="<?php echo esc_url( $link ); ?>">
255 <?php echo auxin_kses( $title ); ?></a>
256 </h4>
257 <?php } if( ! empty( $subtitle ) ) { ?>
258 <h5 class="col-subtitle"><?php echo auxin_kses( $subtitle ); ?></h5>
259 <?php } if ( 'none' !== $rating ) { ?>
260 <div class="aux-rating-box aux-star-rating">
261 <span class="aux-star-rating-avg" style="width: <?php echo ( $rating / 5 ) * 100 ; ?>%"> </span>
262 </div>
263 <?php } ?>
264 </div>
265 </div>
266 <?php if( ! empty( $content ) && $image_above_content ) { ?>
267 <div class="aux-testimonial-content">
268 <div class="entry-content">
269 <?php $encoding_flag = defined('ENT_HTML401') ? ENT_HTML401 : ENT_QUOTES; ?>
270 <?php echo do_shortcode( html_entity_decode( $content, $encoding_flag, 'UTF-8') ); ?>
271 </div>
272 </div>
273 <?php } ?>
274 </div>
275
276 <?php
277
278 // widget footer ------------------------------
279 echo wp_kses_post( $result['widget_footer'] );
280 return ob_get_clean();
281
282 }
283