PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.7
Elementor Website Builder – more than just a page builder v3.35.7
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 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | modules/atomic-widgets/elements/base/atomic-widget-base.php +22 -11 4.2.23.35.7 View file →
@@ -1,8 +1,9 @@
1 1 <?php
2 2
3 3 namespace Elementor\Modules\AtomicWidgets\Elements\Base;
4 4
5 +use Elementor\Modules\AtomicWidgets\Elements\Loader\Frontend_Assets_Loader;
5 6 use Elementor\Modules\AtomicWidgets\PropDependencies\Manager as Dependency_Manager;
6 7 use Elementor\Modules\AtomicWidgets\PropTypes\Concerns\Has_Meta;
7 8 use Elementor\Widget_Base;
8 9
@@ -19,9 +20,8 @@
19 20 protected $version = '0.0';
20 21 protected $styles = [];
21 22 protected $interactions = [];
22 23 protected $editor_settings = [];
23 - protected $origin_id = null;
24 24
25 25 public function __construct( $data = [], $args = null ) {
26 26 parent::__construct( $data, $args );
27 27
@@ -28,14 +28,11 @@
28 28 $this->version = $data['version'] ?? '0.0';
29 29 $this->styles = $data['styles'] ?? [];
30 30 $this->interactions = $this->parse_atomic_interactions( $data['interactions'] ?? [] );
31 31 $this->editor_settings = $data['editor_settings'] ?? [];
32 -
33 32 if ( static::$widget_description ) {
34 33 $this->description( static::$widget_description );
35 34 }
36 -
37 - $this->origin_id = $data['origin_id'] ?? null;
38 35 }
39 36
40 37 private function parse_atomic_interactions( $interactions ) {
41 38 if ( empty( $interactions ) ) {
@@ -55,14 +52,30 @@
55 52
56 53 return $interactions;
57 54 }
58 55
59 - abstract protected function define_atomic_controls(): array;
56 + private function convert_prop_type_interactions_to_legacy_for_runtime( $interactions ) {
57 + $legacy_items = [];
60 58
61 - protected function define_atomic_pseudo_states(): array {
62 - return [];
59 + foreach ( $interactions['items'] as $item ) {
60 + if ( isset( $item['$$type'] ) && 'interaction-item' === $item['$$type'] ) {
61 + $legacy_item = $this->extract_legacy_interaction_from_prop_type( $item );
62 + if ( $legacy_item ) {
63 + $legacy_items[] = $legacy_item;
64 + }
65 + } else {
66 + $legacy_items[] = $item;
67 + }
68 + }
69 +
70 + return [
71 + 'version' => $interactions['version'] ?? 1,
72 + 'items' => $legacy_items,
73 + ];
63 74 }
64 75
76 + abstract protected function define_atomic_controls(): array;
77 +
65 78 public function get_global_scripts() {
66 79 return [];
67 80 }
68 81
@@ -73,11 +86,9 @@
73 86 $config['atomic'] = true;
74 87 $config['atomic_controls'] = $this->get_atomic_controls();
75 88 $config['base_styles'] = $this->get_base_styles();
76 89 $config['base_styles_dictionary'] = $this->get_base_styles_dictionary();
77 - $config['base_settings'] = $this->get_base_settings();
78 90 $config['atomic_props_schema'] = $props_schema;
79 - $config['atomic_pseudo_states'] = $this->define_atomic_pseudo_states();
80 91 $config['dependencies_per_target_mapping'] = Dependency_Manager::get_source_to_dependents( $props_schema );
81 92 $config['version'] = $this->version;
82 93 $config['meta'] = $this->get_meta();
83 94
@@ -97,8 +108,8 @@
97 108 public static function generate() {
98 109 return Widget_Builder::make( static::get_element_type() );
99 110 }
100 111
101 - public function get_interaction_id() {
102 - return $this->origin_id ?? $this->get_id();
112 + public function get_script_depends() {
113 + return [ Frontend_Assets_Loader::ATOMIC_WIDGETS_HANDLER ];
103 114 }
104 115 }