PluginProbe
Elementor Website Builder – more than just a page builder / 3.0.2
Elementor Website Builder – more than just a page builder v3.0.2
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.2, at core/modules-manager.php

118 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 'history',
70 'library',
71 'dynamic-tags',
72 'page-templates',
73 'gutenberg',
74 'wp-cli',
75 'safe-mode',
76 'usage',
77 ];
78 }
79
80 /**
81 * Get modules.
82 *
83 * Retrieve all the registered modules or a specific module.
84 *
85 * @since 2.0.0
86 * @access public
87 *
88 * @param string $module_name Module name.
89 *
90 * @return null|Module|Module[] All the registered modules or a specific module.
91 */
92 public function get_modules( $module_name ) {
93 if ( $module_name ) {
94 if ( isset( $this->modules[ $module_name ] ) ) {
95 return $this->modules[ $module_name ];
96 }
97
98 return null;
99 }
100
101 return $this->modules;
102 }
103
104 /**
105 * Get modules namespace prefix.
106 *
107 * Retrieve the modules namespace prefix.
108 *
109 * @since 2.0.0
110 * @access protected
111 *
112 * @return string Modules namespace prefix.
113 */
114 protected function get_modules_namespace_prefix() {
115 return 'Elementor';
116 }
117 }
118