PluginProbe
QuadMenu – Mega Menu / 3.3.8
QuadMenu – Mega Menu v3.3.8
3.3.8 3.3.7 3.3.6 trunk 1.8.4 1.8.5 1.8.7 1.8.8 1.8.9 1.9.0 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 88 releases
quadmenu / lib / frontend / walker / class-quadmenu-item-widget.php

class-quadmenu-item-widget.php in QuadMenu – Mega Menu 3.3.8, at lib/frontend/walker/class-quadmenu-item-widget.php

94 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace QuadLayers\QuadMenu\Frontend\Walker;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 die( '-1' );
6 }
7 use QuadLayers\QuadMenu\Frontend\Walker\QuadMenu_Item;
8
9 /**
10 * QuadMenuItemWidget Class
11 */
12 class QuadMenu_Item_Widget extends QuadMenu_Item {
13
14 protected $type = 'widget';
15
16 function get_start_el() {
17
18 $item_output = '';
19
20 $this->add_item_classes();
21
22 $this->add_item_classes_prefix();
23
24 $this->add_item_classes_widget();
25
26 $id = $this->get_item_id();
27
28 $class = $this->get_item_classes();
29
30 $item_output .= '<li' . $id . $class . '>';
31
32 $item_output .= $this->widget( $this->item->widget_id );
33
34 return $item_output;
35 }
36
37 function add_item_classes_widget() {
38
39 $this->item_classes = array_diff( $this->item_classes, array( 'quadmenu-item-type-custom' ) );
40
41 $this->item_classes[] = 'quadmenu-item-type-' . $this->item->quadmenu;
42 }
43
44 public function widget( $id ) {
45
46 if ( $this->depth > 0 ) {
47
48 global $wp_registered_widgets;
49
50 if ( ! isset( $wp_registered_widgets[ $id ] ) ) {
51 ob_start();
52 ?>
53 <div class="quadmenu-alert">
54 <?php printf( esc_html__( 'Widget %s dosen\'t exists', 'quadmenu' ), $id ); ?>
55 </div>
56 <?php
57 return ob_get_clean();
58 }
59
60 $params = array_merge(
61 array(
62 array_merge(
63 array(
64 'widget_id' => $id,
65 'widget_name' => $wp_registered_widgets[ $id ]['name'],
66 )
67 ),
68 ),
69 (array) $wp_registered_widgets[ $id ]['params']
70 );
71
72 $params[0]['name'] = esc_html__( 'QuadMenu Widgets', 'quadmenu' );
73 $params[0]['id'] = 'quadmenu-widgets';
74 $params[0]['description'] = esc_html__( 'Do not manually edit this sidebar.', 'quadmenu' );
75 $params[0]['before_title'] = apply_filters( 'quadmenu_before_widget_title', '<span class="quadmenu-title">', $wp_registered_widgets[ $id ] );
76 $params[0]['after_title'] = apply_filters( 'quadmenu_after_widget_title', '</span>', $wp_registered_widgets[ $id ] );
77 $params[0]['before_widget'] = apply_filters( 'quadmenu_before_widget', '', $wp_registered_widgets[ $id ] );
78 $params[0]['after_widget'] = apply_filters( 'quadmenu_after_widget', '', $wp_registered_widgets[ $id ] );
79
80 $callback = $wp_registered_widgets[ $id ]['callback'];
81
82 if ( is_callable( $callback ) ) {
83 ob_start();
84 ?>
85 <div class="quadmenu-item-widget widget <?php echo esc_attr( $wp_registered_widgets[ $id ]['classname'] ); ?>">
86 <?php call_user_func_array( $callback, $params ); ?>
87 </div>
88 <?php
89 return ob_get_clean();
90 }
91 }
92 }
93 }
94