PluginProbe
Elementor Website Builder – more than just a page builder / 3.2.3
Elementor Website Builder – more than just a page builder v3.2.3
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / includes / controls / slider.php

slider.php in Elementor Website Builder – more than just a page builder 3.2.3, at includes/controls/slider.php

130 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor;
3
4 use Elementor\Modules\DynamicTags\Module as TagsModule;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 /**
11 * Elementor slider control.
12 *
13 * A base control for creating slider control. Displays a draggable range slider.
14 * The slider control can optionally have a number of unit types (`size_units`)
15 * for the user to choose from. The control also accepts a range argument that
16 * allows you to set the `min`, `max` and `step` values per unit type.
17 *
18 * @since 1.0.0
19 */
20 class Control_Slider extends Control_Base_Units {
21
22 /**
23 * Get slider control type.
24 *
25 * Retrieve the control type, in this case `slider`.
26 *
27 * @since 1.0.0
28 * @access public
29 *
30 * @return string Control type.
31 */
32 public function get_type() {
33 return 'slider';
34 }
35
36 /**
37 * Get slider control default values.
38 *
39 * Retrieve the default value of the slider control. Used to return the default
40 * values while initializing the slider control.
41 *
42 * @since 1.0.0
43 * @access public
44 *
45 * @return array Control default value.
46 */
47 public function get_default_value() {
48 return array_merge(
49 parent::get_default_value(), [
50 'size' => '',
51 'sizes' => [],
52 ]
53 );
54 }
55
56 /**
57 * Get slider control default settings.
58 *
59 * Retrieve the default settings of the slider control. Used to return the
60 * default settings while initializing the slider control.
61 *
62 * @since 1.0.0
63 * @access protected
64 *
65 * @return array Control default settings.
66 */
67 protected function get_default_settings() {
68 return array_merge(
69 parent::get_default_settings(), [
70 'label_block' => true,
71 'labels' => [],
72 'scales' => 0,
73 'handles' => 'default',
74 'dynamic' => [
75 'categories' => [ TagsModule::NUMBER_CATEGORY ],
76 'property' => 'size',
77 ],
78 ]
79 );
80 }
81
82 /**
83 * Render slider control output in the editor.
84 *
85 * Used to generate the control HTML in the editor using Underscore JS
86 * template. The variables for the class are available using `data` JS
87 * object.
88 *
89 * @since 1.0.0
90 * @access public
91 */
92 public function content_template() {
93 $control_uid = $this->get_control_uid();
94 ?>
95 <div class="elementor-control-field">
96 <label for="<?php echo $control_uid; ?>" class="elementor-control-title">{{{ data.label }}}</label>
97 <?php $this->print_units_template(); ?>
98 <div class="elementor-control-input-wrapper elementor-control-dynamic-switcher-wrapper elementor-clearfix elementor-control-tag-area">
99 <# if ( isMultiple && ( data.labels.length || data.scales ) ) { #>
100 <div class="elementor-slider__extra">
101 <# if ( data.labels.length ) { #>
102 <div class="elementor-slider__labels">
103 <# jQuery.each( data.labels, ( index, label ) => { #>
104 <div class="elementor-slider__label">{{{ label }}}</div>
105 <# } ); #>
106 </div>
107 <# } if ( data.scales ) { #>
108 <div class="elementor-slider__scales">
109 <# for ( var i = 0; i < data.scales; i++ ) { #>
110 <div class="elementor-slider__scale"></div>
111 <# } #>
112 </div>
113 <# } #>
114 </div>
115 <# } #>
116 <div class="elementor-slider"></div>
117 <# if ( ! isMultiple ) { #>
118 <div class="elementor-slider-input">
119 <input id="<?php echo $control_uid; ?>" type="number" min="{{ data.min }}" max="{{ data.max }}" step="{{ data.step }}" data-setting="size" />
120 </div>
121 <# } #>
122 </div>
123 </div>
124 <# if ( data.description ) { #>
125 <div class="elementor-control-field-description">{{{ data.description }}}</div>
126 <# } #>
127 <?php
128 }
129 }
130