PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.0
Elementor Website Builder – more than just a page builder v4.2.0
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 / widgets / spacer.php

spacer.php in Elementor Website Builder – more than just a page builder 4.2.0, at includes/widgets/spacer.php

200 lines 3.7 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 if ( ! defined( 'ABSPATH' ) ) {
5 exit; // Exit if accessed directly.
6 }
7
8 /**
9 * Elementor spacer widget.
10 *
11 * Elementor widget that inserts a space that divides various elements.
12 *
13 * @since 1.0.0
14 */
15 class Widget_Spacer extends Widget_Base {
16
17 /**
18 * Get widget name.
19 *
20 * Retrieve spacer widget name.
21 *
22 * @since 1.0.0
23 * @access public
24 *
25 * @return string Widget name.
26 */
27 public function get_name() {
28 return 'spacer';
29 }
30
31 /**
32 * Get widget title.
33 *
34 * Retrieve spacer widget title.
35 *
36 * @since 1.0.0
37 * @access public
38 *
39 * @return string Widget title.
40 */
41 public function get_title() {
42 return esc_html__( 'Spacer', 'elementor' );
43 }
44
45 /**
46 * Get widget icon.
47 *
48 * Retrieve spacer widget icon.
49 *
50 * @since 1.0.0
51 * @access public
52 *
53 * @return string Widget icon.
54 */
55 public function get_icon() {
56 return 'eicon-spacer';
57 }
58
59 /**
60 * Get widget categories.
61 *
62 * Retrieve the list of categories the spacer widget belongs to.
63 *
64 * Used to determine where to display the widget in the editor.
65 *
66 * @since 1.0.0
67 * @access public
68 *
69 * @return array Widget categories.
70 */
71 public function get_categories() {
72 return [ 'basic' ];
73 }
74
75 /**
76 * Get widget keywords.
77 *
78 * Retrieve the list of keywords the widget belongs to.
79 *
80 * @since 2.1.0
81 * @access public
82 *
83 * @return array Widget keywords.
84 */
85 public function get_keywords() {
86 return [ 'space' ];
87 }
88
89 protected function is_dynamic_content(): bool {
90 return false;
91 }
92
93 /**
94 * Get style dependencies.
95 *
96 * Retrieve the list of style dependencies the widget requires.
97 *
98 * @since 3.24.0
99 * @access public
100 *
101 * @return array Widget style dependencies.
102 */
103 public function get_style_depends(): array {
104 return [ 'widget-spacer' ];
105 }
106
107 public function has_widget_inner_wrapper(): bool {
108 return ! Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
109 }
110
111 /**
112 * Register spacer widget controls.
113 *
114 * Adds different input fields to allow the user to change and customize the widget settings.
115 *
116 * @since 3.1.0
117 * @access protected
118 */
119 protected function register_controls() {
120 $this->start_controls_section(
121 'section_spacer',
122 [
123 'label' => esc_html__( 'Spacer', 'elementor' ),
124 ]
125 );
126
127 $this->add_responsive_control(
128 'space',
129 [
130 'label' => esc_html__( 'Space', 'elementor' ),
131 'type' => Controls_Manager::SLIDER,
132 'default' => [
133 'size' => 50,
134 ],
135 'size_units' => [ 'px', 'em', 'rem', 'vh', 'custom' ],
136 'range' => [
137 'px' => [
138 'max' => 600,
139 ],
140 'em' => [
141 'max' => 20,
142 ],
143 ],
144 'render_type' => 'template',
145 'selectors' => [
146 '{{WRAPPER}}' => '--spacer-size: {{SIZE}}{{UNIT}};',
147 ],
148 ]
149 );
150
151 $this->end_controls_section();
152 }
153
154 /**
155 * Render spacer widget output on the frontend.
156 *
157 * Written in PHP and used to generate the final HTML.
158 *
159 * @since 1.0.0
160 * @access protected
161 */
162 protected function render() {
163 $settings = $this->get_settings_for_display();
164
165 if ( empty( $settings['space'] ) || empty( $settings['space']['size'] ) || 0 === $settings['space']['size'] ) {
166 return;
167 }
168 ?>
169 <div class="elementor-spacer">
170 <div class="elementor-spacer-inner"></div>
171 </div>
172 <?php
173 }
174
175 /**
176 * Render spacer widget output in the editor.
177 *
178 * Written as a Backbone JavaScript template and used to generate the live preview.
179 *
180 * @since 2.9.0
181 * @access protected
182 */
183 protected function content_template() {
184 ?>
185 <#
186 if ( '' === settings.space || '' === settings.space.size || 0 === settings.space.size ) {
187 return;
188 }
189 #>
190 <div class="elementor-spacer">
191 <div class="elementor-spacer-inner"></div>
192 </div>
193 <?php
194 }
195
196 public function render_markdown(): string {
197 return '';
198 }
199 }
200