Diff: STRATO-apps/wordpress_03/app/wp-content/plugins/elementor/modules/site-navigation/module.php

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
1 + <?php
2 +
3 + namespace Elementor\Modules\SiteNavigation;
4 +
5 + use Elementor\Core\Base\Module as Module_Base;
6 + use Elementor\Core\Experiments\Exceptions\Dependency_Exception;
7 + use Elementor\Core\Experiments\Manager as Experiments_Manager;
8 + use Elementor\Modules\SiteNavigation\Data\Controller;
9 + use Elementor\Modules\SiteNavigation\Rest_Fields\Page_User_Can;
10 + use Elementor\Plugin;
11 + use Elementor\Utils;
12 +
13 +
14 + if ( ! defined( 'ABSPATH' ) ) {
15 + exit; // Exit if accessed directly.
16 + }
17 +
18 + class Module extends Module_Base {
19 + const PAGES_PANEL_EXPERIMENT_NAME = 'pages_panel';
20 + const PACKAGES = [
21 + 'editor-site-navigation',
22 + ];
23 + /**
24 + * Initialize the Site navigation module.
25 + *
26 + * @return void
27 + * @throws \Exception If the experiment registration fails.
28 + */
29 + public function __construct() {
30 + Plugin::$instance->data_manager_v2->register_controller( new Controller() );
31 +
32 + $this->register_pages_panel_experiment();
33 +
34 + add_filter( 'elementor/editor/v2/packages', fn( $packages ) => $this->add_packages( $packages ) );
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 +
45 + $this->register_rest_fields();
46 + }
47 + }
48 +
49 + /**
50 + * Retrieve the module name.
51 + *
52 + * @return string
53 + */
54 + public function get_name() {
55 + return 'site-navigation';
56 + }
57 +
58 + /**
59 + * Register Experiment
60 + *
61 + * @since 3.16.0
62 + *
63 + * @return void
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 + ] );
73 + }
74 +
75 + private function register_rest_fields() {
76 + add_action( 'rest_api_init', function() {
77 + ( new Page_User_Can() )->register_rest_field();
78 + } );
79 + }
80 +
81 + private function add_packages( $packages ) {
82 + return array_merge( $packages, self::PACKAGES );
83 + }
84 + }
85 +