PluginProbe
Elementor Website Builder – more than just a page builder / 3.25.4
Elementor Website Builder – more than just a page builder v3.25.4
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 / modules / site-navigation / module.php

module.php in Elementor Website Builder – more than just a page builder 3.25.4, at modules/site-navigation/module.php

85 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\SiteNavigation;
4
5 use Elementor\Core\Base\Module as Module_Base;
6 use Elementor\Core\Experiments\Manager as Experiments_Manager;
7 use Elementor\Modules\SiteNavigation\Data\Controller;
8 use Elementor\Modules\SiteNavigation\Rest_Fields\Page_User_Can;
9 use Elementor\Plugin;
10 use Elementor\Utils;
11
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit; // Exit if accessed directly
15 }
16
17 class Module extends Module_Base {
18 const PAGES_PANEL_EXPERIMENT_NAME = 'pages_panel';
19
20 /**
21 * Initialize the Site navigation module.
22 * @return void
23 * @throws \Exception
24 */
25 public function __construct() {
26 Plugin::$instance->data_manager_v2->register_controller( new Controller() );
27
28 $is_tests = Utils::is_elementor_tests();
29 $is_v2_experiment_on = Plugin::$instance->experiments->is_feature_active( 'editor_v2' );
30 if ( ! $is_v2_experiment_on && ! $is_tests ) {
31 return;
32 }
33
34 $this->register_pages_panel_experiment();
35
36 if ( Plugin::$instance->experiments->is_feature_active( self::PAGES_PANEL_EXPERIMENT_NAME ) ) {
37 add_filter( 'elementor/editor/v2/scripts/env', function( $env ) {
38 $env['@elementor/editor-site-navigation'] = [
39 'is_pages_panel_active' => true,
40 ];
41
42 return $env;
43 } );
44 $this->register_rest_fields();
45 }
46 }
47
48 /**
49 * Retrieve the module name.
50 *
51 * @return string
52 */
53 public function get_name() {
54 return 'site-navigation';
55 }
56
57 /**
58 * Register Experiment
59 *
60 * @since 3.16.0
61 *
62 * @return void
63 * @throws \Exception
64 */
65 private function register_pages_panel_experiment() {
66 Plugin::$instance->experiments->add_feature( [
67 'name' => self::PAGES_PANEL_EXPERIMENT_NAME,
68 'title' => esc_html__( 'Pages Panel', 'elementor' ),
69 'release_status' => Experiments_Manager::RELEASE_STATUS_ALPHA,
70 'default' => Experiments_Manager::STATE_INACTIVE,
71 'hidden' => true,
72 'dependencies' => [
73 'editor_v2',
74 ],
75 ] );
76 }
77
78 private function register_rest_fields() {
79 add_action( 'rest_api_init', function() {
80 ( new Page_User_Can() )->register_rest_field();
81 } );
82 }
83
84 }
85