PluginProbe
Elementor Website Builder – more than just a page builder / 4.2.3
Elementor Website Builder – more than just a page builder v4.2.3
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 / design-system-sync / module.php

module.php in Elementor Website Builder – more than just a page builder 4.2.3, at modules/design-system-sync/module.php

86 lines 2.5 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\DesignSystemSync;
4
5 use Elementor\Core\Base\Module as BaseModule;
6 use Elementor\Modules\DesignSystemSync\Classes\Stylesheet_Manager;
7 use Elementor\Modules\DesignSystemSync\Classes\Controller;
8 use Elementor\Modules\GlobalClasses\Global_Classes_Repository;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 class Module extends BaseModule {
15 const MODULE_NAME = 'design-system-sync';
16 public static function get_v3_sync_id( string $label ): string {
17 return 'v4-' . strtolower( $label );
18 }
19
20 public function get_name() {
21 return self::MODULE_NAME;
22 }
23
24 public function __construct() {
25 parent::__construct();
26
27 $this->register_hooks();
28 }
29
30 private function register_hooks() {
31 ( new Classes\Global_Colors_Extension() )->register_hooks();
32 ( new Classes\Global_Typography_Extension() )->register_hooks();
33 ( new Controller() )->register_hooks();
34
35 add_action( 'elementor/controls/register', [ $this, 'register_controls' ] );
36 add_action( 'elementor/editor/after_enqueue_scripts', [ $this, 'enqueue_editor_scripts' ] );
37 add_action( 'elementor/editor/after_enqueue_styles', [ $this, 'enqueue_editor_styles' ] );
38 add_action( 'elementor/global_classes/update', [ $this, 'clear_classes_cache' ] );
39 add_action( 'elementor/global_classes/update', [ $this, 'invalidate_sync_stylesheet' ] );
40 add_action( 'wp_enqueue_scripts', [ $this, 'enqueue_sync_stylesheet' ] );
41 }
42
43 public function register_controls( $controls_manager ) {
44 require_once __DIR__ . '/controls/v4-color-variable-list.php';
45 require_once __DIR__ . '/controls/v4-typography-list.php';
46
47 $controls_manager->register( new Controls\V4_Color_Variable_List() );
48 $controls_manager->register( new Controls\V4_Typography_List() );
49 }
50
51 public function enqueue_editor_scripts() {
52 wp_enqueue_script(
53 'elementor-design-system-sync-editor',
54 $this->get_js_assets_url( 'design-system-sync' ),
55 [],
56 ELEMENTOR_VERSION,
57 true
58 );
59 }
60
61 public function enqueue_editor_styles() {
62 wp_enqueue_style(
63 'elementor-design-system-sync-editor',
64 $this->get_css_assets_url( 'modules/design-system-sync/design-system-sync' ),
65 [],
66 ELEMENTOR_VERSION
67 );
68 }
69
70 public function clear_classes_cache() {
71 Classes\Classes_Provider::clear_cache();
72 }
73
74 public function invalidate_sync_stylesheet( $context = null ) {
75 if ( Global_Classes_Repository::CONTEXT_FRONTEND !== $context ) {
76 return;
77 }
78
79 ( new Stylesheet_Manager() )->delete();
80 }
81
82 public function enqueue_sync_stylesheet() {
83 ( new Stylesheet_Manager() )->enqueue();
84 }
85 }
86