/var/www/html_it/wp-content/plugins/elementor/modules/components/widgets/component.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
namespace Elementor\Modules\Components\Widgets;

use 
Elementor\Modules\AtomicWidgets\Elements\Atomic_Widget_Base;
use 
Elementor\Modules\AtomicWidgets\PropTypes\Primitives\Number_Prop_Type;
use 
Elementor\Plugin;

if ( ! 
defined'ABSPATH' ) ) {
    exit; 
// Exit if accessed directly.
}

class 
Component extends Atomic_Widget_Base {

    public static function 
get_element_type(): string {
        return 
'e-component';
    }

    public function 
show_in_panel() {
        return 
false;
    }

    public function 
get_title() {
        
$title esc_html__'Component''elementor' );

        if ( isset( 
$this->get_settings ) && null !== $this->get_settings'component_id' ) ) {
            
$post_id $this->get_settings'component_id' )['value'];
            
$title   Plugin::$instance->documents->get$post_id )->get_title();
        }

        return 
$title;
    }

    public function 
get_keywords() {
        return [ 
'component' ];
    }

    public function 
get_icon() {
        return 
'eicon-star';
    }

    protected static function 
define_props_schema(): array {
        return [
            
'component_id' => Number_Prop_Type::make(),
        ];
    }

    protected function 
define_atomic_controls(): array {
        return [];
    }

    protected function 
get_settings_controls(): array {
        return [];
    }

    protected function 
render(): void {
        if ( 
null === $this->get_settings'component_id' ) ) {
            return;
        }

        
$post_id $this->get_settings'component_id' )['value'];
        
$content Plugin::$instance->frontend->get_builder_content$post_id );
        
$html    sprintf'<div class="e-component">%s</div>'$content );

        
// PHPCS - should not be escaped.
        
echo $html// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
    
}
}