PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.17.14
Shortcodes and extra features for Phlox theme v2.17.14
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 / before-after.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 6 months 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
before-after.php
228 lines
1 <?php
2 /**
3 * Before after slider element
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_before_after_master_array( $master_array ) {
13
14 $master_array['aux_before_after'] = array(
15 'name' => __("Before After Slider", 'auxin-elements' ),
16 'auxin_output_callback' => 'auxin_widget_before_after_callback',
17 'base' => 'aux_before_after',
18 'description' => __('Before after comparison slider.', 'auxin-elements' ),
19 'class' => 'aux-widget-before-after',
20 'show_settings_on_create' => true,
21 'weight' => 1,
22 'is_widget' => true,
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-image',
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' => __('Element 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' => 'id',
47 'admin_label' => false,
48 'dependency' => '',
49 'weight' => '',
50 'group' => '' ,
51 'edit_field_class' => ''
52 ),
53 array(
54 'heading' => __('Before image','auxin-elements' ),
55 'description' => '',
56 'param_name' => 'before_attach_id',
57 'type' => 'attach_image',
58 'value' => '',
59 'class' => 'before_attach_id',
60 'admin_label' => false,
61 'dependency' => '',
62 'weight' => '',
63 'group' => '' ,
64 'edit_field_class' => ''
65 ),
66 array(
67 'heading' => __('After image','auxin-elements' ),
68 'description' => '',
69 'param_name' => 'after_attach_id',
70 'type' => 'attach_image',
71 'value' => '',
72 'def_value' => '',
73 'class' => 'after_attach_id',
74 'admin_label' => false,
75 'dependency' => '',
76 'weight' => '',
77 'group' => '' ,
78 'edit_field_class' => ''
79 ),
80 array(
81 'heading' => __( 'Start offset','auxin-elements' ),
82 'description' => __( 'How much of the before image is visible when the page loads, between 0 to 1.', 'auxin-elements' ),
83 'param_name' => 'default_offset',
84 'type' => 'textfield',
85 'value' => '0.5',
86 'def_value' => '',
87 'class' => 'default_offset',
88 'admin_label' => false,
89 'dependency' => '',
90 'weight' => '',
91 'group' => '' ,
92 'edit_field_class' => ''
93 ),
94 array(
95 'heading' => __('Image size','auxin-elements' ),
96 'description' => '',
97 'param_name' => 'size',
98 'type' => 'dropdown',
99 'def_value' => 'large',
100 'value' => array(
101 'thumbnail' => __('Thumbnail' , 'auxin-elements' ),
102 'medium' => __('Medium' , 'auxin-elements' ),
103 'large' => __('Large' , 'auxin-elements' ),
104 'full' => __('Full' , 'auxin-elements' )
105 ),
106 'admin_label' => true,
107 'dependency' => '',
108 'weight' => '',
109 'group' => '' ,
110 'edit_field_class' => ''
111 ),
112 array(
113 'heading' => __('Width','auxin-elements' ),
114 'description' => '',
115 'param_name' => 'width',
116 'type' => 'textfield',
117 'value' => '',
118 'class' => 'width',
119 'admin_label' => true,
120 'dependency' => '',
121 'weight' => '',
122 'group' => '' ,
123 'edit_field_class' => ''
124 ),
125 array(
126 'heading' => __('Height','auxin-elements' ),
127 'description' => '',
128 'param_name' => 'height',
129 'type' => 'textfield',
130 'value' => '',
131 'class' => 'height',
132 'admin_label' => true,
133 'dependency' => '',
134 'weight' => '',
135 'group' => '' ,
136 'edit_field_class' => ''
137 ),
138 array(
139 'heading' => __('Extra class name','auxin-elements' ),
140 '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' ),
141 'param_name' => 'extra_classes',
142 'type' => 'textfield',
143 'value' => '',
144 'def_value' => '',
145 'class' => 'extra_classes',
146 'admin_label' => false,
147 'dependency' => '',
148 'weight' => '',
149 'group' => '' ,
150 'edit_field_class' => ''
151 )
152 )
153 );
154
155 return $master_array;
156 }
157
158 add_filter( 'auxin_master_array_shortcodes', 'auxin_get_before_after_master_array', 10, 1 );
159
160 // This is the widget call back in fact the front end out put of this widget comes from this function
161 function auxin_widget_before_after_callback( $atts, $shortcode_content = null ){
162
163 // Defining default attributes
164 $default_atts = array(
165 'title' => '', // header title
166 'before_attach_id' => '', // attachment id of before image
167 'after_attach_id' => '', // attachment id of after image
168 'width' => '', // final width of image
169 'height' => '', // final height of image
170 'size' => 'large',
171 'crop' => true,
172 'default_offset' => '0.5',
173
174 'extra_classes' => '', // custom css class names for this element
175 'custom_el_id' => '', // custom id attribute for this element
176 'base_class' => 'aux-widget-before-after' // base class name for container
177 );
178
179 $result = auxin_get_widget_scafold( $atts, $default_atts, $shortcode_content );
180 extract( $result['parsed_atts'] );
181
182 $before_image = '';
183 $after_image = '';
184 $style_attr = '';
185
186 if ( ! empty( $width ) && is_numeric( $width ) ) {
187 $style_attr .= 'max-width:' . $width . 'px;';
188 }
189
190 if ( ! empty( $height ) && is_numeric( $height ) ) {
191 $style_attr .= 'max-height:' . $height . 'px ';
192 }
193
194 if( ! empty( $before_attach_id ) && is_numeric( $before_attach_id ) ) {
195 $before_image = wp_get_attachment_image( $before_attach_id, $size );
196 }
197
198 if( ! empty( $after_attach_id ) && is_numeric( $after_attach_id ) ) {
199 $after_image = wp_get_attachment_image( $after_attach_id, $size );
200 }
201
202 ob_start();
203
204 // widget header ------------------------------
205 echo wp_kses_post( $result['widget_header'] );
206 echo wp_kses_post( $result['widget_title'] );
207
208
209 // widget output -----------------------
210 if ( !empty( $after_image ) ) {
211 ?>
212 <div class="aux-before-after" style="<?php echo esc_attr( $style_attr ); ?>" data-offset="<?php echo esc_attr( $default_offset ); ?>">
213 <?php echo wp_kses_post( $before_image ); ?>
214 <?php echo wp_kses_post( $after_image ); ?>
215 </div>
216 <?php } else { ?>
217 <div class="aux-before-after" style="<?php echo esc_attr( $style_attr ); ?>" data-offset="<?php echo esc_attr( $default_offset ); ?>">
218 <?php echo wp_kses_post( $before_image ); ?>
219 </div>
220 <?php
221 }
222
223 // widget footer ------------------------------
224 echo wp_kses_post( $result['widget_footer'] );
225
226 return ob_get_clean();
227 }
228