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 -51 1.11.3 → 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,27 +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 -
48 76 // get all options
49 77 $adminimizeoptions = _mw_adminimize_get_option_value();
50 78
51 79 // add admin bar array
52 - $adminimizeoptions[ $settings ] = $all_toolbar_nodes;
80 + $adminimizeoptions[ 'mw_adminimize_admin_bar_frontend_nodes' ] = $all_toolbar_nodes;
53 81
54 82 // update options
55 83 _mw_adminimize_update_option( $adminimizeoptions );
56 84 }
@@ -55,70 +83,125 @@
55 83 _mw_adminimize_update_option( $adminimizeoptions );
56 84 }
57 85 }
58 86
87 +add_action( 'admin_bar_menu', '_mw_adminimize_change_admin_bar', 99999 );
59 88 /**
60 - * 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
61 90 * Exclude Super Admin, if active
62 91 * Exclude Settings page of Adminimize
63 92 *
64 93 * @since 1.8.1 01/10/2013
94 + *
95 + * @param $wp_admin_bar
96 + *
97 + * @return null
65 98 */
66 -function _mw_adminimize_change_admin_bar() {
99 +function _mw_adminimize_change_admin_bar( $wp_admin_bar ) {
67 100
68 - // Only for users, there logged in.
69 - if ( ! is_user_logged_in() ) {
101 + // works only for back end admin bar
102 + if ( ! is_admin() ) {
70 103 return;
71 104 }
72 105
73 - // Exclude super admin.
106 + if ( _mw_adminimize_exclude_settings_page() ) {
107 + return;
108 + }
109 +
110 + // Exclude super admin
74 111 if ( _mw_adminimize_exclude_super_admin() ) {
75 112 return;
76 113 }
77 114
78 - // Exclude the new settings of the Admin Bar on settings page of Adminimize.
79 - if ( _mw_adminimize_exclude_settings_page() ) {
80 - 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 + );
81 123 }
82 124
83 - // If the admin bar is not active, filtering is not necessary.
84 - if ( ! is_admin_bar_showing() ) {
85 - return;
125 + foreach ( $user_roles as $role ) {
126 +
127 + if ( ! isset( $disabled_admin_bar_option_[ $role ][ '0' ] ) ) {
128 + $disabled_admin_bar_option_[ $role ][ '0' ] = '';
129 + }
86 130 }
87 131
88 - /** @var $wp_admin_bar WP_Admin_Bar */
89 - global $wp_admin_bar;
132 + foreach ( $user_roles as $role ) {
133 + $user = wp_get_current_user();
90 134
91 - // Get current user data.
92 - $user = wp_get_current_user();
93 - if ( ! $user->roles ) {
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 + ) {
140 +
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
146 + }
147 +
148 +}
149 +
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() ) {
94 166 return;
95 167 }
96 168
97 - // Get all roles of logged in user.
98 - $user_roles = $user->roles;
99 - //$user_roles = _mw_adminimize_get_all_user_roles();
100 - $disabled_admin_bar_option_ = array();
169 + // Exclude super admin
170 + if ( _mw_adminimize_exclude_super_admin() ) {
171 + return;
172 + }
101 173
102 - $role_prefix = is_admin() ? 'mw_adminimize_disabled_admin_bar_' : 'mw_adminimize_disabled_admin_bar_frontend_';
174 + $user_roles = _mw_adminimize_get_all_user_roles();
175 + $disabled_admin_bar_frontend_option_ = '';
103 176
104 177 foreach ( $user_roles as $role ) {
105 - $disabled_admin_bar_option_[] = _mw_adminimize_get_option_value( $role_prefix . $role . '_items' );
178 +
179 + $disabled_admin_bar_frontend_option_[ $role ] = _mw_adminimize_get_option_value(
180 + 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items'
181 + );
106 182 }
107 183
108 - // Merge multidimensional array in to one, flat.
109 - $disabled_admin_bar_option_ = _mw_adminimize_array_flatten( $disabled_admin_bar_option_ );
184 + foreach ( $user_roles as $role ) {
110 185
111 - // Support Multiple Roles for users.
112 - if ( _mw_adminimize_get_option_value( 'mw_adminimize_multiple_roles' ) && 1 < count( $user->roles ) ) {
113 - $disabled_admin_bar_option_ = _mw_adminimize_get_duplicate( $disabled_admin_bar_option_ );
186 + if ( ! isset( $disabled_admin_bar_frontend_option_[ $role ][ '0' ] ) ) {
187 + $disabled_admin_bar_frontend_option_[ $role ][ '0' ] = '';
188 + }
114 189 }
115 190
116 - // No settings for this role, exit.
117 - if ( ! $disabled_admin_bar_option_ ) {
118 - return;
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
119 205 }
120 206
121 - foreach ( (array) $disabled_admin_bar_option_ as $admin_bar_item ) {
122 - $wp_admin_bar->remove_node( $admin_bar_item );
123 - }
124 -}
207 +}