PluginProbe
QuadMenu – Mega Menu / 2.0.5
QuadMenu – Mega Menu v2.0.5
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 2.0.7 All 87 releases
quadmenu / includes / backend / walker / columns.php

columns.php in QuadMenu – Mega Menu 2.0.5, at includes/backend/walker/columns.php

252 lines 12.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if (!defined('ABSPATH')) {
3 die('-1');
4 }
5
6 class QuadMenu_Nav_Menu_Column extends QuadMenu_Settings {
7
8 public function __construct() {
9 add_filter('quadmenu_edit_nav_menu_walker', array($this, 'add_nav_menu_item_column'), 10, 3);
10 }
11
12 function add_nav_menu_item_column($walker_class_name, $menu_id = null, $menu_obj = null, $menu_items = null) {
13
14 if (!empty($menu_obj->menu_item_parent) && !empty($menu_obj->quadmenu) && $menu_obj->quadmenu === 'column') {
15 return __CLASS__;
16 }
17
18 return $walker_class_name;
19 }
20
21 public function walk($elements, $max_depth) {
22
23 $output = '';
24
25 foreach ($elements as $e) {
26
27 $output .= $this->column($e);
28 }
29
30 return $output;
31
32 wp_die();
33 }
34
35 public function column($column_obj, $menu_id = 0) {
36
37 ob_start();
38 ?>
39 <div id="column_<?php echo esc_attr($column_obj->ID); ?>" class="quadmenu-column quadmenu-item-depth-2 <?php echo join(' ', array_map('sanitize_html_class', $column_obj->columns)); ?>" data-columns="<?php echo join(' ', array_map('sanitize_html_class', $column_obj->columns)); ?>" data-menu_item_id="<?php echo esc_attr($column_obj->ID); ?>">
40 <div class="inner">
41 <div class="action-top clearfix">
42 <div class="actions">
43 <!--<a class="option contract" title="<?php echo esc_attr(esc_html__('Contract', 'quadmenu')); ?>"></a>
44 <a class="option expand" title="<?php echo esc_attr(esc_html__('Expand', 'quadmenu')); ?>"></a>-->
45 <a class="option edit" title="<?php esc_html_e('Edit', 'quadmenu'); ?>"></a>
46 <a class="option remove" title="<?php esc_html_e('Remove', 'quadmenu'); ?>"></a>
47 <span class="spinner"></span>
48 </div>
49 </div>
50 <div class="settings">
51 <?php echo $this->form($column_obj, 1, array('columns')); ?>
52 </div>
53 <ul id="quadmenu-column-items-<?php echo esc_attr($column_obj->ID); ?>" class="items add-quadmenu-column-item sortable-area" data-sortable-items=".quadmenu-column-item" data-sortable-handle=".action-top" data-sortable-connect=".items" data-menu_item_parent_id="<?php echo esc_attr($column_obj->ID); ?>">
54 <?php
55 $items = $this->get_children_nav_menu_items($menu_id, $column_obj->ID);
56
57 if (is_array($items) && count($items)) :
58 foreach ($items as $item):
59
60 $menu_obj = QuadMenu::wp_setup_nav_menu_item($item['id']);
61
62 $walker_class_name = apply_filters('quadmenu_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', null, $menu_obj, null);
63
64 require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
65
66 if (class_exists($walker_class_name)) {
67
68 $args = array(
69 'after' => '',
70 'before' => '',
71 'link_after' => '',
72 'link_before' => '',
73 'walker' => new $walker_class_name,
74 );
75
76 echo walk_nav_menu_tree(array($menu_obj), 0, (object) $args);
77 }
78
79 endforeach;
80 endif;
81 ?>
82 </ul>
83
84 </div>
85 </div>
86 <?php
87 return ob_get_clean();
88 }
89
90 public function columns($menu_obj, $menu_id = 0) {
91
92 $columns = $this->get_children_nav_menu_items($menu_id, $menu_obj->ID);
93
94 ob_start();
95
96 $w4 = array(
97 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-4')),
98 );
99
100 $w12 = array(
101 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-12')),
102 );
103
104 $w6w6 = array(
105 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-6')),
106 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-6')),
107 );
108
109 $w4w4w4 = array(
110 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-4')),
111 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-4')),
112 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-4')),
113 );
114
115 $w3w3w3w3 = array(
116 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
117 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
118 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
119 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
120 );
121
122 $w2w2w2w2w2w2 = array(
123 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
124 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
125 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
126 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
127 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
128 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
129 );
130
131 $w4w8 = array(
132 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-4')),
133 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-8')),
134 );
135
136 $w3w6w3 = array(
137 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
138 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-6')),
139 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-3')),
140 );
141
142 $w2w10 = array(
143 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
144 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-10')),
145 );
146
147 $w2w8w2 = array(
148 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
149 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-8')),
150 array('quadmenu' => 'column', 'columns' => array('col-xs-12', 'col-sm-2')),
151 );
152 ?>
153 <div id="columns_<?php echo esc_attr($menu_obj->ID); ?>" class="quadmenu-columns sortable-area row" data-drop-area="drop-column" data-sortable-items=".quadmenu-column" data-sortable-handle=".action-top" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
154 <ul role="tablist">
155 <span class="spinner"></span>
156 <li>
157 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w4), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
158 </a>
159 </li>
160 <li>
161 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w12), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
162 <div class="col col-auto">
163 </div>
164 </a>
165 </li>
166 <li>
167 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w6w6), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
168 <div class="col col-auto"></div>
169 <div class="col col-auto"></div>
170 </a>
171 </li>
172 <li>
173 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w4w4w4), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
174 <div class="col col-auto"></div>
175 <div class="col col-auto"></div>
176 <div class="col col-auto"></div>
177 </a>
178 </li>
179 <li>
180 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w3w3w3w3), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
181 <div class="col col-auto"></div>
182 <div class="col col-auto"></div>
183 <div class="col col-auto"></div>
184 <div class="col col-auto"></div>
185 </a>
186 </li>
187 <li>
188 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w2w2w2w2w2w2), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
189 <div class="col col-auto"></div>
190 <div class="col col-auto"></div>
191 <div class="col col-auto"></div>
192 <div class="col col-auto"></div>
193 <div class="col col-auto"></div>
194 <div class="col col-auto"></div>
195 </a>
196 </li>
197 <li>
198 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w4w8), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
199 <div class="col col-4"></div>
200 <div class="col col-8"></div>
201 </a>
202 </li>
203 <li>
204 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w3w6w3), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
205 <div class="col col-3"></div>
206 <div class="col col-6"></div>
207 <div class="col col-3"></div>
208 </a>
209 </li>
210 <li>
211 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w2w10), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
212 <div class="col col-2"></div>
213 <div class="col col-10"></div>
214 </a>
215 </li>
216 <li>
217 <a href="#" class="submit-add-to-quadmenu-column" data-menu_item_type="custom" data-menu_item_quadmenu="<?php echo htmlspecialchars(json_encode($w2w8w2), ENT_QUOTES, 'UTF-8'); ?>" data-menu_item_url="#column" data-menu_item_title="<?php esc_html_e('Column', 'quadmenu'); ?>" data-menu_item_parent=".quadmenu-columns" data-menu_item_parent_id="<?php echo esc_attr($menu_obj->ID); ?>">
218 <div class="col col-2"></div>
219 <div class="col col-8"></div>
220 <div class="col col-2"></div>
221 </a>
222 </li>
223 </ul>
224 <?php
225 if (is_array($columns) && count($columns)) :
226 foreach ($columns as $column):
227
228 $column_obj = get_post($column['id']);
229
230
231 $column_obj = QuadMenu::wp_setup_nav_menu_item($column['id']);
232
233
234 if (!isset($column_obj->quadmenu) || $column_obj->quadmenu != 'column') {
235 continue;
236 }
237
238 echo $this->column($column_obj, $menu_id);
239
240 endforeach;
241 endif;
242 ?>
243 </div>
244 <?php
245 return ob_get_clean();
246 }
247
248 }
249
250 new QuadMenu_Nav_Menu_Column();
251
252