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 / core / editor / loader / editor-base-loader.php

editor-base-loader.php in Elementor Website Builder – more than just a page builder 4.2.0, at core/editor/loader/editor-base-loader.php

336 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Core\Editor\Loader;
3
4 use Elementor\Core\Utils\Assets_Config_Provider;
5 use Elementor\Core\Utils\Collection;
6 use Elementor\Plugin;
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 abstract class Editor_Base_Loader implements Editor_Loader_Interface {
13 /**
14 * @var Collection
15 */
16 protected $config;
17
18 /**
19 * @var Assets_Config_Provider
20 */
21 protected $assets_config_provider;
22
23 /**
24 * @param Collection $config
25 * @param Assets_Config_Provider $assets_config_provider
26 */
27 public function __construct( Collection $config, Assets_Config_Provider $assets_config_provider ) {
28 $this->config = $config;
29 $this->assets_config_provider = $assets_config_provider;
30 }
31
32 private function scripts_source_map() {
33 $assets_url = $this->config->get( 'assets_url' );
34 $min_suffix = $this->config->get( 'min_suffix' );
35
36 return [
37 'ace' => [
38 'src' => 'https://cdn.jsdelivr.net/npm/ace-builds@1.43.2/src-min-noconflict/ace.min.js',
39 'deps' => [],
40 'ver' => '1.43.2',
41 ],
42
43 'ace-language-tools' => [
44 'src' => 'https://cdn.jsdelivr.net/npm/ace-builds@1.43.2/src-min-noconflict/ext-language_tools.js',
45 'deps' => [ 'ace' ],
46 'ver' => '1.43.2',
47 ],
48
49 'pickr' => [
50 'src' => "{$assets_url}lib/pickr/pickr.min.js",
51 'deps' => [],
52 'ver' => '1.8.2',
53 ],
54
55 'flatpickr' => [
56 'src' => "{$assets_url}lib/flatpickr/flatpickr{$min_suffix}.js",
57 'deps' => [ 'jquery' ],
58 'ver' => '4.6.13',
59 ],
60 ];
61 }
62
63 private function styles_source_map() {
64 $assets_url = $this->config->get( 'assets_url' );
65 $min_suffix = $this->config->get( 'min_suffix' );
66
67 return [
68 'font-awesome' => [
69 'src' => "{$assets_url}lib/font-awesome/css/font-awesome{$min_suffix}.css",
70 'deps' => [],
71 'ver' => '4.7.0',
72 ],
73
74 'elementor-select2' => [
75 'src' => "{$assets_url}lib/e-select2/css/e-select2{$min_suffix}.css",
76 'deps' => [],
77 'ver' => '4.0.6-rc.1',
78 ],
79
80 'pickr' => [
81 'src' => "{$assets_url}lib/pickr/themes/monolith.min.css",
82 'deps' => [],
83 'ver' => '1.8.2',
84 ],
85
86 'flatpickr' => [
87 'src' => "{$assets_url}lib/flatpickr/flatpickr{$min_suffix}.css",
88 'deps' => [],
89 'ver' => '4.6.13',
90 ],
91 ];
92 }
93
94 /**
95 * @return void
96 */
97 public function register_scripts() {
98 $assets_url = $this->config->get( 'assets_url' );
99 $min_suffix = $this->config->get( 'min_suffix' );
100
101 wp_register_script(
102 'elementor-editor-modules',
103 "{$assets_url}js/editor-modules{$min_suffix}.js",
104 [ 'elementor-common-modules' ],
105 ELEMENTOR_VERSION,
106 true
107 );
108
109 wp_register_script(
110 'elementor-editor-document',
111 "{$assets_url}js/editor-document{$min_suffix}.js",
112 [ 'elementor-common-modules' ],
113 ELEMENTOR_VERSION,
114 true
115 );
116
117 wp_register_script(
118 'perfect-scrollbar',
119 "{$assets_url}lib/perfect-scrollbar/js/perfect-scrollbar{$min_suffix}.js",
120 [],
121 '1.4.0',
122 true
123 );
124
125 wp_register_script(
126 'jquery-easing',
127 "{$assets_url}lib/jquery-easing/jquery-easing{$min_suffix}.js",
128 [ 'jquery' ],
129 '1.3.2',
130 true
131 );
132
133 wp_register_script(
134 'nprogress',
135 "{$assets_url}lib/nprogress/nprogress{$min_suffix}.js",
136 [],
137 '0.2.0',
138 true
139 );
140
141 wp_register_script(
142 'tipsy',
143 "{$assets_url}lib/tipsy/tipsy{$min_suffix}.js",
144 [ 'jquery' ],
145 '1.0.0',
146 true
147 );
148
149 wp_register_script(
150 'jquery-elementor-select2',
151 "{$assets_url}lib/e-select2/js/e-select2.full{$min_suffix}.js",
152 [ 'jquery' ],
153 '4.0.6-rc.1',
154 true
155 );
156
157 wp_register_script(
158 'jquery-hover-intent',
159 "{$assets_url}lib/jquery-hover-intent/jquery-hover-intent{$min_suffix}.js",
160 [],
161 '1.0.0',
162 true
163 );
164
165 wp_register_script(
166 'nouislider',
167 "{$assets_url}lib/nouislider/nouislider{$min_suffix}.js",
168 [],
169 '13.0.0',
170 true
171 );
172
173 $source_map = $this->scripts_source_map();
174
175 foreach ( $source_map as $handle => $script ) {
176 wp_register_script(
177 $handle,
178 $script['src'],
179 $script['deps'],
180 $script['ver'],
181 true
182 );
183 }
184
185 add_action( 'elementor/assets-manager/register_scripts', function( $assets ) use ( $source_map ) {
186 foreach ( $source_map as $handle => $script ) {
187 $assets->append(
188 $handle,
189 $script['src'],
190 $script['deps'],
191 $script['ver']
192 );
193 }
194 } );
195
196 wp_register_script(
197 'elementor-editor',
198 "{$assets_url}js/editor{$min_suffix}.js",
199 [
200 'elementor-common',
201 'elementor-editor-modules',
202 'elementor-editor-document',
203 'wp-auth-check',
204 'jquery-ui-sortable',
205 'jquery-ui-resizable',
206 'perfect-scrollbar',
207 'nprogress',
208 'tipsy',
209 'imagesloaded',
210 'heartbeat',
211 'jquery-elementor-select2',
212 'flatpickr',
213 'ace',
214 'ace-language-tools',
215 'jquery-hover-intent',
216 'nouislider',
217 'pickr',
218 'react',
219 'react-dom',
220 ],
221 ELEMENTOR_VERSION,
222 true
223 );
224
225 wp_set_script_translations( 'elementor-editor', 'elementor' );
226
227 wp_register_script(
228 'elementor-responsive-bar',
229 "{$assets_url}js/responsive-bar{$min_suffix}.js",
230 [ 'elementor-editor' ],
231 ELEMENTOR_VERSION,
232 true
233 );
234
235 wp_set_script_translations( 'elementor-responsive-bar', 'elementor' );
236 }
237
238 /**
239 * @return void
240 */
241 public function enqueue_scripts() {
242 wp_enqueue_script( 'elementor-responsive-bar' );
243 }
244
245 /**
246 * @return void
247 */
248 public function register_styles() {
249 $assets_url = $this->config->get( 'assets_url' );
250 $min_suffix = $this->config->get( 'min_suffix' );
251 $direction_suffix = $this->config->get( 'direction_suffix' );
252
253 wp_register_style(
254 'google-font-roboto',
255 'https://fonts.googleapis.com/css?family=Roboto:300,400,500,700',
256 [],
257 ELEMENTOR_VERSION
258 );
259
260 $source_map = $this->styles_source_map();
261
262 foreach ( $source_map as $handle => $style ) {
263 wp_register_style(
264 $handle,
265 $style['src'],
266 $style['deps'],
267 $style['ver']
268 );
269 }
270
271 add_action( 'elementor/assets-manager/register_styles', function( $assets ) use ( $source_map ) {
272 foreach ( $source_map as $handle => $style ) {
273 $assets->append(
274 $handle,
275 $style['src'],
276 $style['deps'],
277 $style['ver']
278 );
279 }
280 } );
281
282 wp_register_style(
283 'elementor-editor',
284 "{$assets_url}css/editor{$direction_suffix}{$min_suffix}.css",
285 [
286 'elementor-common',
287 'elementor-select2',
288 'elementor-icons',
289 'wp-auth-check',
290 'google-font-roboto',
291 'flatpickr',
292 'pickr',
293 ],
294 ELEMENTOR_VERSION
295 );
296
297 wp_register_style(
298 'elementor-responsive-bar',
299 "{$assets_url}css/responsive-bar{$min_suffix}.css",
300 [],
301 ELEMENTOR_VERSION
302 );
303 }
304
305 /**
306 * @return void
307 */
308 public function enqueue_styles() {
309 wp_enqueue_style( 'elementor-editor' );
310
311 wp_enqueue_style( 'elementor-responsive-bar' );
312 }
313
314 /**
315 * @return void
316 */
317 public function register_additional_templates() {
318 $templates = [
319 'global',
320 'panel',
321 'panel-elements',
322 'repeater',
323 'templates',
324 'navigator',
325 'hotkeys',
326 'responsive-bar',
327 ];
328
329 $templates = apply_filters( 'elementor/editor/templates', $templates );
330
331 foreach ( $templates as $template ) {
332 Plugin::$instance->common->add_template( ELEMENTOR_PATH . "includes/editor-templates/{$template}.php" );
333 }
334 }
335 }
336