PluginProbe ʕ •ᴥ•ʔ
Elementor Website Builder – more than just a page builder / 3.27.0-dev1
Elementor Website Builder – more than just a page builder v3.27.0-dev1
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 4.0.6 4.0.5 4.0.4 4.0.3 3.22.0-dev1 4.0.0-beta3 3.22.0-dev2 4.0.0-beta4 3.22.0-dev3 4.0.0-beta5 3.22.0-dev4 4.0.0-dev1 3.22.0-dev5 4.0.0-dev2 3.22.0-dev6 4.0.0-dev3 3.22.1 4.0.0-dev4 3.22.2 4.0.0-dev5 3.22.3 4.0.1 3.23.0 4.0.2 3.23.0-beta1 3.23.0-beta2 3.23.0-beta3 3.23.0-beta4 3.23.0-beta5 3.23.0-beta6 3.23.0-dev1 3.23.0-dev2 3.23.0-dev3 3.23.0-dev4 3.23.0-dev5 3.23.0-dev6 3.23.1 3.23.2 3.23.3 3.23.4 3.24.0 3.24.0-beta1 3.24.0-beta2 3.24.0-beta3 3.24.0-dev1 3.24.0-dev2 3.24.0-dev3 3.24.1 3.24.2 3.24.3 3.24.4 3.24.5 3.24.6 3.24.7 3.24.8 3.25.0 3.25.0-beta1 3.25.0-beta2 3.25.0-beta3 3.25.0-dev1 3.25.0-dev2 3.25.0-dev3 3.25.1 3.25.10 3.25.11 3.25.2 3.25.3 3.25.4 3.25.5 3.25.6 3.25.7 3.25.8 3.25.9 3.26.0 3.26.0-beta1 3.26.0-beta2 3.26.0-beta3 3.26.0-beta4 3.26.0-beta5 3.26.0-dev1 3.26.0-dev2 3.26.0-dev3 3.26.0-dev4 3.26.0-dev5 3.26.1 3.26.2 3.26.3 3.26.4 3.26.5 3.27.0 3.27.0-beta1 3.27.0-beta2 3.27.0-dev1 3.27.0-dev2 3.27.1 3.27.2 3.27.3 3.27.4 3.27.5 3.27.6 3.27.7 3.28.0 3.28.0-beta1 3.28.0-beta2 3.28.0-beta3 3.28.0-dev1 3.28.0-dev2 3.28.0-dev3 3.28.1 3.28.2 3.28.3 3.28.4 3.29.0 3.29.0-beta1 trunk 3.29.0-beta2 3.0.0 3.29.0-beta3 3.0.1 3.29.0-beta4 3.0.10 3.29.0-dev1 3.0.11 3.29.0-dev2 3.0.12 3.29.0-dev3 3.0.13 3.29.0-dev4 3.0.14 3.29.1 3.0.15 3.29.2 3.0.16 3.3.0 3.0.2 3.3.1 3.0.3 3.30.0 3.0.4 3.30.0-beta1 3.0.5 3.30.0-beta2 3.0.6 3.30.0-beta3 3.0.7 3.30.0-dev1 3.0.8 3.30.0-dev2 3.0.8.1 3.30.0-dev3 3.0.9 3.30.1 3.1.0 3.30.2 3.1.0-beta1 3.30.3 3.1.0-beta2 3.30.4 3.1.0-beta3 3.31.0 3.1.0-beta4 3.31.0-beta1 3.1.0-dev1 3.31.0-beta2 3.1.0-dev2 3.31.0-dev1 3.1.0-dev3 3.31.0-dev2 3.1.1 3.31.1 3.1.2 3.31.2 3.1.3 3.31.3 3.1.4 3.31.4 3.10.0 3.31.5 3.10.0-dev1 3.32.0 3.10.1 3.32.0-beta1 3.10.2 3.32.0-beta2 3.11.0 3.32.0-beta3 3.11.0-beta1 3.32.0-dev1 3.11.0-beta2 3.32.0-dev2 3.11.0-beta3 3.32.0-dev3 3.11.0-dev1 3.32.1 3.11.0-dev2 3.32.2 3.11.0-dev3 3.32.3 3.11.1 3.32.4 3.11.2 3.32.5 3.11.3 3.33.0 3.11.4 3.33.0-beta1 3.11.5 3.33.0-beta2 3.12.0 3.33.0-beta3 3.12.1 3.33.0-beta4 3.12.2 3.33.0-dev1 3.13.0 3.33.0-dev2 3.13.0-beta1 3.33.0-dev3 3.13.0-beta2 3.33.0-dev4 3.13.0-beta3 3.33.1 3.13.0-dev3 3.33.2 3.13.0-dev4 3.33.3 3.13.1 3.33.4 3.13.2 3.33.5 3.13.3 3.33.6 3.13.4 3.34.0 3.14.0 3.34.0-beta1 3.14.0-beta1 3.34.0-beta2 3.14.0-beta2 3.34.0-beta3 3.14.0-beta3 3.34.0-dev1 3.14.0-beta4 3.34.0-dev2 3.14.0-beta5 3.34.1 3.14.1 3.34.2 3.15.0 3.34.3 3.15.1 3.34.4 3.15.2 3.35.0 3.15.3 3.35.0-beta1 3.16.0 3.35.0-beta2 3.16.0-beta3 3.35.0-beta3 3.16.0-beta4 3.35.0-beta4 3.16.0-dev1 3.35.0-dev1 3.16.0-dev2 3.35.0-dev2 3.16.1 3.35.0-dev3 3.16.2 3.35.0-dev4 3.16.3 3.35.1 3.16.4 3.35.2 3.16.5 3.35.3 3.16.6 3.35.4 3.17.0 3.35.5 3.17.0-dev2 3.35.6 3.17.0-dev3 3.35.7 3.17.0-dev4 3.35.8 3.17.1 3.35.9 3.17.2 3.4.0 3.17.3 3.4.0-dev7 3.18.0 3.4.0-dev8 3.18.0-beta1 3.4.0-dev9 3.18.0-beta2 3.4.1 3.18.0-beta3 3.4.2 3.18.0-beta4 3.4.3 3.18.0-dev1 3.4.4 3.18.1 3.4.5 3.18.2 3.4.6 3.18.3 3.4.7 3.19.0 3.4.8 3.19.0-beta1 3.5.0 3.19.0-beta2 3.5.0-beta1 3.19.0-beta3 3.5.0-beta2 3.19.0-beta4 3.5.0-beta3 3.19.0-beta5 3.5.0-beta4 3.19.0-beta6 3.5.0-beta5 3.19.0-dev1 3.5.0-beta7 3.19.0-dev2 3.5.0-beta8 3.19.0-dev3 3.5.0-dev8 3.19.0-dev4 3.5.0-dev9 3.19.0-dev5 3.5.1 3.19.0-dev6 3.5.2 3.19.1 3.5.3 3.19.2 3.5.4 3.19.3 3.5.5 3.19.4 3.5.6 3.2.0 3.6.0 3.2.1 3.6.0-beta1 3.2.2 3.6.0-beta2 3.2.3 3.6.0-beta3 3.2.4 3.6.0-beta4 3.2.5 3.6.0-beta5 3.20.0 3.6.0-dev1 3.20.0-beta1 3.6.0-dev10 3.20.0-beta2 3.6.1 3.20.0-beta3 3.6.2 3.20.0-beta4 3.6.3 3.20.0-dev1 3.6.4 3.20.0-dev2 3.6.5 3.20.0-dev3 3.6.6 3.20.0-dev4 3.6.7 3.20.1 3.6.8 3.20.2 3.7.0 3.20.3 3.7.0-beta1 3.20.4 3.7.0-beta2 3.21.0 3.7.0-beta3 3.21.0-beta1 3.7.0-beta4 3.21.0-beta2 3.7.0-dev1 3.21.0-beta3 3.7.1 3.21.0-dev1 3.7.2 3.21.0-dev2 3.7.3 3.21.0-dev3 3.7.4 3.21.1 3.7.5 3.21.2 3.7.6 3.21.3 3.7.7 3.21.4 3.7.8 3.21.5 3.8.0 3.21.6 3.8.0-beta1 3.21.7 3.8.0-beta2 3.21.8 3.8.0-beta3 3.22.0 3.8.1 3.22.0-beta1 3.9.0 3.22.0-beta2 3.9.1 3.22.0-beta3 3.9.2 3.22.0-beta4 4.0.0 3.22.0-beta5 4.0.0-beta1 3.22.0-beta6 4.0.0-beta2
elementor / modules / admin-bar / module.php
elementor / modules / admin-bar Last commit date
module.php 3 years ago
module.php
144 lines
1 <?php
2 namespace Elementor\Modules\AdminBar;
3
4 use Elementor\Core\Base\Document;
5 use Elementor\Core\Base\App as BaseApp;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 class Module extends BaseApp {
12 /**
13 * @var Document[]
14 */
15 private $documents = [];
16
17 /**
18 * @return bool
19 */
20 public static function is_active() {
21 return is_admin_bar_showing();
22 }
23
24 /**
25 * @return string
26 */
27 public function get_name() {
28 return 'admin-bar';
29 }
30
31 /**
32 * Collect the documents that was rendered in the current page.
33 *
34 * @param Document $document
35 * @param $is_excerpt
36 */
37 public function add_document_to_admin_bar( Document $document, $is_excerpt ) {
38 if (
39 $is_excerpt ||
40 ! $document::get_property( 'show_on_admin_bar' ) ||
41 ! $document->is_editable_by_current_user()
42 ) {
43 return;
44 }
45
46 $this->documents[ $document->get_main_id() ] = $document;
47 }
48
49 /**
50 * Scripts for module.
51 */
52 public function enqueue_scripts() {
53 if ( empty( $this->documents ) ) {
54 return;
55 }
56
57 // Should load 'elementor-admin-bar' before 'admin-bar'
58 wp_dequeue_script( 'admin-bar' );
59
60 wp_enqueue_script(
61 'elementor-admin-bar',
62 $this->get_js_assets_url( 'elementor-admin-bar' ),
63 [ 'elementor-frontend-modules' ],
64 ELEMENTOR_VERSION,
65 true
66 );
67
68 // This is a core script of WordPress, it is not required to pass the 'ver' argument.
69 wp_enqueue_script( // phpcs:ignore WordPress.WP.EnqueuedResourceParameters
70 'admin-bar',
71 null,
72 [ 'elementor-admin-bar' ],
73 false,
74 true
75 );
76
77 $this->print_config( 'elementor-admin-bar' );
78 }
79
80 /**
81 * Creates admin bar menu items config.
82 *
83 * @return array
84 */
85 public function get_init_settings() {
86 $settings = [];
87
88 if ( ! empty( $this->documents ) ) {
89 $settings['elementor_edit_page'] = $this->get_edit_button_config();
90 }
91
92 /**
93 * Admin bar settings in the frontend.
94 *
95 * Register admin_bar config to parse later in the frontend and add to the admin bar with JS.
96 *
97 * @since 3.0.0
98 *
99 * @param array $settings the admin_bar config
100 */
101 $settings = apply_filters( 'elementor/frontend/admin_bar/settings', $settings );
102
103 return $settings;
104 }
105
106 /**
107 * Creates the config for 'Edit with elementor' menu item.
108 *
109 * @return array
110 */
111 private function get_edit_button_config() {
112 $queried_object_id = get_queried_object_id();
113 $href = null;
114
115 if ( is_singular() && isset( $this->documents[ $queried_object_id ] ) ) {
116 $href = $this->documents[ $queried_object_id ]->get_edit_url();
117
118 unset( $this->documents[ $queried_object_id ] );
119 }
120
121 return [
122 'id' => 'elementor_edit_page',
123 'title' => esc_html__( 'Edit with Elementor', 'elementor' ),
124 'href' => $href,
125 'children' => array_map( function ( $document ) {
126 return [
127 'id' => "elementor_edit_doc_{$document->get_main_id()}",
128 'title' => $document->get_post()->post_title,
129 'sub_title' => $document::get_title(),
130 'href' => $document->get_edit_url(),
131 ];
132 }, $this->documents ),
133 ];
134 }
135
136 /**
137 * Module constructor.
138 */
139 public function __construct() {
140 add_action( 'elementor/frontend/before_get_builder_content', [ $this, 'add_document_to_admin_bar' ], 10, 2 );
141 add_action( 'wp_footer', [ $this, 'enqueue_scripts' ], 11 /* after third party scripts */ );
142 }
143 }
144