← All changes
|
modules/components/widgets/component-instance.php
+3
-77
4.2.0-dev2
→
3.34.3
View file →
| @@ -1,15 +1,10 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | namespace Elementor\Modules\Components\Widgets; |
| 3 | 3 | |
| 4 | -use Elementor\Modules\AtomicWidgets\Elements\Base\Atomic_Widget_Base; | |
| 5 | -use Elementor\Modules\AtomicWidgets\Elements\Base\Has_Template; | |
| 6 | -use Elementor\Modules\AtomicWidgets\PropsResolver\Render_Props_Resolver; | |
| 7 | -use Elementor\Modules\Components\Components_Repository; | |
| 4 | +use Elementor\Modules\AtomicWidgets\Elements\Atomic_Widget_Base; | |
| 5 | +use Elementor\Modules\AtomicWidgets\Elements\Has_Template; | |
| 8 | 6 | use Elementor\Modules\Components\PropTypes\Component_Instance_Prop_Type; |
| 9 | -use Elementor\Modules\Components\PropTypes\Overridable_Prop_Type; | |
| 10 | -use Elementor\Modules\Components\Transformers\Overridable_Transformer; | |
| 11 | -use Elementor\Modules\Components\Utils\Format_Component_Elements_Id; | |
| 12 | 7 | |
| 13 | 8 | if ( ! defined( 'ABSPATH' ) ) { |
| 14 | 9 | exit; // Exit if accessed directly. |
| 15 | 10 | } |
| @@ -38,9 +33,9 @@ | ||
| 38 | 33 | } |
| 39 | 34 | |
| 40 | 35 | protected static function define_props_schema(): array { |
| 41 | 36 | return [ |
| 42 | - 'component_instance' => Component_Instance_Prop_Type::make()->meta( Overridable_Prop_Type::ignore() )->required(), | |
| 37 | + 'component_instance' => Component_Instance_Prop_Type::make()->required(), | |
| 43 | 38 | ]; |
| 44 | 39 | } |
| 45 | 40 | |
| 46 | 41 | protected function parse_editor_settings( array $data ): array { |
| @@ -60,75 +55,6 @@ | ||
| 60 | 55 | protected function get_templates(): array { |
| 61 | 56 | return [ |
| 62 | 57 | 'elementor/elements/component' => __DIR__ . '/component.html.twig', |
| 63 | 58 | ]; |
| 64 | - } | |
| 65 | - | |
| 66 | - protected function define_render_context(): array { | |
| 67 | - $resolved_overrides = $this->get_resolved_overrides(); | |
| 68 | - $merged_overrides = $this->get_merged_overrides( $resolved_overrides ); | |
| 69 | - | |
| 70 | - return [ | |
| 71 | - [ | |
| 72 | - 'context_key' => Overridable_Transformer::class, | |
| 73 | - 'context' => [ 'overrides' => $merged_overrides ], | |
| 74 | - ], | |
| 75 | - [ | |
| 76 | - 'context' => [ 'instance_id' => $this->get_id() ], | |
| 77 | - ], | |
| 78 | - ]; | |
| 79 | - } | |
| 80 | - | |
| 81 | - private function get_resolved_overrides(): array { | |
| 82 | - $props = $this->get_settings(); | |
| 83 | - $overrides = $props['component_instance']['value']['overrides'] ?? null; | |
| 84 | - | |
| 85 | - if ( ! $overrides ) { | |
| 86 | - return []; | |
| 87 | - } | |
| 88 | - | |
| 89 | - $component_schema = $this->get_props_schema(); | |
| 90 | - $overrides_schema = $component_schema['component_instance']->get_shape_field( 'overrides' ); | |
| 91 | - | |
| 92 | - return Render_Props_Resolver::for_settings()->resolve( [ 'overrides' => $overrides_schema ], [ 'overrides' => $overrides ] ); | |
| 93 | - } | |
| 94 | - | |
| 95 | - private function get_merged_overrides( $value ): array { | |
| 96 | - $overrides_array = $value['overrides'] ?? []; | |
| 97 | - $overrides = []; | |
| 98 | - | |
| 99 | - foreach ( $overrides_array as $override ) { | |
| 100 | - $overrides[ $override['override_key'] ] = $override['override_value']; | |
| 101 | - } | |
| 102 | - | |
| 103 | - return $overrides; | |
| 104 | - } | |
| 105 | - | |
| 106 | - public function get_inner_elements_data_for_search(): array { | |
| 107 | - $component_id = $this->get_component_id(); | |
| 108 | - | |
| 109 | - if ( null === $component_id ) { | |
| 110 | - return []; | |
| 111 | - } | |
| 112 | - | |
| 113 | - $repository = new Components_Repository(); | |
| 114 | - $component = $repository->get( $component_id ); | |
| 115 | - | |
| 116 | - if ( ! $component ) { | |
| 117 | - return []; | |
| 118 | - } | |
| 119 | - | |
| 120 | - $elements_data = $component->get_elements_data(); | |
| 121 | - | |
| 122 | - return Format_Component_Elements_Id::format( $elements_data, [ $this->get_id() ] ); | |
| 123 | - } | |
| 124 | - | |
| 125 | - private function get_component_id(): ?int { | |
| 126 | - $settings = $this->get_settings(); | |
| 127 | - | |
| 128 | - if ( ! isset( $settings['component_instance']['value']['component_id']['value'] ) ) { | |
| 129 | - return null; | |
| 130 | - } | |
| 131 | - | |
| 132 | - return (int) $settings['component_instance']['value']['component_id']['value']; | |
| 133 | 59 | } |
| 134 | 60 | } |