PluginProbe
Adminimize / 1.9.1
Adminimize v1.9.1
1.11.14 1.11.13 1.11.1 1.11.10 1.11.11 1.11.12 1.11.2 1.11.3 1.11.4 1.11.5 1.11.6 1.11.7 1.11.8 1.11.9 1.3 1.4.7 1.6 1.7.12 1.7.13 1.7.14 1.7.15 1.7.16 1.7.17 1.7.18 1.7.19 All 53 releases
← All changes | inc-setup/admin-bar-items.php +134 -50 1.11.1 → 1.9.1 View file →
@@ -9,22 +9,20 @@
9 9 echo "Hi there! I'm just a part of plugin, not much I can do when called directly.";
10 10 exit;
11 11 }
12 12
13 -// Get all Admin Bar items, different between front- and backend.
14 -add_action( 'wp_before_admin_bar_render', '_mw_adminimize_get_admin_bar_nodes', 99999 );
15 -// Render the Admin bar new, different between front- and backend.
16 -add_action( 'wp_before_admin_bar_render', '_mw_adminimize_change_admin_bar', 99999 );
17 -
13 +//add_action( 'wp_before_admin_bar_render', '_mw_adminimize_get_admin_bar_nodes', 9999 );
14 +add_action( 'admin_bar_menu', '_mw_adminimize_get_admin_bar_nodes', 99999 );
18 15 /**
19 16 * Get all admin bar items in back end and write in a options of Adminimize settings array
20 17 *
21 - * @since 1.8.1 01/10/2013
18 + * @since 1.8.1 01/10/2013
19 + *
20 + * @param $wp_admin_bar
22 21 */
23 -function _mw_adminimize_get_admin_bar_nodes() {
22 +function _mw_adminimize_get_admin_bar_nodes( $wp_admin_bar ) {
24 23
25 - // Only Administrator get all items.
26 - if ( ! current_user_can( 'manage_options' ) ) {
24 + if ( ! is_admin() ) {
27 25 return;
28 26 }
29 27
30 28 if ( _mw_adminimize_exclude_settings_page() ) {
@@ -30,26 +28,57 @@
30 28 if ( _mw_adminimize_exclude_settings_page() ) {
31 29 return;
32 30 }
33 31
34 - /** @var $wp_admin_bar WP_Admin_Bar */
35 - global $wp_admin_bar;
36 -
37 32 // @see: http://codex.wordpress.org/Function_Reference/get_nodes
38 33 $all_toolbar_nodes = $wp_admin_bar->get_nodes();
39 34
40 - $settings = 'mw_adminimize_admin_bar_frontend_nodes';
41 - // Set string on settings for Admin Area.
35 + if ( $all_toolbar_nodes ) {
36 + // get all options
37 + $adminimizeoptions = _mw_adminimize_get_option_value();
38 +
39 + // add admin bar array
40 + $adminimizeoptions[ 'mw_adminimize_admin_bar_nodes' ] = $all_toolbar_nodes;
41 +
42 + // update options
43 + _mw_adminimize_update_option( $adminimizeoptions );
44 + }
45 +}
46 +
47 +//add_action( 'wp_before_admin_bar_render', '_mw_adminimize_get_admin_bar_frontend_nodes', 9999 );
48 +add_action( 'admin_bar_menu', '_mw_adminimize_get_admin_bar_frontend_nodes', 99999 );
49 +/**
50 + * Get admin bar items from frontend view.
51 + *
52 + * @since 2015-07-03
53 + *
54 + * @param $wp_admin_bar
55 + *
56 + * @return null
57 + */
58 +function _mw_adminimize_get_admin_bar_frontend_nodes( $wp_admin_bar ) {
59 +
60 + if ( ! is_user_logged_in() ) {
61 + return;
62 + }
63 +
42 64 if ( is_admin() ) {
43 - $settings = 'mw_adminimize_admin_bar_nodes';
65 + return;
44 66 }
45 67
68 + // Only the right capability allow to get all items and update settings.
69 + if ( ! current_user_can( 'manage_options' ) ) {
70 + return;
71 + }
72 + // @see: http://codex.wordpress.org/Function_Reference/get_nodes
73 + $all_toolbar_nodes = $wp_admin_bar->get_nodes();
74 +
46 75 if ( $all_toolbar_nodes ) {
47 76 // get all options
48 77 $adminimizeoptions = _mw_adminimize_get_option_value();
49 78
50 79 // add admin bar array
51 - $adminimizeoptions[ $settings ] = $all_toolbar_nodes;
80 + $adminimizeoptions[ 'mw_adminimize_admin_bar_frontend_nodes' ] = $all_toolbar_nodes;
52 81
53 82 // update options
54 83 _mw_adminimize_update_option( $adminimizeoptions );
55 84 }
@@ -54,70 +83,125 @@
54 83 _mw_adminimize_update_option( $adminimizeoptions );
55 84 }
56 85 }
57 86
87 +add_action( 'admin_bar_menu', '_mw_adminimize_change_admin_bar', 99999 );
58 88 /**
59 - * Remove items in Admin Bar for current role of current active user in front end area
89 + * Remove items in Admin Bar for current role of current active user in back end area
60 90 * Exclude Super Admin, if active
61 91 * Exclude Settings page of Adminimize
62 92 *
63 93 * @since 1.8.1 01/10/2013
94 + *
95 + * @param $wp_admin_bar
96 + *
97 + * @return null
64 98 */
65 -function _mw_adminimize_change_admin_bar() {
99 +function _mw_adminimize_change_admin_bar( $wp_admin_bar ) {
66 100
67 - // Only for users, there logged in.
68 - if ( ! is_user_logged_in() ) {
101 + // works only for back end admin bar
102 + if ( ! is_admin() ) {
69 103 return;
70 104 }
71 105
72 - // Exclude super admin.
73 - if ( _mw_adminimize_exclude_super_admin() ) {
106 + if ( _mw_adminimize_exclude_settings_page() ) {
74 107 return;
75 108 }
76 109
77 - // Exclude the new settings of the Admin Bar on settings page of Adminimize.
78 - if ( _mw_adminimize_exclude_settings_page() ) {
110 + // Exclude super admin
111 + if ( _mw_adminimize_exclude_super_admin() ) {
79 112 return;
80 113 }
81 114
82 - // If the admin bar is not active, filtering is not necessary.
83 - if ( ! is_admin_bar_showing() ) {
84 - return;
115 + $user_roles = _mw_adminimize_get_all_user_roles();
116 + $disabled_admin_bar_option_ = array();
117 +
118 + foreach ( $user_roles as $role ) {
119 +
120 + $disabled_admin_bar_option_[ $role ] = _mw_adminimize_get_option_value(
121 + 'mw_adminimize_disabled_admin_bar_' . $role . '_items'
122 + );
85 123 }
86 124
87 - /** @var $wp_admin_bar WP_Admin_Bar */
88 - global $wp_admin_bar;
125 + foreach ( $user_roles as $role ) {
89 126
90 - // Get current user data.
91 - $user = wp_get_current_user();
92 - if ( ! $user->roles ) {
93 - return;
127 + if ( ! isset( $disabled_admin_bar_option_[ $role ][ '0' ] ) ) {
128 + $disabled_admin_bar_option_[ $role ][ '0' ] = '';
129 + }
94 130 }
95 131
96 - // Get all roles of logged in user.
97 - $user_roles = $user->roles;
98 - //$user_roles = _mw_adminimize_get_all_user_roles();
99 - $disabled_admin_bar_option_ = array();
132 + foreach ( $user_roles as $role ) {
133 + $user = wp_get_current_user();
100 134
101 - $role_prefix = is_admin() ? 'mw_adminimize_disabled_admin_bar_' : `mw_adminimize_disabled_admin_bar_frontend_`;
135 + if ( is_array( $user->roles )
136 + && in_array( $role, $user->roles )
137 + && _mw_adminimize_current_user_has_role( $role )
138 + && is_array( $disabled_admin_bar_option_[ $role ] )
139 + ) {
102 140
103 - foreach( $user_roles as $role ) {
104 - $disabled_admin_bar_option_[] = _mw_adminimize_get_option_value( $role_prefix . $role . '_items' );
141 + foreach ( $disabled_admin_bar_option_[ $role ] as $admin_bar_item ) {
142 + $wp_admin_bar->remove_node( $admin_bar_item );
143 + }
144 +
145 + } // end if user roles
105 146 }
106 147
107 - // Merge multidimensional array in to one, flat.
108 - $disabled_admin_bar_option_ = _mw_adminimize_array_flatten( $disabled_admin_bar_option_ );
148 +}
109 149
110 - // Support Multiple Roles for users.
111 - if ( _mw_adminimize_get_option_value( 'mw_adminimize_multiple_roles' ) && 1 < count( $user->roles ) ) {
112 - $disabled_admin_bar_option_ = _mw_adminimize_get_duplicate( $disabled_admin_bar_option_ );
150 +add_action( 'admin_bar_menu', '_mw_adminimize_change_admin_bar_frontend', 99999 );
151 +/**
152 + * Remove items in Admin Bar for current role of current active user in front end area
153 + * Exclude Super Admin, if active
154 + * Exclude Settings page of Adminimize
155 + *
156 + * @since 1.8.1 01/10/2013
157 + *
158 + * @param $wp_admin_bar
159 + *
160 + * @return null
161 + */
162 +function _mw_adminimize_change_admin_bar_frontend( $wp_admin_bar ) {
163 +
164 + // works only for back end admin bar
165 + if ( is_admin() ) {
166 + return;
113 167 }
114 168
115 - // No settings for this role, exit.
116 - if ( ! $disabled_admin_bar_option_ ) {
169 + // Exclude super admin
170 + if ( _mw_adminimize_exclude_super_admin() ) {
117 171 return;
118 172 }
119 173
120 - foreach ( (array) $disabled_admin_bar_option_ as $admin_bar_item ) {
121 - $wp_admin_bar->remove_node( $admin_bar_item );
174 + $user_roles = _mw_adminimize_get_all_user_roles();
175 + $disabled_admin_bar_frontend_option_ = '';
176 +
177 + foreach ( $user_roles as $role ) {
178 +
179 + $disabled_admin_bar_frontend_option_[ $role ] = _mw_adminimize_get_option_value(
180 + 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items'
181 + );
122 182 }
123 -}
183 +
184 + foreach ( $user_roles as $role ) {
185 +
186 + if ( ! isset( $disabled_admin_bar_frontend_option_[ $role ][ '0' ] ) ) {
187 + $disabled_admin_bar_frontend_option_[ $role ][ '0' ] = '';
188 + }
189 + }
190 +
191 + foreach ( $user_roles as $role ) {
192 + $user = wp_get_current_user();
193 +
194 + if ( is_array( $user->roles )
195 + && in_array( $role, $user->roles )
196 + && _mw_adminimize_current_user_has_role( $role )
197 + && is_array( $disabled_admin_bar_frontend_option_[ $role ] )
198 + ) {
199 +
200 + foreach ( $disabled_admin_bar_frontend_option_[ $role ] as $admin_bar_item ) {
201 + $wp_admin_bar->remove_node( $admin_bar_item );
202 + }
203 +
204 + } // end if user roles
205 + }
206 +
207 +}