PluginProbe
Elementor Website Builder – more than just a page builder / 3.13.0-beta1
Elementor Website Builder – more than just a page builder v3.13.0-beta1
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.13.0-beta1, at core/editor/config-providers/editor-v2-config-provider.php

139 lines 3.3 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 $loader_script_config = [
35 'handle' => 'elementor-editor-loader-v2',
36 'src' => '{{ELEMENTOR_ASSETS_URL}}js/editor-loader-v2{{MIN_SUFFIX}}.js',
37 'deps' => array_merge(
38 [ 'elementor-editor' ],
39 $apps_handles
40 ),
41 ];
42
43 return array_merge(
44 Editor_Common_Configs::get_script_configs(),
45 $packages_data->values(),
46 [ $loader_script_config ]
47 );
48 }
49
50 public function get_script_handles_to_enqueue() {
51 $types_to_enqueue = [ static::PACKAGE_TYPE_EXTENSION ];
52
53 return $this->get_packages_data()
54 ->filter( function ( $package_data ) use ( $types_to_enqueue ) {
55 return in_array( $package_data['type'], $types_to_enqueue, true );
56 } )
57 ->map( function ( $package_data ) {
58 return $package_data['handle'];
59 } )
60 // Must be last.
61 ->push( 'elementor-editor-loader-v2' )
62 ->values();
63 }
64
65 public function get_client_settings() {
66 $common_configs = Editor_Common_Configs::get_client_settings();
67
68 $v2_config = [
69 'handle' => 'elementor-editor-loader-v2',
70 'name' => 'elementorEditorV2Settings',
71 'settings' => [
72 'urls' => [
73 'admin' => admin_url(),
74 ],
75 ],
76 ];
77
78 return array_merge( $common_configs, [ $v2_config ] );
79 }
80
81 public function get_style_configs() {
82 return array_merge(
83 Editor_Common_Configs::get_style_configs(),
84 [
85 [
86 'handle' => 'elementor-editor-v2-overrides',
87 'src' => '{{ELEMENTOR_ASSETS_URL}}css/editor-v2-overrides{{MIN_SUFFIX}}.css',
88 'deps' => [ 'elementor-editor' ],
89 ],
90 ]
91 );
92 }
93
94 public function get_style_handles_to_enqueue() {
95 return [
96 'elementor-editor-v2-overrides',
97 'elementor-editor',
98 ];
99 }
100
101 public function get_template_body_file_path() {
102 return __DIR__ . '/../templates/editor-body-v2.view.php';
103 }
104
105 public function get_additional_template_paths() {
106 return Editor_Common_Configs::get_additional_template_paths();
107 }
108
109 private function get_packages_data() {
110 if ( ! $this->packages_data ) {
111 // Loading the file that is responsible for registering the packages in the filter.
112 $loader = ELEMENTOR_ASSETS_PATH . 'js/packages/loader.php';
113
114 if ( file_exists( $loader ) ) {
115 require_once $loader;
116 }
117
118 $packages_data = apply_filters( 'elementor/editor-v2/packages/config', [] );
119
120 $this->packages_data = Collection::make( $packages_data )
121 ->map_with_keys( function ( $data, $name ) {
122 $type = $data['type'] ?? static::PACKAGE_TYPE_UTIL;
123
124 return [
125 $name => [
126 'handle' => $data['handle'],
127 'src' => $data['src'],
128 'deps' => $data['deps'],
129 'i18n' => $data['i18n'],
130 'type' => $type,
131 ],
132 ];
133 } );
134 }
135
136 return $this->packages_data;
137 }
138 }
139