PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.0-dev4
Elementor Website Builder – more than just a page builder v4.0.0-dev4
4.3.0-beta3 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 All 452 releases
← All changes | modules/editor-one/classes/menu-data-provider.php +4 -39 4.2.44.0.0-dev4 View file →
@@ -4,11 +4,9 @@
4 4
5 5 use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_Interface;
6 6 use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_Third_Level_Interface;
7 7 use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_With_Custom_Url_Interface;
8 -use Elementor\Core\Admin\EditorOneMenu\Interfaces\Menu_Item_With_Event_Id_Interface;
9 8 use Elementor\Plugin;
10 -use Elementor\Utils;
11 9
12 10 if ( ! defined( 'ABSPATH' ) ) {
13 11 exit;
14 12 }
@@ -289,24 +287,19 @@
289 287 } ) );
290 288 }
291 289
292 290 private function build_level3_flyout_items(): array {
293 - return $this->build_flyout_items( false, Menu_Config::get_excluded_level3_slugs() );
291 + return $this->build_flyout_items( false );
294 292 }
295 293
296 294 private function build_flyout_items_with_expanded_third_party(): array {
297 - return $this->build_flyout_items(
298 - true,
299 - array_merge(
300 - Menu_Config::get_excluded_level3_slugs(),
301 - Menu_Config::get_excluded_flyout_menu_level3_slugs()
302 - )
303 - );
295 + return $this->build_flyout_items( true );
304 296 }
305 297
306 - private function build_flyout_items( bool $expand_third_party, array $excluded_slugs ): array {
298 + private function build_flyout_items( bool $expand_third_party ): array {
307 299 $items = [];
308 300 $existing_slugs = [];
301 + $excluded_slugs = Menu_Config::get_excluded_level3_slugs();
309 302 $excluded_level4_slugs = $expand_third_party ? Menu_Config::get_excluded_level4_slugs() : [];
310 303
311 304 foreach ( $this->level3_items as $group_items ) {
312 305 foreach ( $group_items as $item_slug => $item ) {
@@ -370,9 +363,8 @@
370 363 'url' => $url,
371 364 'group_id' => '',
372 365 'priority' => $this->get_item_priority( $item ),
373 366 'has_divider_before' => $is_first,
374 - 'event_id' => $this->resolve_event_id( $item, $item_slug ),
375 367 ];
376 368 }
377 369
378 370 private function should_include_flyout_item( Menu_Item_Interface $item, string $item_slug, array $existing_slugs, array $excluded_slugs ): bool {
@@ -407,9 +399,8 @@
407 399 'icon' => $item->get_icon(),
408 400 'group_id' => $group_id,
409 401 'priority' => $this->get_item_priority( $item ),
410 402 'has_divider_before' => $is_third_party_parent,
411 - 'event_id' => $this->resolve_event_id( $item, $item_slug ),
412 403 ];
413 404 }
414 405
415 406 private function resolve_flyout_item_url( Menu_Item_Interface $item, string $item_slug ): string {
@@ -483,9 +474,8 @@
483 474 'slug' => $item_slug,
484 475 'label' => $this->title_case( $item->get_label() ),
485 476 'url' => $url,
486 477 'priority' => $this->get_item_priority( $item ),
487 - 'event_id' => $this->resolve_event_id( $item, $item_slug ),
488 478 ];
489 479
490 480 $existing_labels[] = $label_lower;
491 481 }
@@ -541,33 +531,8 @@
541 531 private function sort_items_by_priority( array &$items ): void {
542 532 usort( $items, function ( array $a, array $b ): int {
543 533 return ( $a['priority'] ?? 100 ) <=> ( $b['priority'] ?? 100 );
544 534 } );
545 - }
546 -
547 - private function resolve_event_id( Menu_Item_Interface $item, string $item_slug ): string {
548 - if ( $item instanceof Menu_Item_With_Event_Id_Interface ) {
549 - return $item->get_event_id();
550 - }
551 -
552 - return $this->derive_event_id_from_slug( $item_slug );
553 - }
554 -
555 - private function derive_event_id_from_slug( string $slug ): string {
556 - $slug_event_map = [
557 - 'edit.php?post_type=elementor_library' => 'saved_templates',
558 - 'elementor-app' => 'theme_builder',
559 - ];
560 -
561 - if ( isset( $slug_event_map[ $slug ] ) ) {
562 - return $slug_event_map[ $slug ];
563 - }
564 -
565 - $event_id = preg_replace( '/^elementor-/', '', $slug );
566 - $event_id = preg_replace( '/[?#].*$/', '', $event_id );
567 - $event_id = str_replace( [ '-', ' ' ], '_', $event_id );
568 -
569 - return strtolower( $event_id );
570 535 }
571 536
572 537 private function title_case( string $text ): string {
573 538 if ( function_exists( 'mb_convert_case' ) ) {