/var/www/html_it/wp-content/plugins/elementor/modules/components/module.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
<?php
namespace Elementor\Modules\Components;

use 
Elementor\Core\Base\Module as BaseModule;
use 
Elementor\Core\Experiments\Manager as Experiments_Manager;
use 
Elementor\Modules\Components\Styles\Component_Styles;
use 
Elementor\Modules\Components\Documents\Component as Component_Document;

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

class 
Module extends BaseModule {
    const 
EXPERIMENT_NAME 'e_components';
    const 
PACKAGES        = [ 'editor-components' ];

    public function 
get_name() {
        return 
'components';
    }

    public function 
__construct() {
        
parent::__construct();

        
add_filter'elementor/editor/v2/packages', fn ( $packages ) => $this->add_packages$packages ) );
        
add_action'elementor/documents/register', fn ( $documents_manager ) => $this->register_document_type$documents_manager ) );

        ( new 
Component_Styles() )->register_hooks();
        ( new 
Components_REST_API() )->register_hooks();
    }

    public static function 
get_experimental_data() {
        return [
            
'name'           => self::EXPERIMENT_NAME,
            
'title'          => esc_html__'Components''elementor' ),
            
'description'    => esc_html__'Enable components.''elementor' ),
            
'hidden'         => true,
            
'default'        => Experiments_Manager::STATE_INACTIVE,
            
'release_status' => Experiments_Manager::RELEASE_STATUS_DEV,
        ];
    }

    public function 
get_widgets() {
        return [
            
'Component',
        ];
    }

    private function 
add_packages$packages ) {
        return 
array_merge$packagesself::PACKAGES );
    }

    private function 
register_document_type$documents_manager ) {
        
$documents_manager->register_document_type(
            
Component_Document::TYPE,
            
Component_Document::get_class_full_name()
        );

        
register_post_typeComponent_Document::TYPE, [
            
'label'    => Component_Document::get_title(),
            
'labels'   => Component_Document::get_labels(),
            
'public'   => false,
            
'supports' => Component_Document::get_supported_features(),
        ] );
    }
}