PluginProbe
Elementor Website Builder – more than just a page builder / 3.0.8
Elementor Website Builder – more than just a page builder v3.0.8
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 / core / modules-manager.php

modules-manager.php in Elementor Website Builder – more than just a page builder 3.0.8, at core/modules-manager.php

119 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor\Core;
3
4 use Elementor\Core\Base\Module;
5
6 if ( ! defined( 'ABSPATH' ) ) {
7 exit; // Exit if accessed directly.
8 }
9
10 /**
11 * Elementor modules manager.
12 *
13 * Elementor modules manager handler class is responsible for registering and
14 * managing Elementor modules.
15 *
16 * @since 1.6.0
17 */
18 class Modules_Manager {
19
20 /**
21 * Registered modules.
22 *
23 * Holds the list of all the registered modules.
24 *
25 * @since 1.6.0
26 * @access public
27 *
28 * @var array
29 */
30 private $modules = [];
31
32 /**
33 * Modules manager constructor.
34 *
35 * Initializing the Elementor modules manager.
36 *
37 * @since 1.6.0
38 * @access public
39 */
40 public function __construct() {
41 $modules_namespace_prefix = $this->get_modules_namespace_prefix();
42
43 foreach ( $this->get_modules_names() as $module_name ) {
44 $class_name = str_replace( '-', ' ', $module_name );
45
46 $class_name = str_replace( ' ', '', ucwords( $class_name ) );
47
48 $class_name = $modules_namespace_prefix . '\\Modules\\' . $class_name . '\Module';
49
50 /** @var Module $class_name */
51 if ( $class_name::is_active() ) {
52 $this->modules[ $module_name ] = $class_name::instance();
53 }
54 }
55 }
56
57 /**
58 * Get modules names.
59 *
60 * Retrieve the modules names.
61 *
62 * @since 2.0.0
63 * @access public
64 *
65 * @return string[] Modules names.
66 */
67 public function get_modules_names() {
68 return [
69 'admin-bar',
70 'history',
71 'library',
72 'dynamic-tags',
73 'page-templates',
74 'gutenberg',
75 'wp-cli',
76 'safe-mode',
77 'usage',
78 ];
79 }
80
81 /**
82 * Get modules.
83 *
84 * Retrieve all the registered modules or a specific module.
85 *
86 * @since 2.0.0
87 * @access public
88 *
89 * @param string $module_name Module name.
90 *
91 * @return null|Module|Module[] All the registered modules or a specific module.
92 */
93 public function get_modules( $module_name ) {
94 if ( $module_name ) {
95 if ( isset( $this->modules[ $module_name ] ) ) {
96 return $this->modules[ $module_name ];
97 }
98
99 return null;
100 }
101
102 return $this->modules;
103 }
104
105 /**
106 * Get modules namespace prefix.
107 *
108 * Retrieve the modules namespace prefix.
109 *
110 * @since 2.0.0
111 * @access protected
112 *
113 * @return string Modules namespace prefix.
114 */
115 protected function get_modules_namespace_prefix() {
116 return 'Elementor';
117 }
118 }
119