PluginProbe
My WP Customize Admin/Frontend / 1.8
My WP Customize Admin/Frontend v1.8
1.27.4 1.27.3 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.10 1.10.1 1.10.2 1.11 1.12 1.12.1 1.12.2 1.13 1.13.1 1.13.2 1.14 1.15.0 1.16 1.17.0 All 76 releases
my-wp / controller / modules / mywp.controller.module.admin.sidebar.php

mywp.controller.module.admin.sidebar.php in My WP Customize Admin/Frontend 1.8, at controller/modules/mywp.controller.module.admin.sidebar.php

1,053 lines 22.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if ( ! defined( 'ABSPATH' ) ) {
4 exit;
5 }
6
7 if( ! class_exists( 'MywpControllerAbstractModule' ) ) {
8 return false;
9 }
10
11 if ( ! class_exists( 'MywpControllerModuleAdminSidebar' ) ) :
12
13 final class MywpControllerModuleAdminSidebar extends MywpControllerAbstractModule {
14
15 static protected $id = 'admin_sidebar';
16
17 static private $sidebar = false;
18
19 static private $sidebar_items = false;
20
21 static private $sidebar_items_added_classes = false;
22
23 static private $child_items = array();
24
25 static private $parent_items = array();
26
27 static private $found_parent_item_ids = array();
28
29 static private $current_url = false;
30
31 static private $find_parent_id = array();
32
33 public static function mywp_controller_initial_data( $initial_data ) {
34
35 $initial_data['custom_menu_ui'] = '';
36 $initial_data['cache_timeout'] = '';
37
38 return $initial_data;
39
40 }
41
42 public static function mywp_controller_default_data( $default_data ) {
43
44 $default_data['custom_menu_ui'] = false;
45 $default_data['cache_timeout'] = '60';
46
47 return $default_data;
48
49 }
50
51 public static function mywp_wp_loaded() {
52
53 if( ! is_admin() ) {
54
55 return false;
56
57 }
58
59 if( is_network_admin() ) {
60
61 return false;
62
63 }
64
65 if( ! self::is_do_controller() ) {
66
67 return false;
68
69 }
70
71 add_action( 'admin_enqueue_scripts' , array( __CLASS__ , 'admin_enqueue_scripts' ) );
72 add_action( 'admin_head' , array( __CLASS__ , 'hidden_default_menus' ) , 1000 );
73 add_action( 'adminmenu' , array( __CLASS__ , 'render_menus' ) );
74 add_action( 'in_admin_header' , array( __CLASS__ , 'custom_menu_ui_mask' ) );
75 add_filter( 'mywp_controller_admin_sidebar_get_sidebar_item_added_classes_found_current_item_ids' , array( __CLASS__ , 'mywp_controller_admin_sidebar_get_sidebar_item_added_classes_found_current_item_ids' ) , 9 , 5 );
76
77 }
78
79 private static function get_sidebar() {
80
81 if( ! empty( self::$sidebar ) ) {
82
83 return self::$sidebar;
84
85 }
86
87 $setting_data = self::get_setting_data();
88
89 $timeout_min = 0;
90
91 if( ! empty( $setting_data['cache_timeout'] ) ) {
92
93 $timeout_min = intval( $setting_data['cache_timeout'] );
94
95 }
96
97 $mywp_transient = new MywpTransient( 'admin_sidebar_get_sidebar' , 'controller' );
98
99 if( ! empty( $timeout_min ) ) {
100
101 $transient_sidebar = $mywp_transient->get_data();
102
103 if( ! empty( $transient_sidebar ) ) {
104
105 self::$sidebar = $transient_sidebar;
106
107 return self::$sidebar;
108
109 }
110
111 }
112
113 $args = array(
114 'post_status' => array( 'publish' ),
115 'post_type' => 'mywp_admin_sidebar',
116 'order' => 'ASC',
117 'orderby' => 'menu_order',
118 'posts_per_page' => -1,
119 'tax_query' => array(
120 array(
121 'taxonomy' => 'mywp_term',
122 'field' => 'slug',
123 'terms' => 'default',
124 ),
125 ),
126 );
127
128 $args = apply_filters( 'mywp_controller_admin_sidebar_get_sidebar_args' , $args );
129
130 $posts = MywpController::get_posts( $args , self::$id );
131
132 $sidebar = apply_filters( 'mywp_controller_admin_sidebar_get_sidebar' , $posts );
133
134 self::$sidebar = $sidebar;
135
136 if( ! empty( $timeout_min ) && ! empty( $sidebar ) ) {
137
138 $sidebar_strlen = strlen( maybe_serialize( self::$sidebar ) );
139
140 if( $sidebar_strlen < MywpHelper::get_max_allowed_packet_size() ) {
141
142 $mywp_transient->update_data( self::$sidebar , $timeout_min * MINUTE_IN_SECONDS );
143
144 }
145
146 }
147
148 return $sidebar;
149
150 }
151
152 private static function get_sidebar_items() {
153
154 if( ! empty( self::$sidebar_items ) ) {
155
156 return self::$sidebar_items;
157
158 }
159
160 $sidebar = self::get_sidebar();
161
162 if( empty( $sidebar ) ) {
163
164 return false;
165
166 }
167
168 $sidebar_items = array();
169
170 foreach( $sidebar as $key => $sidebar_item ) {
171
172 if( $sidebar_item->item_type === 'default') {
173
174 $sidebar_item = MywpAdminSidebar::default_item_convert( $sidebar_item );
175
176 if( ! empty( $sidebar_item ) ) {
177
178 $sidebar_items[] = $sidebar_item;
179
180 }
181
182 } else {
183
184 $sidebar_items[] = $sidebar_item;
185
186 }
187
188 }
189
190 $sidebar_items = apply_filters( 'mywp_controller_admin_sidebar_get_sidebar_item' , $sidebar_items );
191
192 if( empty( $sidebar_items ) ) {
193
194 return false;
195
196 }
197
198 ksort( $sidebar_items );
199
200 self::$sidebar_items = $sidebar_items;
201
202 return $sidebar_items;
203
204 }
205
206 private static function get_sidebar_items_added_classes(){
207
208 if( ! empty( self::$sidebar_items_added_classes ) ) {
209
210 return self::$sidebar_items_added_classes;
211
212 }
213
214 $sidebar_items = self::get_sidebar_items();
215
216 if( empty( $sidebar_items ) ) {
217
218 return false;
219
220 }
221
222 foreach( $sidebar_items as $key => $sidebar_item ) {
223
224 if( ! is_object( $sidebar_item ) ) {
225
226 unset( $sidebar_items[ $key ] );
227
228 continue;
229
230 }
231
232 if( empty( $sidebar_item->item_li_class ) ) {
233
234 $sidebar_items[ $key ]->item_li_class = '';
235
236 }
237
238 if( empty( $sidebar_item->item_link_class ) ) {
239
240 $sidebar_items[ $key ]->item_link_class = '';
241
242 }
243
244 if( empty( $sidebar_item->item_link_url ) ) {
245
246 $sidebar_items[ $key ]->item_link_url = '';
247
248 }
249
250 if( empty( $sidebar_item->item_link_url_parse ) ) {
251
252 $sidebar_items[ $key ]->item_link_url_parse = array();
253
254 }
255
256 if( empty( $sidebar_item->item_link_url_parse_query ) ) {
257
258 $sidebar_items[ $key ]->item_link_url_parse_query = array();
259
260 }
261
262 $sidebar_item->item_link_url = do_shortcode( $sidebar_item->item_link_url );
263
264 $sidebar_items[ $key ]->item_link_url = $sidebar_item->item_link_url;
265
266 if( ! empty( $sidebar_item->item_link_url ) ) {
267
268 $item_link_url_parse = parse_url( $sidebar_item->item_link_url );
269
270 if( isset( $item_link_url_parse['fragment'] ) ) {
271
272 unset( $item_link_url_parse['fragment'] );
273
274 }
275
276 if( empty( $item_link_url_parse['query'] ) ) {
277
278 $item_link_url_parse['query'] = '';
279
280 }
281
282 $sidebar_items[ $key ]->item_link_url_parse = $item_link_url_parse;
283
284 if( ! empty( $item_link_url_parse['query'] ) ) {
285
286 wp_parse_str( $item_link_url_parse['query'] , $item_link_url_parse_query );
287
288 ksort( $item_link_url_parse_query );
289
290 $sidebar_items[ $key ]->item_link_url_parse_query = $item_link_url_parse_query;
291
292 }
293
294 }
295
296 }
297
298 foreach( $sidebar_items as $key => $sidebar_item ) {
299
300 self::$child_items[ $sidebar_item->item_parent ][] = $sidebar_item;
301
302 }
303
304 $tmp = $sidebar_items;
305
306 foreach( $sidebar_items as $key => $sidebar_item ) {
307
308 if( empty( $sidebar_item->item_parent ) ) {
309
310 continue;
311
312 }
313
314 foreach( $tmp as $tmp_key => $tmp_sidebar_item ) {
315
316 if( (string) $tmp_sidebar_item->ID === (string) $sidebar_item->item_parent ) {
317
318 self::$parent_items[ $sidebar_item->ID ][] = $tmp_sidebar_item;
319
320 break;
321
322 }
323
324 }
325
326 }
327
328 unset( $tmp );
329
330 $first = true;
331
332 foreach( $sidebar_items as $key => $sidebar_item ) {
333
334 if( $first ) {
335
336 $sidebar_items[ $key ]->item_li_class .= ' wp-first-item';
337 $sidebar_items[ $key ]->item_link_class .= ' wp-first-item';
338 $first = false;
339
340 }
341
342 if( $sidebar_item->item_type === 'separator' ) {
343
344 continue;
345
346 }
347
348 if( empty( $sidebar_item->item_parent ) ) {
349
350 $sidebar_items[ $key ]->item_li_class .= ' menu-top';
351 $sidebar_items[ $key ]->item_link_class .= ' menu-top';
352
353 }
354
355 if( ! empty( self::$child_items[ $sidebar_item->ID ] ) ) {
356
357 $sidebar_items[ $key ]->item_li_class .= ' wp-has-submenu';
358 $sidebar_items[ $key ]->item_link_class .= ' wp-has-submenu';
359
360 }
361
362 }
363
364 $current_url = self::get_current_url();
365
366 $current_url_parse = parse_url( $current_url );
367 $current_url_query = array();
368
369 if( isset( $current_url_parse['fragment'] ) ) {
370
371 unset( $current_url_parse['fragment'] );
372
373 }
374
375 if( ! empty( $current_url_parse['query'] ) ) {
376
377 wp_parse_str( $current_url_parse['query'] , $current_url_query );
378
379 ksort( $current_url_query );
380
381 } else {
382
383 $current_url_parse['query'] = '';
384
385 }
386
387 $found_current_item_ids = array();
388
389 foreach( $sidebar_items as $key => $sidebar_item ) {
390
391 if( empty( $sidebar_item->item_link_url_parse['host'] ) or empty( $sidebar_item->item_link_url_parse['path'] ) ) {
392
393 continue;
394
395 }
396
397 if(
398 $current_url_parse['scheme'] === $sidebar_item->item_link_url_parse['scheme'] &&
399 $current_url_parse['host'] === $sidebar_item->item_link_url_parse['host'] &&
400 $current_url_parse['path'] === $sidebar_item->item_link_url_parse['path'] &&
401 $current_url_query === $sidebar_item->item_link_url_parse_query
402 ) {
403
404 $found_current_item_ids[] = $sidebar_item->ID;
405
406 }
407
408 }
409
410 if( empty( $found_current_item_ids ) ) {
411
412 $identification_query = array();
413
414 if( ! empty( $current_url_query['page'] ) ) {
415
416 $identification_query['page'] = $current_url_query['page'];
417
418 }
419
420 if( ! empty( $current_url_query['post_type'] ) ) {
421
422 if( $current_url_query['post_type'] != 'post' ) {
423
424 $identification_query['post_type'] = $current_url_query['post_type'];
425
426 }
427
428 }
429
430 if( ! empty( $current_url_query['taxonomy'] ) ) {
431
432 $identification_query['taxonomy'] = $current_url_query['taxonomy'];
433
434 }
435
436 foreach( $sidebar_items as $key => $sidebar_item ) {
437
438 if( empty( $sidebar_item->item_link_url_parse['host'] ) or empty( $sidebar_item->item_link_url_parse['path'] ) ) {
439
440 continue;
441
442 }
443
444 if(
445 $current_url_parse['scheme'] === $sidebar_item->item_link_url_parse['scheme'] &&
446 $current_url_parse['host'] === $sidebar_item->item_link_url_parse['host'] &&
447 $current_url_parse['path'] === $sidebar_item->item_link_url_parse['path'] &&
448 http_build_query( $identification_query ) === $sidebar_item->item_link_url_parse['query']
449 ) {
450
451 $found_current_item_ids[] = $sidebar_item->ID;
452
453 }
454
455 }
456
457 }
458
459 $found_current_item_ids = apply_filters( 'mywp_controller_admin_sidebar_get_sidebar_item_added_classes_found_current_item_ids' , $found_current_item_ids , $sidebar_items , $current_url , $current_url_parse , $current_url_query );
460
461 if( ! empty( $found_current_item_ids ) ) {
462
463 $found_current_item_ids = array_map( 'strip_tags' , $found_current_item_ids );
464
465 }
466
467 if( ! empty( $found_current_item_ids ) ) {
468
469 foreach( $sidebar_items as $key => $sidebar_item ) {
470
471 if( in_array( $sidebar_item->ID , $found_current_item_ids ) ) {
472
473 $sidebar_items[ $key ]->item_li_class .= ' current';
474 $sidebar_items[ $key ]->item_link_class .= ' current';
475
476 }
477
478 }
479
480 foreach( $found_current_item_ids as $found_current_item_id ) {
481
482 $find_item_parents_ids = self::get_find_item_to_parent_ids( $found_current_item_id );
483
484 if( ! empty( $find_item_parents_ids ) ) {
485
486 foreach( $sidebar_items as $key => $sidebar_item ) {
487
488 if( ! in_array( $sidebar_item->ID , $find_item_parents_ids ) ) {
489
490 continue;
491
492 }
493
494 $sidebar_items[ $key ]->item_li_class .= ' wp-has-current-submenu wp-menu-open';
495 $sidebar_items[ $key ]->item_link_class .= ' wp-has-current-submenu wp-menu-open';
496
497 }
498
499 }
500
501 }
502
503 }
504
505 $sidebar_items = apply_filters( 'mywp_controller_admin_sidebar_get_sidebar_item_added_classes' , $sidebar_items );
506
507 self::$sidebar_items_added_classes = $sidebar_items;
508
509 return self::$sidebar_items_added_classes;
510
511 }
512
513 public static function mywp_controller_admin_sidebar_get_sidebar_item_added_classes_found_current_item_ids( $found_current_item_ids , $sidebar_items , $current_url , $current_url_parse , $current_url_query ) {
514
515 if( empty( $sidebar_items ) ) {
516
517 return $sidebar_items;
518
519 }
520
521 if( ! empty( $found_current_item_ids ) ) {
522
523 return $found_current_item_ids;
524
525 }
526
527 foreach( $sidebar_items as $key => $sidebar_item ) {
528
529 if( empty( $sidebar_item->item_link_url_parse['host'] ) or empty( $sidebar_item->item_link_url_parse['path'] ) ) {
530
531 continue;
532
533 }
534
535 if(
536 $current_url_parse['scheme'] !== $sidebar_item->item_link_url_parse['scheme'] or
537 $current_url_parse['host'] !== $sidebar_item->item_link_url_parse['host']
538 ) {
539
540 continue;
541
542 }
543
544 if( strpos( $current_url_parse['path'] , 'post.php' ) !== false && ! empty( $current_url_query['post'] ) ) {
545
546 if( strpos( $sidebar_item->item_link_url_parse['path'] , 'edit.php' ) === false ) {
547
548 continue;
549
550 }
551
552 $post_type = get_post_type( intval( $current_url_query['post'] ) );
553
554 if( empty( $post_type ) ) {
555
556 continue;
557
558 }
559
560 if( $post_type === 'post' && empty( $sidebar_item->item_link_url_parse_query['post_type'] ) ) {
561
562 $found_current_item_ids[] = $sidebar_item->ID;
563
564 } elseif( ! empty( $sidebar_item->item_link_url_parse_query['post_type'] ) && $sidebar_item->item_link_url_parse_query === array( 'post_type' => $post_type ) ) {
565
566 $found_current_item_ids[] = $sidebar_item->ID;
567
568 }
569
570 } elseif( strpos( $current_url_parse['path'] , 'term.php' ) !== false && $current_url_query['taxonomy'] ) {
571
572 if( strpos( $sidebar_item->item_link_url_parse['path'] , 'edit-tags.php' ) === false ) {
573
574 continue;
575
576 }
577
578 if( (string) $current_url_query['taxonomy'] === (string) $sidebar_item->item_link_url_parse_query['taxonomy'] ) {
579
580 $found_current_item_ids[] = $sidebar_item->ID;
581
582 }
583
584 } elseif( strpos( $current_url_parse['path'] , 'comment.php' ) !== false ) {
585
586 if( strpos( $sidebar_item->item_link_url_parse['path'] , 'edit-comments.php' ) === false ) {
587
588 continue;
589
590 }
591
592 if( $sidebar_item->item_link_url_parse_query === array() ) {
593
594 $found_current_item_ids[] = $sidebar_item->ID;
595
596 }
597
598 } elseif( strpos( $current_url_parse['path'] , 'theme-install.php' ) !== false ) {
599
600 if( strpos( $sidebar_item->item_link_url_parse['path'] , 'themes.php' ) === false ) {
601
602 continue;
603
604 }
605
606 if( $sidebar_item->item_link_url_parse_query === array() ) {
607
608 $found_current_item_ids[] = $sidebar_item->ID;
609
610 }
611
612 } elseif( strpos( $current_url_parse['path'] , 'user-edit.php' ) !== false ) {
613
614 if( strpos( $sidebar_item->item_link_url_parse['path'] , 'users.php' ) === false ) {
615
616 continue;
617
618 }
619
620 if( $sidebar_item->item_link_url_parse_query === array() ) {
621
622 $found_current_item_ids[] = $sidebar_item->ID;
623
624 }
625
626 }
627
628 }
629
630 return $found_current_item_ids;
631
632 }
633
634 private static function get_find_item_to_parent_ids( $find_id = false ) {
635
636 if( empty( $find_id ) ) {
637
638 return false;
639
640 }
641
642 $find_id = strip_tags( $find_id );
643
644 self::set_find_item_parent_ids( $find_id );
645
646 return self::$found_parent_item_ids;
647
648 }
649
650 private static function set_find_item_parent_ids( $find_id ) {
651
652 if( empty( $find_id ) ) {
653
654 return false;
655
656 }
657
658 if( empty( self::$parent_items[ $find_id ] ) ) {
659
660 return false;
661
662 }
663
664 $parent_items = self::$parent_items[ $find_id ];
665
666 foreach( $parent_items as $parent_item ) {
667
668 self::$found_parent_item_ids[] = $parent_item->ID;
669
670 if( ! empty( $parent_item->item_parent ) ) {
671
672 self::set_find_item_parent_ids( $parent_item->ID );
673
674 }
675
676 }
677
678 }
679
680 private static function get_find_menu_items_to_parent_id( $parent_id = 0 ) {
681
682 $sidebar_items_added_classes = self::get_sidebar_items_added_classes();
683
684 if( empty( $sidebar_items_added_classes ) ) {
685
686 return false;
687
688 }
689
690 if( ! empty( $parent_id ) ) {
691
692 if( is_numeric( $parent_id ) ) {
693
694 $parent_id = intval( $parent_id );
695
696 } else {
697
698 $parent_id = strip_tags( $parent_id );
699
700 }
701
702 }
703
704 if( ! empty( self::$find_parent_id[ $parent_id ] ) ) {
705
706 return self::$find_parent_id[ $parent_id ];
707
708 }
709
710 $find_items = array();
711
712 foreach( $sidebar_items_added_classes as $item ) {
713
714 $item_parent = $item->item_parent;
715
716 if( ! empty( $item_parent ) ) {
717
718 if( is_numeric( $item_parent ) ) {
719
720 $item_parent = intval( $item_parent );
721
722 } else {
723
724 $item_parent = strip_tags( $item_parent );
725
726 }
727
728 }
729
730 if( $item_parent !== $parent_id ) {
731
732 continue;
733
734 }
735
736 $find_items[] = $item;
737
738 }
739
740 if( empty( $find_items ) ) {
741
742 return false;
743
744 }
745
746 self::$find_parent_id[ $parent_id ] = $find_items;
747
748 return $find_items;
749
750 }
751
752 private static function get_current_url() {
753
754 if( ! empty( self::$current_url ) ) {
755
756 return self::$current_url;
757
758 }
759
760 $current_url = urldecode( do_shortcode( '[mywp_url current="1"]' ) );
761
762 self::$current_url = $current_url;
763
764 return $current_url;
765
766 }
767
768 public static function admin_enqueue_scripts() {
769
770 $sidebar = self::get_sidebar();
771
772 if( empty( $sidebar ) ) {
773
774 return false;
775
776 }
777
778 wp_register_style( 'mywp_admin_sidebar' , MywpApi::get_plugin_url( 'css' ) . 'admin-sidebar.css' , array() , MYWP_VERSION );
779 wp_register_script( 'mywp_admin_sidebar' , MywpApi::get_plugin_url( 'js' ) . 'admin-sidebar.js' , array( 'jquery' ) , MYWP_VERSION );
780
781 wp_enqueue_style( 'mywp_admin_sidebar' );
782 wp_enqueue_script( 'mywp_admin_sidebar' );
783
784 $setting_data = self::get_setting_data();
785
786 if( ! empty( $setting_data['custom_menu_ui'] ) ) {
787
788 wp_register_style( 'mywp_admin_sidebar_custom_ui' , MywpApi::get_plugin_url( 'css' ) . 'admin-sidebar-custom-ui.css' , array( 'mywp_admin_sidebar' ) , MYWP_VERSION );
789 wp_register_script( 'mywp_admin_sidebar_custom_ui' , MywpApi::get_plugin_url( 'js' ) . 'admin-sidebar-custom-ui.js' , array( 'jquery' , 'mywp_admin_sidebar' ) , MYWP_VERSION );
790
791 wp_enqueue_style( 'mywp_admin_sidebar_custom_ui' );
792 wp_enqueue_script( 'mywp_admin_sidebar_custom_ui' );
793
794 }
795
796 }
797
798 public static function hidden_default_menus() {
799
800 global $menu;
801 global $submenu;
802
803 if( ! self::is_do_function( __FUNCTION__ ) ) {
804
805 return false;
806
807 }
808
809 $sidebar = self::get_sidebar();
810
811 if( empty( $sidebar ) ) {
812
813 return false;
814
815 }
816
817 $menu = array();
818 $submenu = array();
819
820 self::after_do_function( __FUNCTION__ );
821
822 }
823
824 public static function render_menus() {
825
826 if( ! self::is_do_function( __FUNCTION__ ) ) {
827
828 return false;
829
830 }
831
832 $parent_items = self::get_find_menu_items_to_parent_id();
833
834 if( empty( $parent_items ) ) {
835
836 return false;
837
838 }
839
840 foreach( $parent_items as $item ) {
841
842 self::print_sidebar_item( $item );
843
844 }
845
846 echo '<li id="sidebar-collapse"><span class="collapse-button-icon dashicons-before"></span></li>';
847
848 self::after_do_function( __FUNCTION__ );
849
850 }
851
852 private static function print_sidebar_item( $item ) {
853
854 if( empty( $item ) or empty( $item->item_type ) or empty( $item->ID ) ) {
855
856 return false;
857
858 }
859
860 $item = apply_filters( 'mywp_controller_admin_sidebar_print_sidebar_item' , $item );
861
862 if( ! empty( $item->item_capability ) ) {
863
864 if( ! current_user_can( $item->item_capability ) ) {
865
866 return false;
867
868 }
869
870 }
871
872 $item_id = $item->ID;
873
874 if( is_numeric( $item_id ) ) {
875
876 $item_id = intval( $item_id );
877
878 } else {
879
880 $item_id = strip_tags( $item_id );
881
882 }
883
884
885 $item_type = $item->item_type;
886 $item_parent = $item->item_parent;
887
888 $item->item_link_title = do_shortcode( $item->item_link_title );
889
890 $li_class = '';
891
892 if( ! empty( $item->item_li_class ) ) {
893
894 $li_class = $item->item_li_class;
895
896 }
897
898 $li_id = '';
899
900 if( ! empty( $item->item_li_id ) ) {
901
902 $li_id = $item->item_li_id;
903
904 }
905
906 printf( '<li class="mywp-sidebar-item item-%d item-type-%s %s" id="%s">' , esc_attr( $item_id ) , esc_attr( $item_type ) , esc_attr( $li_class ) , esc_attr( $li_id ) );
907
908 if( $item_type === 'custom' ) {
909
910 echo do_shortcode( $item->item_custom_html );
911
912 } elseif( $item_type === 'separator' ) {
913
914 echo '<div class="separator"></div>';
915
916 } elseif( in_array( $item_type , array( 'default' , 'link' ) ) ) {
917
918 $link_class = '';
919
920 if( ! empty( $item->item_link_class ) ) {
921
922 $link_class = $item->item_link_class;
923
924 }
925
926 $link_id = '';
927
928 if( ! empty( $item->item_link_id ) ) {
929
930 $link_id = $item->item_link_id;
931
932 }
933
934 $link_attr = '';
935
936 if( ! empty( $item->item_link_attr ) ) {
937
938 $link_attr = $item->item_link_attr;
939
940 }
941
942 printf( '<a href="%s" class="mywp-sidebar-item-link %s" id="%s" %s>' , esc_url( $item->item_link_url ) , esc_attr( $link_class ) , esc_attr( $link_id ) , esc_attr( $link_attr ) );
943
944 $icon_class = '';
945
946 if( ! empty( $item->item_icon_class ) ) {
947
948 $icon_class = $item->item_icon_class;
949
950 }
951
952 $icon_id = '';
953
954 if( ! empty( $item->item_icon_id ) ) {
955
956 $icon_id = $item->item_icon_id;
957
958 }
959
960 $icon_title = '';
961
962 if( ! empty( $item->item_icon_title ) ) {
963
964 $icon_title = $item->item_icon_title;
965
966 }
967
968 $icon_style = '';
969
970 if( ! empty( $item->item_icon_style ) ) {
971
972 $icon_style = $item->item_icon_style;
973
974 }
975
976 $icon_img = '';
977
978 if( ! empty( $item->item_icon_img ) ) {
979
980 $icon_img = $item->item_icon_img;
981
982 }
983
984 if( ! empty( $item->item_icon_img ) ) {
985
986 printf( '<div class="wp-menu-image dashicons-before mywp-sidebar-item-icon-img"><img src="%s" alt="%s"></div>' , esc_attr( $icon_img ) , esc_attr( $icon_title ) );
987
988 } elseif( ! empty( $icon_class ) or ! empty( $icon_style ) or ! empty( $icon_id ) ) {
989
990 printf( '<div class="wp-menu-image mywp-sidebar-item-icon %s" id="%s" style="%s">%s</div>' , esc_attr( $icon_class ) , esc_attr( $icon_id ) , $icon_style , $icon_title );
991
992 } else {
993
994 echo do_action( 'mywp_controller_admin_sidebar_print_sidebar_item_icon' , $item );
995
996 }
997
998 printf( '<div class="wp-menu-name mywp-sidebar-name">%s</div>' , $item->item_link_title );
999
1000 echo '</a>';
1001
1002 $child_items = self::get_find_menu_items_to_parent_id( $item_id );
1003
1004 if( ! empty( $child_items ) ) {
1005
1006 echo '<ul class="wp-submenu wp-submenu-wrap mywp-sidebar-item-childs">';
1007
1008 printf( '<li class="wp-submenu-head" aria-hidden="true">%s</li>' , $item->item_link_title );
1009
1010 foreach( $child_items as $child_item ) {
1011
1012 self::print_sidebar_item( $child_item );
1013
1014 }
1015
1016 echo '</ul>';
1017
1018 }
1019
1020 }
1021
1022 echo '</li>';
1023
1024 }
1025
1026 public static function custom_menu_ui_mask() {
1027
1028 if( ! self::is_do_function( __FUNCTION__ ) ) {
1029
1030 return false;
1031
1032 }
1033
1034 $setting_data = self::get_setting_data();
1035
1036 if( empty( $setting_data['custom_menu_ui'] ) ) {
1037
1038 return false;
1039
1040 }
1041
1042 echo '<div id="sidebar-custom-menu-ui-mask"></div>';
1043
1044 self::after_do_function( __FUNCTION__ );
1045
1046 }
1047
1048 }
1049
1050 MywpControllerModuleAdminSidebar::init();
1051
1052 endif;
1053