PluginProbe
QuadMenu – Mega Menu / 2.0.7
QuadMenu – Mega Menu v2.0.7
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 / 3rd / beaver / module.php

module.php in QuadMenu – Mega Menu 2.0.7, at includes/3rd/beaver/module.php

291 lines 13.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (class_exists('FLBuilderModule')) {
4
5 class FLQuadMenuModule extends FLBuilderModule {
6
7 public static $fl_builder_page_id;
8
9 public function __construct() {
10 parent::__construct(array(
11 'name' => __('QuadMenu', 'quadmenu'),
12 'description' => __('Renders a WordPress menu.', 'quadmenu'),
13 'category' => __('Actions', 'quadmenu'),
14 'partial_refresh' => true,
15 'editor_export' => false,
16 'icon' => 'hamburger-menu.svg',
17 ));
18
19 add_action('pre_get_posts', __CLASS__ . '::set_pre_get_posts_query', 10, 2);
20 }
21
22 static public function get_attachment_data($id) {
23 $data = wp_prepare_attachment_for_js($id);
24
25 if (gettype($data) == 'array') {
26 return json_decode(json_encode($data));
27 }
28
29 return $data;
30 }
31
32 public static function _get_menus() {
33 $get_menus = get_terms('nav_menu', array(
34 'hide_empty' => true,
35 ));
36 $fields = array(
37 'type' => 'select',
38 'label' => __('Menu', 'quadmenu'),
39 'helper' => __('Select a WordPress menu that you created in the admin under Appearance > Menus.', 'quadmenu'),
40 );
41
42 if ($get_menus) {
43
44 foreach ($get_menus as $key => $menu) {
45
46 if (0 == $key) {
47 $fields['default'] = $menu->name;
48 }
49
50 $menus[$menu->slug] = $menu->name;
51 }
52
53 $fields['options'] = $menus;
54 } else {
55 $fields['options'] = array(
56 '' => __('No Menus Found', 'quadmenu'),
57 );
58 }
59
60 return $fields;
61 }
62
63 public static function set_pre_get_posts_query($query) {
64 if (!is_admin() && $query->is_main_query()) {
65
66 if ($query->queried_object_id) {
67
68 self::$fl_builder_page_id = $query->queried_object_id;
69
70 // Fix when menu module is rendered via hook
71 } elseif (isset($query->query_vars['page_id']) && 0 != $query->query_vars['page_id']) {
72
73 self::$fl_builder_page_id = $query->query_vars['page_id'];
74 }
75 }
76 }
77
78 }
79
80 FLBuilder::register_module('FLQuadMenuModule', array(
81 'general' => array(// Tab
82 'title' => __('General', 'quadmenu'), // Tab title
83 'sections' => array(// Tab Sections
84 'general' => array(// Section
85 'title' => '', // Section Title
86 'fields' => array(// Section Fields
87 'menu' => FLQuadMenuModule::_get_menus(),
88 'layout' => array(
89 'type' => 'select',
90 'label' => __('Layout', 'quadmenu'),
91 'default' => 'collapse',
92 'options' => array(
93 //'embed' => esc_html__('Embed', 'quadmenu'),
94 'collapse' => esc_html__('Collapse', 'quadmenu'),
95 'offcanvas' => esc_html__('Offcanvas', 'quadmenu'),
96 //'vertical' => esc_html__('Vertical', 'quadmenu'),
97 'inherit' => esc_html__('Inherit', 'quadmenu'),
98 ),
99 ),
100 'theme' => array(
101 'type' => 'select',
102 'label' => __('Theme', 'quadmenu'),
103 'default' => 'default_theme',
104 'options' => $GLOBALS['quadmenu_themes'],
105 ),
106 ),
107 ),
108 'layout' => array(
109 'title' => __('Layout', 'quadmenu'),
110 'fields' => array(
111 'navbar_logo' => array(
112 'type' => 'photo',
113 'label' => esc_html__('Logo', 'quadmenu'),
114 'connections' => array('photo'),
115 'show_remove' => true,
116 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png'
117 ),
118 /*'navbar_logo_height' => array(
119 'type' => 'number',
120 'label' => esc_html__('Height', 'quadmenu'),
121 'description' => esc_html__('Max logo height in px.', 'quadmenu'),
122 'required' => array(
123 array('layout', '=', array('collapse', 'offcanvas', 'vertical', 'inherit')),
124 ),
125 'default' => QUADMENU_PLUGIN_URL . 'assets/frontend/images/logo.png'
126 ),*/
127 'layout_align' => array(
128 'customizer' => true,
129 'transport' => 'selective',
130 'id' => 'layout_align',
131 'type' => 'select',
132 'label' => esc_html__('Align', 'quadmenu'),
133 'subtitle' => esc_html__('Menu items alignment.', 'quadmenu'),
134 'options' => array(
135 'left' => esc_html__('Left', 'quadmenu'),
136 'center' => esc_html__('Center', 'quadmenu'),
137 'right' => esc_html__('Right', 'quadmenu'),
138 ),
139 'required' => array(
140 array('layout', '=', array('embed', 'collapse', 'offcanvas')),
141 ),
142 'default' => 'left',
143 ),
144 // Behaviour
145 // ---------------------------------------------------------
146 'layout_breakpoint' => array(
147 'type' => 'text',
148 'label' => esc_html__('Breakpoint', 'quadmenu'),
149 'default' => '768',
150 'maxlength' => '4',
151 'size' => '4',
152 'description' => 'px',
153 'preview' => array(
154 //'type' => 'css',
155 //'selector' => '.menu',
156 //'property' => 'font-size',
157 'unit' => 'px',
158 ),
159 ),
160 'layout_width' => array(
161 'type' => 'select',
162 'label' => esc_html__('Width', 'quadmenu'),
163 'description' => esc_html__('Try to force menu width to fit screen.', 'quadmenu'),
164 'options' => array(
165 'yes' => esc_html__('Yes', 'quadmenu'),
166 'false' => esc_html__('No', 'quadmenu'),
167 ),
168 'required' => array(
169 array('layout', '=', array('collapse', 'offcanvas')),
170 ),
171 'default' => 'false',
172 ),
173 'layout_width_inner' => array(
174 'type' => 'select',
175 'label' => esc_html__('Inner', 'quadmenu'),
176 'options' => array(
177 'yes' => esc_html__('Yes', 'quadmenu'),
178 'false' => esc_html__('No', 'quadmenu'),
179 ),
180 'required' => array(
181 array('layout', '=', array('collapse', 'offcanvas')),
182 ),
183 'default' => 'false',
184 ),
185 'layout_width_inner_selector' => array(
186 'type' => 'text',
187 'label' => esc_html__('Selector', 'quadmenu'),
188 'description' => esc_html__('The menu container will take the width of this selector.', 'quadmenu'),
189 'default' => '.container',
190 'required' => array(
191 array('layout', '=', array('collapse', 'offcanvas')),
192 ),
193 'required' => array(
194 array('layout_width_inner', '=', 1),
195 ),
196 ),
197 'layout_lazyload' => array(
198 'type' => 'select',
199 'label' => esc_html__('Lazyload', 'quadmenu'),
200 'options' => array(
201 'yes' => esc_html__('Yes', 'quadmenu'),
202 'false' => esc_html__('No', 'quadmenu'),
203 ),
204 'default' => 'false',
205 'description' => esc_html__('This is a beta function, please test it carefully.', 'quadmenu'),
206 ),
207 'layout_current' => array(
208 'type' => 'select',
209 'label' => esc_html__('Open', 'quadmenu'),
210 'options' => array(
211 'yes' => esc_html__('Yes', 'quadmenu'),
212 'false' => esc_html__('No', 'quadmenu'),
213 ),
214 'default' => 'false',
215 'description' => esc_html__('Open dropdown if is current page.', 'quadmenu'),
216 ),
217 'layout_divider' => array(
218 'type' => 'select',
219 'label' => esc_html__('Divider', 'quadmenu'),
220 'description' => esc_html__('Show a small divider bar between each menu item.', 'quadmenu'),
221 'options' => array(
222 'show' => esc_html__('Show', 'quadmenu'),
223 'hide' => esc_html__('Hide', 'quadmenu')
224 ),
225 'required' => array(
226 array('layout', '=', array('embed', 'collapse', 'offcanvas')),
227 ),
228 'default' => 'hide',
229 ),
230 'layout_caret' => array(
231 'type' => 'select',
232 'label' => esc_html__('Caret', 'quadmenu'),
233 'description' => esc_html__('Show carets on items with dropdown menus.', 'quadmenu'),
234 'options' => array(
235 'show' => esc_html__('Show', 'quadmenu'),
236 'hide' => esc_html__('Hide', 'quadmenu')
237 ),
238 'required' => array(
239 array('layout', '=', array('embed', 'collapse', 'offcanvas')),
240 ),
241 'default' => 'hide',
242 ),
243 'layout_classes' => array(
244 'type' => 'text',
245 'label' => esc_html__('Classes', 'quadmenu'),
246 'default' => '',
247 ),
248 ),
249 ),
250 ),
251 ),
252 // Dropdown
253 // ---------------------------------------------------------
254 'dropdown' => array(// Tab
255 'title' => __('Dropdown', 'quadmenu'), // Tab title
256 'sections' => array(// Tab Sections
257 'general_style' => array(
258 'title' => '',
259 'fields' => array(
260 'layout_trigger' => array(
261 'type' => 'select',
262 'label' => esc_html__('Trigger', 'quadmenu'),
263 'options' => array(
264 'hoverintent' => esc_html__('Hover', 'quadmenu'),
265 'click' => esc_html__('Click', 'quadmenu')
266 ),
267 'subtitle' => esc_html__('Open dropdown menu on mouseover or click.', 'quadmenu'),
268 'default' => 'hoverintent',
269 'required' => array(
270 array('layout', '=', array('embed', 'collapse', 'offcanvas')),
271 ),
272 ),
273 'layout_dropdown_maxheight' => array(
274 'type' => 'select',
275 'label' => esc_html__('Max Height', 'quadmenu'),
276 'subtitle' => esc_html__('Set the max height of dropdowns.', 'quadmenu'),
277 'options' => array(
278 'yes' => esc_html__('Yes', 'quadmenu'),
279 'false' => esc_html__('No', 'quadmenu'),
280 ),
281 'default' => 'false',
282 'required' => array(
283 array('layout', '=', array('embed', 'collapse', 'offcanvas')),
284 ),
285 ),
286 ),
287 ),
288 ),
289 ),
290 ));
291 }