PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / trunk
Shortcodes and extra features for Phlox theme vtrunk
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 / before-after.php
auxin-elements / includes / elements Last commit date
about-widget.php 5 months ago accordion-widget.php 1 month ago accordion.php 5 months ago attachment-url.php 5 months ago audio.php 5 months ago before-after.php 5 months ago button.php 5 months ago code.php 5 months ago contact-box.php 5 months ago contact-form.php 5 months ago custom-list.php 5 months ago divider.php 5 months ago dropcap.php 5 months ago facebook.php 5 months ago flickr.php 5 months ago gallery.php 5 months ago gmap.php 5 months ago highlight.php 5 months ago image.php 5 months ago instagram-feed.php 5 months ago latest-posts-slider.php 5 months ago popular-posts-widget.php 5 months ago products-grid.php 5 months ago quote.php 5 months ago recent-posts-grid-carousel.php 5 months ago recent-posts-land-style.php 5 months ago recent-posts-masonry.php 5 months ago recent-posts-tiles-carousel.php 5 months ago recent-posts-tiles.php 5 months ago recent-posts-timeline.php 5 months ago recent-posts-widget.php 5 months ago recent-products.php 5 months ago related-posts.php 8 years ago sample-element.php 5 months ago search.php 5 months ago socials-list.php 5 months ago staff.php 5 months ago tab-widget.php 5 months ago tabs.php 5 months ago testimonial.php 5 months ago text.php 5 months ago touch-slider.php 5 months ago video.php 5 months 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-2026 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