| @@ -1,20 +1,23 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | namespace Elementor\Modules\EditorOne; |
| 4 | 4 | |
| 5 | -use Elementor\Core\Admin\EditorOneMenu\Elementor_One_Menu_Manager; | |
| 5 | +use Elementor\Core\Admin\Admin; | |
| 6 | 6 | use Elementor\Core\Base\Module as BaseModule; |
| 7 | -use Elementor\Modules\EditorOne\Classes\Menu_Config; | |
| 8 | -use Elementor\Modules\EditorOne\Classes\Menu_Data_Provider; | |
| 7 | +use Elementor\Core\Experiments\Manager as Experiments_Manager; | |
| 8 | +use Elementor\Modules\EditorOne\Components\Elementor_One_Menu_Manager; | |
| 9 | 9 | use Elementor\Modules\EditorOne\Components\Sidebar_Navigation_Handler; |
| 10 | -use Elementor\Modules\EditorOne\Components\Top_Bar_Handler; | |
| 10 | +use Elementor\Plugin; | |
| 11 | 11 | |
| 12 | 12 | if ( ! defined( 'ABSPATH' ) ) { |
| 13 | 13 | exit; |
| 14 | 14 | } |
| 15 | + | |
| 15 | 16 | class Module extends BaseModule { |
| 16 | 17 | |
| 18 | + const EXPERIMENT_NAME = 'e_editor_one'; | |
| 19 | + | |
| 17 | 20 | const CUSTOM_REACT_APP_PAGES = [ |
| 18 | 21 | 'elementor-element-manager', |
| 19 | 22 | ]; |
| 20 | 23 | |
| @@ -21,8 +24,19 @@ | ||
| 21 | 24 | public function get_name(): string { |
| 22 | 25 | return 'editor-one'; |
| 23 | 26 | } |
| 24 | 27 | |
| 28 | + public static function get_experimental_data(): array { | |
| 29 | + return [ | |
| 30 | + 'name' => static::EXPERIMENT_NAME, | |
| 31 | + 'title' => esc_html__( 'Editor one', 'elementor' ), | |
| 32 | + 'description' => esc_html__( 'General', 'elementor' ), | |
| 33 | + 'hidden' => true, | |
| 34 | + 'default' => Experiments_Manager::STATE_INACTIVE, | |
| 35 | + 'release_status' => Experiments_Manager::RELEASE_STATUS_DEV, | |
| 36 | + ]; | |
| 37 | + } | |
| 38 | + | |
| 25 | 39 | public function __construct() { |
| 26 | 40 | parent::__construct(); |
| 27 | 41 | |
| 28 | 42 | if ( is_admin() ) { |
| @@ -27,15 +41,12 @@ | ||
| 27 | 41 | |
| 28 | 42 | if ( is_admin() ) { |
| 29 | 43 | $this->add_component( 'editor-one-menu-manager', new Elementor_One_Menu_Manager() ); |
| 30 | 44 | $this->add_component( 'sidebar-navigation-handler', new Sidebar_Navigation_Handler() ); |
| 31 | - $this->add_component( 'top-bar-handler', new Top_Bar_Handler() ); | |
| 32 | 45 | } |
| 33 | 46 | |
| 34 | 47 | add_action( 'current_screen', function () { |
| 35 | - $menu_data_provider = Menu_Data_Provider::instance(); | |
| 36 | - | |
| 37 | - if ( ! $menu_data_provider->is_editor_one_admin_page() ) { | |
| 48 | + if ( ! $this->is_feature_enabled() || ! Admin::is_elementor_admin_page() ) { | |
| 38 | 49 | return; |
| 39 | 50 | } |
| 40 | 51 | |
| 41 | 52 | add_action( 'admin_enqueue_scripts', function () { |
| @@ -41,12 +52,17 @@ | ||
| 41 | 52 | add_action( 'admin_enqueue_scripts', function () { |
| 42 | 53 | $this->enqueue_styles(); |
| 43 | 54 | } ); |
| 44 | 55 | } ); |
| 56 | + } | |
| 45 | 57 | |
| 46 | - add_filter( 'elementor/admin-top-bar/is-active', function ( $_is_active ) { | |
| 47 | - return false; | |
| 48 | - } ); | |
| 58 | + /** | |
| 59 | + * Check if Editor One feature is enabled | |
| 60 | + * | |
| 61 | + * @return bool | |
| 62 | + */ | |
| 63 | + private function is_feature_enabled() { | |
| 64 | + return Plugin::$instance->experiments->is_feature_active( static::EXPERIMENT_NAME ); | |
| 49 | 65 | } |
| 50 | 66 | |
| 51 | 67 | /** |
| 52 | 68 | * Check if current page has a custom React app that uses @elementor/ui |
| @@ -72,9 +88,8 @@ | ||
| 72 | 88 | /** |
| 73 | 89 | * Enqueue admin styles |
| 74 | 90 | */ |
| 75 | 91 | private function enqueue_styles() { |
| 76 | - | |
| 77 | 92 | wp_enqueue_style( 'elementor-admin' ); |
| 78 | 93 | |
| 79 | 94 | wp_enqueue_style( |
| 80 | 95 | 'elementor-editor-one-common', |