PluginProbe
Elementor Website Builder – more than just a page builder / 3.14.0-beta4
Elementor Website Builder – more than just a page builder v3.14.0-beta4
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 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 All 457 releases
elementor / core / editor / config-providers / editor-v2-config-provider.php

editor-v2-config-provider.php in Elementor Website Builder – more than just a page builder 3.14.0-beta4, at core/editor/config-providers/editor-v2-config-provider.php

148 lines 3.6 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\Config_Providers;
3
4 use Elementor\Core\Utils\Collection;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 class Editor_V2_Config_Provider implements Config_Provider_Interface {
11 const PACKAGE_TYPE_APP = 'app';
12 const PACKAGE_TYPE_EXTENSION = 'extension';
13 const PACKAGE_TYPE_UTIL = 'util';
14
15 /**
16 * Cached packages data.
17 *
18 * @var Collection
19 */
20 private $packages_data;
21
22 public function get_script_configs() {
23 $packages_data = $this->get_packages_data();
24
25 $apps_handles = $packages_data
26 ->filter( function ( $package_data ) {
27 return static::PACKAGE_TYPE_APP === $package_data['type'];
28 } )
29 ->map( function ( $package_data ) {
30 return $package_data['handle'];
31 } )
32 ->values();
33
34 $environment_script_config = [
35 'handle' => 'elementor-editor-environment-v2',
36 'src' => '{{ELEMENTOR_ASSETS_URL}}js/editor-environment-v2{{MIN_SUFFIX}}.js',
37 'deps' => [
38 'elementor-packages-env',
39 ],
40 ];
41
42 $loader_script_config = [
43 'handle' => 'elementor-editor-loader-v2',
44 'src' => '{{ELEMENTOR_ASSETS_URL}}js/editor-loader-v2{{MIN_SUFFIX}}.js',
45 'deps' => array_merge(
46 [ 'elementor-editor' ],
47 $apps_handles
48 ),
49 ];
50
51 return array_merge(
52 Editor_Common_Configs::get_script_configs(),
53 $packages_data->values(),
54 [
55 $environment_script_config,
56 $loader_script_config,
57 ]
58 );
59 }
60
61 public function get_script_handles_to_enqueue() {
62 $types_to_enqueue = [ static::PACKAGE_TYPE_EXTENSION ];
63
64 return $this->get_packages_data()
65 ->filter( function ( $package_data ) use ( $types_to_enqueue ) {
66 return in_array( $package_data['type'], $types_to_enqueue, true );
67 } )
68 ->map( function ( $package_data ) {
69 return $package_data['handle'];
70 } )
71 // Must be first.
72 ->prepend( 'elementor-editor-environment-v2' )
73 // Must be last.
74 ->push( 'elementor-editor-loader-v2' )
75 ->values();
76 }
77
78 public function get_client_env() {
79 $client_env = apply_filters( 'elementor/editor-v2/packages/client-env', [] );
80
81 $v2_env = [
82 'handle' => 'elementor-editor-environment-v2',
83 'name' => 'elementorEditorV2Env',
84 'env' => $client_env,
85 ];
86
87 return array_merge(
88 Editor_Common_Configs::get_client_env(),
89 [ $v2_env ]
90 );
91 }
92
93 public function get_style_configs() {
94 return array_merge(
95 Editor_Common_Configs::get_style_configs(),
96 [
97 [
98 'handle' => 'elementor-editor-v2-overrides',
99 'src' => '{{ELEMENTOR_ASSETS_URL}}css/editor-v2-overrides{{MIN_SUFFIX}}.css',
100 'deps' => [ 'elementor-editor' ],
101 ],
102 ]
103 );
104 }
105
106 public function get_style_handles_to_enqueue() {
107 return [
108 'elementor-editor-v2-overrides',
109 'elementor-editor',
110 ];
111 }
112
113 public function get_template_body_file_path() {
114 return __DIR__ . '/../templates/editor-body-v2.view.php';
115 }
116
117 public function get_additional_template_paths() {
118 return Editor_Common_Configs::get_additional_template_paths();
119 }
120
121 private function get_packages_data() {
122 if ( ! $this->packages_data ) {
123 // Loading the file that is responsible for registering the packages in the filter.
124 $loader = ELEMENTOR_ASSETS_PATH . 'js/packages/loader.php';
125
126 if ( file_exists( $loader ) ) {
127 require_once $loader;
128 }
129
130 $packages_data = apply_filters( 'elementor/editor-v2/packages/config', [] );
131
132 $this->packages_data = Collection::make( $packages_data )
133 ->filter( function ( $package_data ) {
134 return ! empty( $package_data['handle'] );
135 } )
136 ->map_with_keys( function ( $data, $name ) {
137 return [
138 $name => array_replace( [
139 'type' => static::PACKAGE_TYPE_UTIL,
140 ], $data ),
141 ];
142 } );
143 }
144
145 return $this->packages_data;
146 }
147 }
148