PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev2
Elementor Website Builder – more than just a page builder v3.35.0-dev2
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 / modules / atomic-widgets / import-export / modifiers / styles-props-modifier.php

styles-props-modifier.php in Elementor Website Builder – more than just a page builder 3.35.0-dev2, at modules/atomic-widgets/import-export/modifiers/styles-props-modifier.php

50 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\AtomicWidgets\ImportExport\Modifiers;
4
5 use Elementor\Modules\AtomicWidgets\PropsResolver\Import_Export_Props_Resolver;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 class Styles_Props_Modifier {
12 private Import_Export_Props_Resolver $props_resolver;
13
14 private array $schema;
15
16 public function __construct( Import_Export_Props_Resolver $props_resolver, array $schema ) {
17 $this->props_resolver = $props_resolver;
18 $this->schema = $schema;
19 }
20
21 public static function make( Import_Export_Props_Resolver $props_resolver, array $schema ) {
22 return new self( $props_resolver, $schema );
23 }
24
25 public function run( array $element ) {
26 if ( empty( $element['styles'] ) && ! is_array( $element['styles'] ) ) {
27 return $element;
28 }
29
30 foreach ( $element['styles'] as $style_key => $style ) {
31 if ( empty( $style['variants'] ) || ! is_array( $style['variants'] ) ) {
32 continue;
33 }
34
35 foreach ( $style['variants'] as $variant_key => $variant ) {
36 if ( empty( $variant['props'] ) || ! is_array( $variant['props'] ) ) {
37 continue;
38 }
39
40 $element['styles'][ $style_key ]['variants'][ $variant_key ]['props'] = $this->props_resolver->resolve(
41 $this->schema,
42 $variant['props']
43 );
44 }
45 }
46
47 return $element;
48 }
49 }
50