PluginProbe
Advanced Custom Fields: Extended / 0.9.1
Advanced Custom Fields: Extended v0.9.1
0.9.2.7 0.9.2.6 0.9.2.5 0.8.6 0.8.6.1 0.8.6.3 0.8.6.5 0.8.6.6 0.8.6.7 0.8.6.8 0.8.6.9 0.8.7 0.8.7.1 0.8.7.2 0.8.7.3 0.8.7.4 0.8.7.5 0.8.7.6 0.8.8 0.8.8.1 0.8.8.10 0.8.8.11 0.8.8.2 0.8.8.3 0.8.8.4 All 92 releases
acf-extended / includes / admin / menu.php
menu.php
146 lines 3.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('acfe_admin_menu')):
8
9 class acfe_admin_menu{
10
11 /**
12 * Construct
13 */
14 function __construct(){
15
16 add_action('current_screen', array($this, 'current_screen'));
17 add_action('admin_menu', array($this, 'admin_menu'), 999);
18
19 }
20
21 /**
22 * current_screen
23 *
24 * @param $screen
25 */
26 function current_screen($screen){
27
28 // check version
29 if(acf_version_compare(acf_get_setting('version'), '>=', '5.9')){
30
31 // allowed screens
32 $allowed = array(
33 'edit-acf-field-group-category',
34 'edit-acfe-dbt',
35 'acfe-dbt',
36 'edit-acfe-dop',
37 'acfe-dop',
38 'edit-acfe-template',
39 'acfe-template',
40 'edit-acfe-form',
41 'acfe-form'
42 );
43
44 // chgeck allowed
45 if(acf_is_screen($allowed)){
46 add_action('in_admin_header', array($this, 'in_admin_header'));
47 }
48
49 }
50
51 }
52
53
54 /**
55 * in_admin_header
56 */
57 function in_admin_header(){
58 acf_get_view('html-admin-navigation');
59 }
60
61
62 /**
63 * admin_menu
64 *
65 * Swap menu items to the correct order
66 */
67 function admin_menu(){
68
69 // global
70 global $submenu;
71
72 // bail early
73 if(!acf_maybe_get($submenu, 'edit.php?post_type=acf-field-group')){
74 return;
75 }
76
77 // vars
78 $new_menu = array();
79 $all_menu = $submenu['edit.php?post_type=acf-field-group'];
80
81 // order
82 $order = array(
83 'edit.php?post_type=acf-field-group',
84 'post-new.php?post_type=acf-field-group',
85 'edit-tags.php?taxonomy=acf-field-group-category',
86 'edit.php?post_type=acfe-dbt',
87 'edit.php?post_type=acfe-form',
88 'edit.php?post_type=acfe-dop',
89 'edit.php?post_type=acf-post-type',
90 'acfe-settings',
91 'edit.php?post_type=acf-taxonomy',
92 'acf-tools',
93 'acf-settings-updates',
94 );
95
96 // loop
97 foreach($submenu['edit.php?post_type=acf-field-group'] as $k => $item){
98
99 //name
100 $name = $item[2];
101
102 // search
103 $position = array_search($name, $order);
104
105 // found position
106 if($position !== false){
107 $this->assign_submenu($new_menu, $position, $item, $all_menu, $k);
108 }
109
110 }
111
112 // sort new menu
113 ksort($new_menu);
114
115 // assign new menu
116 $submenu['edit.php?post_type=acf-field-group'] = $new_menu;
117
118 // add menu items that are left
119 if(!empty($all_menu)){
120 $submenu['edit.php?post_type=acf-field-group'] = array_merge($new_menu, $all_menu);
121 }
122
123 }
124
125
126 /**
127 * assign_submenu
128 *
129 * @param $new_menu
130 * @param $new_menu_key
131 * @param $item
132 * @param $all_menu
133 * @param $all_menu_key
134 */
135 function assign_submenu(&$new_menu, $new_menu_key, $item, &$all_menu, $all_menu_key){
136
137 $new_menu[ $new_menu_key ] = $item;
138 unset($all_menu[ $all_menu_key ]);
139
140 }
141
142 }
143
144 new acfe_admin_menu();
145
146 endif;