← All changes
|
modules/components/widgets/component-instance.php
+28
-1
4.0.9
→
4.3.0-beta3
View file →
| @@ -3,11 +3,13 @@ | ||
| 3 | 3 | |
| 4 | 4 | use Elementor\Modules\AtomicWidgets\Elements\Base\Atomic_Widget_Base; |
| 5 | 5 | use Elementor\Modules\AtomicWidgets\Elements\Base\Has_Template; |
| 6 | 6 | use Elementor\Modules\AtomicWidgets\PropsResolver\Render_Props_Resolver; |
| 7 | +use Elementor\Modules\Components\Components_Repository; | |
| 7 | 8 | use Elementor\Modules\Components\PropTypes\Component_Instance_Prop_Type; |
| 8 | 9 | use Elementor\Modules\Components\PropTypes\Overridable_Prop_Type; |
| 9 | 10 | use Elementor\Modules\Components\Transformers\Overridable_Transformer; |
| 11 | +use Elementor\Modules\Components\Utils\Format_Component_Elements_Id; | |
| 10 | 12 | |
| 11 | 13 | if ( ! defined( 'ABSPATH' ) ) { |
| 12 | 14 | exit; // Exit if accessed directly. |
| 13 | 15 | } |
| @@ -15,9 +17,9 @@ | ||
| 15 | 17 | class Component_Instance extends Atomic_Widget_Base { |
| 16 | 18 | use Has_Template; |
| 17 | 19 | |
| 18 | 20 | public static function get_element_type(): string { |
| 19 | - return 'e-component'; | |
| 21 | + return Component_Instance_Prop_Type::WIDGET_TYPE; | |
| 20 | 22 | } |
| 21 | 23 | |
| 22 | 24 | public function show_in_panel() { |
| 23 | 25 | return false; |
| @@ -98,6 +100,31 @@ | ||
| 98 | 100 | $overrides[ $override['override_key'] ] = $override['override_value']; |
| 99 | 101 | } |
| 100 | 102 | |
| 101 | 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 | + $component_id = Component_Instance_Prop_Type::extract_component_id( $this->get_settings() ); | |
| 127 | + | |
| 128 | + return null === $component_id ? null : (int) $component_id; | |
| 102 | 129 | } |
| 103 | 130 | } |