PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.1.3
Adminify – White Label, Admin Menu Editor, Login Customizer v4.1.3
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Admin / Options / MenuLayout.php

MenuLayout.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.1.3, at Inc/Admin/Options/MenuLayout.php

555 lines 19.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Admin\Options;
4
5 use WPAdminify\Inc\Utils;
6 use WPAdminify\Inc\Admin\AdminSettingsModel;
7 use WPAdminify\Inc\Modules\MenuEditor\MenuEditor;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 die;
11 } // Cannot access directly.
12
13
14
15 class MenuLayout extends AdminSettingsModel {
16
17 public function __construct() {
18 $this->menu_layout_settings();
19 }
20
21
22 public function get_defaults() {
23 return [
24 'menu_layout_settings' => [
25 'layout_type' => 'vertical',
26 'menu_hover_submenu' => 'two_step',
27 'icon_style' => 'classic',
28 'menu_mode' => 'classic',
29 'horz_menu_type' => 'both',
30 'horz_dropdown_icon' => true,
31 'horz_toplinks' => false,
32 'horz_bubble_icon_hide' => false,
33 // 'horz_long_menu_break' => true,
34 'menu_styles' => [
35 'menu_typography' => [
36 'font-family' => 'Nunito Sans',
37 'type' => 'google',
38 ],
39 'menu_width' => '',
40 'menu_wrapper_padding' => '',
41 'menu_vertical_padding' => '',
42 'horz_menu_parent_padding' => '',
43 'submenu_wrapper_padding' => '',
44 'submenu_vertical_space' => '',
45 'parent_menu_colors' => [
46 'wrap_bg' => '',
47 'hover_bg' => '',
48 'text_color' => '',
49 'text_hover' => '',
50 'active_color' => '',
51 ],
52 'sub_menu_colors' => [
53 'wrap_bg' => '',
54 'hover_bg' => '',
55 'text_color' => '',
56 'text_hover' => '',
57 'active_bg' => '',
58 'active_color' => '',
59 ],
60 'notif_colors' => [
61 'notif_bg' => '',
62 'notif_color' => '',
63 ],
64 ],
65 'user_info_fields' => [
66 'enable_user_info' => false,
67 'user_info_content' => 'text',
68 'user_info_avatar' => 'rounded',
69 ],
70 'user_info_style' => [
71 'info_text_color' => '',
72 'info_text_hover_color' => '',
73 'info_text_border' => '',
74 'info_icon_color' => '',
75 'info_icon_hover_color' => '',
76 ],
77 ],
78
79 ];
80 }
81
82
83 public function menu_layout_settings_tab( &$settings_tab ) {
84 $settings_tab[] = [
85 'id' => 'layout_type',
86 'type' => 'button_set',
87 'title' => __( 'Menu Type', 'adminify' ),
88 'options' => [
89 'vertical' => __( 'Vertical Menu', 'adminify' ),
90 'horizontal' => __( 'Horizontal Menu', 'adminify' ),
91 ],
92 'default' => $this->get_default_field( 'menu_layout_settings' )['layout_type'],
93 ];
94
95 $settings_tab[] = [
96 'id' => 'horizontal_menu_id_notice',
97 'type' => 'notice',
98 'style' => 'warning',
99 'class' => 'adminify-one-col',
100 'content' => Utils::adminify_upgrade_pro( 'Horizontal Menu Requires "Adminify UI" Enabled from "Customize" Tab ' ),
101 'dependency' => [ 'admin_ui|layout_type', '!=|==', 'true|horizontal', 'true' ],
102 ];
103
104 $settings_tab[] = [
105 'id' => 'menu_mode',
106 'type' => 'button_set',
107 'title' => __( 'Menu Mode', 'adminify' ),
108 'options' => [
109 'classic' => __( 'Default', 'adminify' ),
110 'icon_menu' => __( 'Folded', 'adminify' ),
111 'rounded' => __( 'Rounded', 'adminify' ),
112 ],
113 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_mode'],
114 'dependency' => [ 'layout_type', '==', 'vertical', 'true' ],
115 ];
116
117 $settings_tab[] = [
118 'id' => 'rounded_menu_notice',
119 'type' => 'notice',
120 'style' => 'warning',
121 'class' => 'adminify-one-col',
122 'content' => Utils::adminify_upgrade_pro( 'Rounded Menu Mode Requires "Adminify UI" Module Enabled from "WP Adminify>Customize" Menu ' ),
123 'dependency' => [ 'admin_ui|layout_type|menu_mode', '!=|==|==', 'true|vertical|rounded', 'true' ],
124 ];
125
126 $settings_tab[] = [
127 'id' => 'icon_style',
128 'type' => 'button_set',
129 'title' => __( 'Icon Style', 'adminify' ),
130 'options' => [
131 'classic' => __( 'Default', 'adminify' ),
132 'rounded' => __( 'Rounded', 'adminify' ),
133 ],
134 'dependency' => [ 'admin_ui|layout_type|menu_mode', '==|==|==', 'true|vertical|icon_menu', 'true' ],
135 'default' => $this->get_default_field( 'menu_layout_settings' )['icon_style'],
136 ];
137
138 $settings_tab[] = [
139 'id' => 'menu_hover_submenu',
140 'type' => 'button_set',
141 'title' => __( 'Sub Menu Style', 'adminify' ),
142 'options' => [
143 'two_step' => __( 'Two Step', 'adminify' ),
144 'accordion' => __( 'Accordion', 'adminify' ),
145 'toggle' => __( 'Toggle', 'adminify' ),
146 ],
147 'dependency' => [ 'layout_type', '==', 'vertical', 'true' ],
148 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_hover_submenu'],
149 ];
150
151 $settings_tab[] = [
152 'id' => 'two_step_menu_notice',
153 'type' => 'notice',
154 'style' => 'warning',
155 'class' => 'adminify-one-col',
156 'content' => Utils::adminify_upgrade_pro( 'Two Step Menu Requires "Adminify UI" Module Enabled from "WP Adminify>Customize" Menu ' ),
157 'dependency' => [ 'admin_ui|layout_type|menu_hover_submenu', '!=|==|==', 'true|vertical|two_step', 'true' ],
158 ];
159
160 $settings_tab[] = [
161 'id' => 'accordion_menu_notice',
162 'type' => 'notice',
163 'style' => 'warning',
164 'class' => 'adminify-one-col',
165 'content' => Utils::adminify_upgrade_pro( 'Accordion Menu Requires "Adminify UI" Module Enabled from "WP Adminify>Customize" Menu ' ),
166 'dependency' => [ 'admin_ui|layout_type|menu_hover_submenu', '!=|==|==', 'true|vertical|accordion', 'true' ],
167 ];
168
169 $settings_tab[] = [
170 'id' => 'toggle_menu_notice',
171 'type' => 'notice',
172 'style' => 'warning',
173 'class' => 'adminify-one-col',
174 'content' => Utils::adminify_upgrade_pro( 'Toggle Menu Requires "Adminify UI" Module Enabled from "WP Adminify>Customize" Menu ' ),
175 'dependency' => [ 'admin_ui|layout_type|menu_hover_submenu', '!=|==|==', 'true|vertical|toggle', 'true' ],
176 ];
177
178 // $settings_tab[] = [
179 // 'id' => 'horizontal_menu_notice',
180 // 'type' => 'notice',
181 // 'title' => __( 'Horizontal Menu', 'adminify' ),
182 // 'style' => 'warning',
183 // 'content' => Utils::adminify_upgrade_pro(),
184 // 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
185 // ];
186
187
188 $settings_tab[] = [
189 'id' => 'horizontal_menu_notice',
190 'type' => 'notice',
191 'style' => 'warning',
192 'title' => __( ' ', 'adminify' ),
193 // 'class' => 'adminify-one-col',
194 'content' => Utils::adminify_upgrade_pro( '<strong>Horizontal Menu is available in PRO version</strong>' ),
195 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
196 ];
197
198 $settings_tab[] = [
199 'id' => 'user_info_fields',
200 'type' => 'fieldset',
201 'title' => sprintf(__('User Info %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
202 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|vertical', 'true' ],
203 'fields' => [
204 [
205 'id' => 'enable_user_info', // user_info
206 'type' => 'switcher',
207 'class' => 'adminify-pt-0 adminify-pl-0 !adminify-flex adminify-pro-feature',
208 'label' => __( 'Show or Hide User Info with Avatar on Admin Menu', 'adminify' ),
209 'text_on' => __( 'Show', 'adminify' ),
210 'text_off' => __( 'Hide', 'adminify' ),
211 'text_width' => 100,
212 'default' => $this->get_default_field( 'menu_layout_settings' )['user_info_fields']['enable_user_info'],
213
214 ],
215 [
216 'id' => 'user_info_content',
217 'type' => 'button_set',
218 'class' => Utils::upgrade_pro_class(),
219 'title' => __( 'Content Type', 'adminify' ),
220 'options' => [
221 'text' => __( 'Text', 'adminify' ),
222 'icon' => __( 'Icon', 'adminify' ),
223 ],
224 'default' => $this->get_default_field( 'menu_layout_settings' )['user_info_fields']['user_info_content'],
225 'dependency' => [ 'enable_user_info|layout_type', '==|==', 'true|vertical', 'true' ],
226 ],
227 [
228 'id' => 'user_info_avatar',
229 'type' => 'button_set',
230 'class' => Utils::upgrade_pro_class(),
231 'title' => __( 'Avatar Type', 'adminify' ),
232 'options' => [
233 'rounded' => __( 'Rounded', 'adminify' ),
234 'square' => __( 'Square', 'adminify' ),
235 ],
236 'default' => $this->get_default_field( 'menu_layout_settings' )['user_info_fields']['user_info_avatar'],
237 'dependency' => [ 'enable_user_info|layout_type', '==|==', 'true|vertical', 'true' ],
238 ]
239 ]
240 ];
241
242 $settings_tab[] = [
243 'id' => 'horz_menu_type',
244 'type' => 'button_set',
245 'class' => 'adminify-pro-fieldset',
246 'title' => sprintf(__('Menu Item Style %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
247 'options' => [
248 'icons_only' => __( 'Icon Only', 'adminify' ),
249 'text_only' => __( 'Text Only', 'adminify' ),
250 'both' => __( 'Both', 'adminify' ),
251 ],
252 'default' => $this->get_default_field( 'menu_layout_settings' )['horz_menu_type'],
253 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
254 ];
255
256 $settings_tab[] = [
257 'id' => 'horz_dropdown_icon',
258 'type' => 'switcher',
259 'class' => 'adminify-pro-fieldset adminify-pro-notice',
260 'title' => sprintf(__('Dropdown Toggle Icon %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
261 'label' => __( 'Show/Hide Dropdown Icon', 'adminify' ),
262 'text_on' => __( 'Show', 'adminify' ),
263 'text_off' => __( 'Hide', 'adminify' ),
264 'text_width' => 100,
265 'default' => $this->get_default_field( 'menu_layout_settings' )['horz_dropdown_icon'],
266 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
267 ];
268
269 $settings_tab[] = [
270 'id' => 'horz_toplinks',
271 'type' => 'switcher',
272 'class' => 'adminify-pro-fieldset adminify-pro-notice',
273 'title' => sprintf(__('Top Menu Links %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
274 'label' => __( 'Parent/Top Menu Links clickable', 'adminify' ),
275 'text_on' => __( 'Enabled', 'adminify' ),
276 'text_off' => __( 'Disabled', 'adminify' ),
277 'text_width' => 100,
278 'default' => $this->get_default_field( 'menu_layout_settings' )['horz_toplinks'],
279 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
280 ];
281
282 $settings_tab[] = [
283 'id' => 'horz_bubble_icon_hide',
284 'type' => 'switcher',
285 'class' => 'adminify-pro-fieldset adminify-pro-notice',
286 'title' => sprintf(__('Bubble Icon %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
287 'label' => __( 'Show/Hide Update or Plugins Bubble Icon', 'adminify' ),
288 'text_on' => __( 'Show', 'adminify' ),
289 'text_off' => __( 'Hide', 'adminify' ),
290 'text_width' => 100,
291 'default' => $this->get_default_field( 'menu_layout_settings' )['horz_bubble_icon_hide'],
292 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
293 ];
294
295 // $settings_tab[] = [
296 // 'id' => 'horz_long_menu_break',
297 // 'type' => 'switcher',
298 // 'class' => 'adminify-pro-fieldset adminify-pro-notice',
299 // 'title' => __( 'Break Long Lists', 'adminify' ),
300 // 'title' => sprintf(__('Break Long Lists %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
301 // 'label' => __( 'Break Menu Lines if Main menu gets longer lists and doesn\'t cover screen witdh', 'adminify' ),
302 // 'text_on' => __( 'Enable', 'adminify' ),
303 // 'text_off' => __( 'Disable', 'adminify' ),
304 // 'text_width' => 100,
305 // 'default' => $this->get_default_field( 'menu_layout_settings' )['horz_long_menu_break'],
306 // 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
307 // ];
308
309 }
310
311
312
313
314 public function menu_layout_style_tab( &$menu_styles_tab ) {
315 // $menu_styles_tab[] = [
316 // 'type' => 'subheading',
317 // 'content' => __( 'Menu Styles', 'adminify' ),
318 // ];
319
320 $menu_styles_tab[] = [
321 'id' => 'menu_typography',
322 'type' => 'typography',
323 'title' => __( 'Font Settings', 'adminify' ),
324 'font_family' => false,
325 'font_weight' => true,
326 'font_style' => true,
327 'font_size' => true,
328 'line_height' => true,
329 'letter_spacing' => true,
330 'text_align' => false,
331 'text_transform' => false,
332 'color' => false,
333 'subset' => false,
334 'backup_font_family' => false,
335 'font_variant' => false,
336 'word_spacing' => false,
337 'text_decoration' => false,
338 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['menu_typography'],
339 ];
340
341 $menu_styles_tab[] = [
342 'id' => 'menu_width',
343 'type' => 'dimensions',
344 'title' => __( 'Menu Width', 'adminify' ),
345 'height' => false,
346 'units' => array('px'),
347 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['menu_width'],
348 ];
349
350 $menu_styles_tab[] = [
351 'id' => 'menu_wrapper_padding',
352 'type' => 'spacing',
353 'title' => __( 'Menu Wrapper Padding', 'adminify' ),
354 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['menu_wrapper_padding'],
355 ];
356
357 $menu_styles_tab[] = [
358 'id' => 'menu_vertical_padding',
359 'type' => 'slider',
360 'title' => __( 'Parent Menu Vertical Padding', 'adminify' ),
361 'unit' => 'px',
362 'min' => 1,
363 'max' => 100,
364 'step' => 1,
365 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['menu_vertical_padding'],
366 'dependency' => [ 'layout_type', '==', 'vertical', 'true' ],
367 ];
368
369 $menu_styles_tab[] = [
370 'id' => 'horz_menu_parent_padding',
371 'type' => 'slider',
372 'class' => 'adminify-pro-fieldset adminify-pro-notice',
373 'title' => sprintf(__('Parent Menu Horizontal Padding %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
374 'unit' => 'px',
375 'min' => 1,
376 'max' => 100,
377 'step' => 1,
378 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['horz_menu_parent_padding'],
379 'dependency' => [ 'admin_ui|layout_type', '==|==', 'true|horizontal', 'true' ],
380 ];
381
382 $menu_styles_tab[] = [
383 'id' => 'submenu_wrapper_padding',
384 'type' => 'spacing',
385 'title' => __( 'Sub Menu Wrapper Padding', 'adminify' ),
386 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['submenu_wrapper_padding'],
387 ];
388
389 $menu_styles_tab[] = [
390 'id' => 'submenu_vertical_space',
391 'type' => 'slider',
392 'title' => __( 'Sub Menu Vertical Padding', 'adminify' ),
393 'unit' => 'px',
394 'min' => 1,
395 'max' => 100,
396 'step' => 1,
397 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['submenu_vertical_space'],
398 ];
399
400 $menu_styles_tab[] = [
401 'id' => 'admin_menu_color_sub',
402 'type' => 'subheading',
403 'content' => __( 'Color Settings', 'adminify' ),
404 ];
405
406 $menu_styles_tab[] = [
407 'id' => 'parent_menu_colors',
408 'type' => 'color_group',
409 'title' => __( 'Parent Menu Colors', 'adminify' ),
410 'options' => [
411 'wrap_bg' => __( 'Wrap BG', 'adminify' ),
412 'hover_bg' => __( 'Menu Hover BG', 'adminify' ),
413 'text_color' => __( 'Text Color', 'adminify' ),
414 'text_hover' => __( 'Text Hover', 'adminify' ),
415 'active_bg' => __( 'Active Menu BG', 'adminify' ),
416 'active_color' => __( 'Active Menu Color', 'adminify' ),
417 ],
418 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['parent_menu_colors'],
419 ];
420
421 $menu_styles_tab[] = [
422 'id' => 'sub_menu_colors',
423 'type' => 'color_group',
424 'title' => __( 'Sub Menu Colors', 'adminify' ),
425 'options' => [
426 'wrap_bg' => __( 'Wrap BG', 'adminify' ),
427 'hover_bg' => __( 'Submenu Hover BG', 'adminify' ),
428 'text_color' => __( 'Text Color', 'adminify' ),
429 'text_hover' => __( 'Text Hover', 'adminify' ),
430 'active_bg' => __( 'Active Submenu BG', 'adminify' ),
431 'active_color' => __( 'Active Submenu Color', 'adminify' ),
432 ],
433 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['sub_menu_colors'],
434 ];
435
436 $menu_styles_tab[] = [
437 'id' => 'notif_colors',
438 'type' => 'color_group',
439 'title' => __( 'Notification Colors', 'adminify' ),
440 'options' => [
441 'notif_bg' => __( 'Background', 'adminify' ),
442 'notif_color' => __( 'Text Color', 'adminify' ),
443 ],
444 'default' => $this->get_default_field( 'menu_layout_settings' )['menu_styles']['notif_colors'],
445 ];
446 }
447
448
449 public function menu_styles_tab( &$styles_tab ) {
450 $menu_styles_tab = [];
451 // $user_info_styles_tab = [];
452 $this->menu_layout_style_tab( $menu_styles_tab );
453 // $this->user_info_style_tab( $user_info_styles_tab );
454
455 $styles_tab[] = [
456 'id' => 'menu_styles',
457 'type' => 'fieldset',
458 'title' => '',
459 'class' => 'adminify-one-col',
460 'fields' => $menu_styles_tab,
461 ];
462
463 $styles_tab[] = [
464 'id' => 'user_info_style',
465 'type' => 'color_group',
466 'class' => 'adminify-pro-fieldset',
467 'title' => sprintf(__('User Info Colors %s', 'adminify'), Utils::adminify_upgrade_pro_badge()),
468 'options' => [
469 'info_text_color' => __('Link Color', 'adminify'),
470 'info_text_hover_color' => __('Hover Color', 'adminify'),
471 'info_text_border' => __('Border', 'adminify'),
472 'info_icon_color' => __('Icon Color', 'adminify'),
473 'info_icon_hover_color' => __('Hover Icon Color', 'adminify'),
474 ],
475 'dependency' => ['layout_type|enable_user_info', '==|==', 'vertical|true', 'true'
476 ],
477 ];
478 }
479
480 /**
481 * Menu Editor Root
482 */
483 public static function jltwp_adminify_menu_editor_contents() {
484 $menu_editor = MenuEditor::get_instance();
485 $menu_editor->jltwp_adminify_menu_editor_contents();
486 }
487
488
489 /**
490 * Menu Layout Settings
491 */
492 public function menu_layout_settings() {
493 if ( ! class_exists( 'ADMINIFY' ) ) {
494 return;
495 }
496
497 $settings_tab = [];
498 $styles_tab = [];
499
500 $this->menu_layout_settings_tab( $settings_tab );
501 $this->menu_styles_tab( $styles_tab );
502
503 $settings_tab = apply_filters('adminify_settings/admin_menu/settings', $settings_tab, $this);
504 $styles_tab = apply_filters('adminify_settings/admin_menu/styles', $styles_tab, $this);
505
506 // Menu Layout Section
507 \ADMINIFY::createSection(
508 $this->prefix,
509 [
510 'title' => __('Admin Menu', 'adminify' ),
511 'icon' => 'fas fa-bars',
512 'fields' => [
513 [
514 'type' => 'subheading',
515 'content' => Utils::adminfiy_help_urls(
516 __('Admin Menu Settings', 'adminify' ),
517 'https://wpadminify.com/docs/adminify/admin-menu/admin-menu-editor',
518 'https://www.youtube.com/watch?v=zbEYlAg91QM',
519 'https://www.facebook.com/groups/jeweltheme',
520 \WPAdminify\Inc\Admin\AdminSettings::support_url()
521 ),
522 ],
523 [
524 'id' => 'menu_layout_settings',
525 'type' => 'tabbed',
526 'title' => '',
527 'tabs' => [
528 [
529 'title' => __( 'Menu Editor', 'adminify' ),
530 'fields' => [
531 [
532 'id' => 'menu_editor',
533 'type' => 'callback',
534 'class' => 'adminify-one-col',
535 'function' => '\WPAdminify\Inc\Admin\Options\MenuLayout::jltwp_adminify_menu_editor_contents',
536 ]
537 ],
538 ],
539 [
540 'title' => __( 'Settings', 'adminify' ),
541 'fields' => $settings_tab,
542 ],
543 [
544 'title' => __( 'Styles', 'adminify' ),
545 'fields' => $styles_tab,
546 ],
547 ],
548 'default' => $this->get_defaults()['menu_layout_settings']
549 ],
550 ],
551 ]
552 );
553 }
554 }
555