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 | adminimize.php +1561 -746 1.3 → 1.9.1 View file →
@@ -1,957 +1,1772 @@
1 1 <?php
2 -
3 -/*
4 -Plugin Name: Adminimize
5 -Plugin URI: http://bueltge.de/wordpress-admin-theme-adminimize/674/
6 -Description: Visually compresses the administratrive header so that more admin page content can be initially seen. Also moves 'Dashboard' onto the main administrative menu because having it sit in the tip-top black bar was ticking me off and many other changes in the edit-area. The plugin that lets you hide 'unnecessary' items from the WordPress administration menu, with or without admins. You can also hide post meta controls on the edit-area to simplify the interface.
7 -Author: Frank Bueltge
8 -Author URI: http://bueltge.de/
9 -Version: 1.3
10 -Last Update: 01.08.2008 08:35:48
11 -*/
12 -
13 2 /**
14 - * The stylesheet and the initial idea is from Eric A. Meyer, http://meyerweb.com/
15 - * and i have written a plugin with many options on the basis
16 - * of differently user-right and a user-friendly range in admin-area.
3 + * Plugin Name: Adminimize
4 + * Plugin URI: https://wordpress.org/plugins/adminimize/
5 + * Text Domain: adminimize
6 + * Domain Path: /languages
7 + * Description: Visually compresses the administrative meta-boxes so that more admin page content can be initially seen. The plugin that lets you hide 'unnecessary' items from the WordPress administration menu, for all roles of your install. You can also hide post meta controls on the edit-area to simplify the interface. It is possible to simplify the admin in different for all roles.
8 + * Author: Frank Bültge
9 + * Author URI: http://bueltge.de/
10 + * Version: 1.9.1
11 + * License: GPLv2+
17 12 *
18 - * The javascript for de/activate ist by Oliver Schl�be, http://www.schloebe.de
19 - * - many thanks
13 + * @package WordPress
14 + * @author Frank Bültge <[email protected]>
15 + * @license http://opensource.org/licenses/gpl-license.php GNU Public License
16 + * @version 2016-01-25
20 17 */
21 18
19 +/**
20 + * The stylesheet and the initial idea is from Eric A. Meyer http://meyerweb.com/
21 + * I have written a plugin with many options on the basis idea
22 + * of differently user-right and a user-friendly range in admin-area via reduce areas.
23 + * :( grmpf i have so much wishes and hints form users, there use the plugin and
24 + * it is not easy to development this on my free time.
25 + */
22 26
23 -// Pre-2.6 compatibility
24 -if ( !defined('WP_CONTENT_URL') )
25 - define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
26 -if ( !defined('WP_CONTENT_DIR') )
27 - define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
27 +if ( ! function_exists( 'add_action' ) ) {
28 + echo "Hi there! I'm just a part of plugin, not much I can do when called directly.";
29 + exit;
30 +}
28 31
32 +// plugin definitions
33 +define( 'FB_ADMINIMIZE_BASENAME', plugin_basename( __FILE__ ) );
34 +define( 'FB_ADMINIMIZE_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) );
29 35
30 -function _mw_adminimize_textdomain() {
36 +function _mw_adminimize_get_plugin_data( $value = 'Version' ) {
31 37
32 - if (function_exists('load_plugin_textdomain')) {
33 - if ( !defined('WP_PLUGIN_DIR') ) {
34 - load_plugin_textdomain('adminimize', str_replace( ABSPATH, '', dirname(__FILE__) ) . '/languages');
35 - } else {
36 - load_plugin_textdomain('adminimize', false, dirname(plugin_basename(__FILE__)) . '/languages');
37 - }
38 + if ( ! function_exists( 'get_plugin_data' ) ) {
39 + require_once ABSPATH . '/wp-admin/includes/plugin.php';
38 40 }
41 +
42 + $plugin_data = get_plugin_data( __FILE__ );
43 + $plugin_value = $plugin_data[ $value ];
44 +
45 + return $plugin_value;
39 46 }
40 47
48 +/**
49 + * Load language files.
50 + */
51 +function _mw_adminimize_textdomain() {
41 52
53 + load_plugin_textdomain(
54 + _mw_adminimize_get_plugin_data( 'TextDomain' ),
55 + FALSE,
56 + dirname( FB_ADMINIMIZE_BASENAME ) . _mw_adminimize_get_plugin_data( 'DomainPath' )
57 + );
58 +}
59 +
42 60 /**
43 - * some basic security with nonce
44 - * @var $_mw_adminimize_nonce
61 + * Exclude the Super Admin of Multisite.
62 + *
63 + * @return bool
45 64 */
46 -if ( !function_exists('wp_nonce_field') ) {
47 - function _mw_adminimize_nonce_field($action = -1) {
48 - return;
65 +function _mw_adminimize_exclude_super_admin() {
66 +
67 + if ( ! function_exists( 'is_super_admin' ) ) {
68 + return FALSE;
49 69 }
50 - $_mw_adminimize_nonce = -1;
51 -} else {
52 - function _mw_adminimize_nonce_field($action = -1) {
53 - return wp_nonce_field($action);
70 +
71 + if ( ! is_super_admin() ) {
72 + return FALSE;
54 73 }
55 - $_mw_adminimize_nonce = '_mw_adminimize_update_key';
74 +
75 + if ( 1 === (int) _mw_adminimize_get_option_value( '_mw_adminimize_exclude_super_admin' ) ) {
76 + return TRUE;
77 + }
78 +
79 + return FALSE;
56 80 }
57 81
82 +/**
83 + * Get the status, if is on the settings page.
84 + *
85 + * @return bool
86 + */
87 +function _mw_adminimize_exclude_settings_page() {
58 88
89 + if ( ! function_exists( 'get_current_screen' ) ) {
90 + return TRUE;
91 + }
92 +
93 + // Get admin page
94 + $screen = get_current_screen();
95 +
96 + // Don't filter on settings page
97 + if ( isset( $screen->id ) && FALSE !== strpos( $screen->id, 'adminimize' ) ) {
98 + return TRUE;
99 + }
100 +
101 + return FALSE;
102 +}
103 +
59 104 /**
60 - * some basics for message
61 - * @var $_mw_adminimize_nonce
105 + * Get status, if the plugin active network wide.
106 + *
107 + * @return bool
62 108 */
63 -class _mw_adminimize_message_class {
64 - function _mw_adminimize_message_class() {
65 - $this->localizionName = 'adminimize';
66 - $this->errors = new WP_Error();
67 - $this->initialize_errors();
109 +function _mw_adminimize_is_active_on_multisite() {
110 +
111 + if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
112 + require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
68 113 }
69 -
70 - /**
71 - get_error - Returns an error message based on the passed code
72 - Parameters - $code (the error code as a string)
73 - Returns an error message
74 - */
75 - function get_error($code = '') {
76 - $errorMessage = $this->errors->get_error_message($code);
77 - if ($errorMessage == null) {
78 - return __("Unbekannter Fehler.", $this->localizionName);
114 +
115 + if ( is_multisite() && is_plugin_active_for_network( MW_ADMIN_FILE ) ) {
116 + return TRUE;
117 + }
118 +
119 + return FALSE;
120 +}
121 +
122 +/**
123 + * Returns an array with all user roles(names) in it.
124 + * Inclusive self defined roles (for example with the 'Role Manager' plugin).
125 + *
126 + * @uses $wp_roles
127 + * @return array $user_roles
128 + */
129 +function _mw_adminimize_get_all_user_roles() {
130 +
131 + global $wp_roles;
132 +
133 + $user_roles = array();
134 +
135 + if ( NULL !== $wp_roles->roles && is_array( $wp_roles->roles ) ) {
136 + /** @var array $wp_roles */
137 + foreach ( $wp_roles->roles as $role => $data ) {
138 + $user_roles[] = $role;
139 + //$data contains caps, maybe for later use..
79 140 }
80 - return $errorMessage;
81 141 }
82 -
83 - // Initializes all the error messages
84 - function initialize_errors() {
85 - $this->errors->add('_mw_adminimize_update', __('Die Einstellungen wurden gespeichert.', 'adminimize'));
86 - $this->errors->add('_mw_adminimize_access_denied', __('Du hast nicht ausreichend Rechte um diese Aktion durchzuf&uuml;hren!', 'adminimize'));
87 - $this->errors->add('_mw_adminimize_deinstall', __('Die Einstellungen wurde gel&ouml;scht!', 'adminimize'));
88 - $this->errors->add('_mw_adminimize_deinstall_yes', __('Checkbox setzen, wenn wirklich deinstalliert werden soll!', 'adminimize'));
89 - $this->errors->add('_mw_adminimize_get_option', __('Menu und Submenu k&ouml;nnen nicht geladen werden!', 'adminimize'));
90 - $this->errors->add('_mw_adminimize_set_theme', __('Backend-Theme wurde zugewiesen!', 'adminimize'));
142 +
143 + // Exclude the new bbPress roles.
144 + $user_roles = array_diff(
145 + $user_roles,
146 + array( 'bbp_keymaster', 'bbp_moderator', 'bbp_participant', 'bbp_spectator', 'bbp_blocked' )
147 + );
148 +
149 + return $user_roles;
150 +}
151 +
152 +/**
153 + * _mw_adminimize_get_all_user_roles_names() - Returns an array with all user roles_names in it.
154 + * Inclusive self defined roles (for example with the 'Role Manager' plugin).
155 + *
156 + * @uses $wp_roles
157 + * @return array $user_roles_names
158 + */
159 +function _mw_adminimize_get_all_user_roles_names() {
160 +
161 + global $wp_roles;
162 +
163 + $user_roles_names = array();
164 +
165 + /** @var array $wp_roles */
166 + foreach ( $wp_roles->role_names as $role_name => $data ) {
167 + if ( function_exists( 'translate_user_role' ) ) {
168 + $data = translate_user_role( $data );
169 + } else {
170 + $data = esc_attr_x( $data, 'Translate each user role.' );
171 + }
172 +
173 + $user_roles_names[] = $data;
91 174 }
175 +
176 + // exclude the new bbPress roles
177 + $user_roles_names = array_diff(
178 + $user_roles_names,
179 + array(
180 + esc_attr__( 'Keymaster', 'bbpress' ),
181 + esc_attr__( 'Moderator', 'bbpress' ),
182 + esc_attr__( 'Participant', 'bbpress' ),
183 + esc_attr__( 'Spectator', 'bbpress' ),
184 + esc_attr__( 'Blocked', 'bbpress' ),
185 + )
186 + );
187 +
188 + return $user_roles_names;
92 189 }
93 190
191 +/**
192 + * return post type
193 + */
194 +function _mw_get_current_post_type() {
94 195
196 + global $post, $typenow, $current_screen;
197 +
198 + //we have a post so we can just get the post type from that
199 + if ( $post && $post->post_type ) {
200 + return $post->post_type;
201 + } //check the global $typenow - set in admin.php
202 + else if ( $typenow ) {
203 + return $typenow;
204 + } // check the global $current_screen object - set in sceen.php
205 + else if ( $current_screen && $current_screen->post_type ) {
206 + return $current_screen->post_type;
207 + } // lastly check the post_type querystring
208 + else if ( isset( $_REQUEST[ 'post_type' ] ) ) {
209 + return sanitize_key( $_REQUEST[ 'post_type' ] );
210 + }
211 +
212 + // we do not know the post type!
213 + return NULL;
214 +}
215 +
95 216 /**
96 - * check user-option and add new style
97 - * @uses $pagenow
217 + * Check user-option and add new style.
98 218 */
99 -function _mw_adminimize_init() {
100 - global $pagenow, $menu, $submenu;
219 +function _mw_adminimize_admin_init() {
101 220
102 - $disabled_metaboxes_post = get_option('mw_adminimize_disabled_metaboxes_post');
103 - $disabled_metaboxes_page = get_option('mw_adminimize_disabled_metaboxes_page');
104 - $disabled_metaboxes_post_adm = get_option('mw_adminimize_disabled_metaboxes_post_adm');
105 - $disabled_metaboxes_page_adm = get_option('mw_adminimize_disabled_metaboxes_page_adm');
221 + global $pagenow, $post_type, $menu, $submenu;
106 222
107 - $_mw_admin_color = get_user_option('admin_color');
223 + if ( isset( $_GET[ 'post' ] ) && ! is_array( $_GET[ 'post' ] ) ) {
224 + $post_id = (int) esc_attr( $_GET[ 'post' ] );
225 + } elseif ( isset( $_POST[ 'post_ID' ] ) ) {
226 + $post_id = (int) esc_attr( $_POST[ 'post_ID' ] );
227 + } else {
228 + $post_id = 0;
229 + }
108 230
109 - if ( ($_mw_admin_color == 'mw_fresh') ||
110 - ($_mw_admin_color == 'mw_classic') ||
111 - ($_mw_admin_color == 'mw_colorblind') ||
112 - ($_mw_admin_color == 'mw_grey') ||
113 - ($_mw_admin_color == 'mw_fresh_ozh_am') ||
114 - ($_mw_admin_color == 'mw_classic_ozh_am') ||
115 - ($_mw_admin_color == 'mw_fresh_lm') ||
116 - ($_mw_admin_color == 'mw_classic_lm') ||
117 - ($_mw_admin_color == 'mw_wp23')
118 - ) {
119 - if ( ($_mw_admin_color == 'mw_fresh') ||
120 - ($_mw_admin_color == 'mw_classic') ||
121 - ($_mw_admin_color == 'mw_colorblind') ||
122 - ($_mw_admin_color == 'mw_grey') ||
123 - ($_mw_admin_color == 'mw_wp23')
124 - ) {
125 - add_action('admin_head', '_mw_adminimize_adminmenu', 1);
231 + $current_post_type = $post_type;
232 + if ( ! isset( $current_post_type ) || empty( $current_post_type ) ) {
233 + $current_post_type = get_post_type( $post_id );
234 + }
235 + if ( ! isset( $current_post_type ) || empty( $current_post_type ) ) {
236 + $current_post_type = _mw_get_current_post_type();
237 + }
238 + if ( ! $current_post_type ) // set hard to post
239 + {
240 + $current_post_type = 'post';
241 + }
242 +
243 + // Get all user rolles.
244 + $user_roles = _mw_adminimize_get_all_user_roles();
245 +
246 + // Get settings.
247 + $adminimizeoptions = _mw_adminimize_get_option_value();
248 +
249 + // pages for post type Post
250 + $def_post_pages = array( 'edit.php', 'post.php', 'post-new.php' );
251 + $def_post_types = array( 'post' );
252 + $disabled_metaboxes_post_all = array();
253 + // pages for post type Page
254 + $def_page_pages = array_merge( $def_post_pages, array( 'page-new.php', 'page.php' ) );
255 + $def_page_types = array( 'page' );
256 + $disabled_metaboxes_page_all = array();
257 + // pages for custom post types
258 + $def_custom_pages = $def_post_pages;
259 + $args = array( 'public' => TRUE, '_builtin' => FALSE );
260 + $def_custom_types = get_post_types( $args );
261 + // pages for link pages
262 + $link_pages = array( 'link.php', 'link-manager.php', 'link-add.php', 'edit-link-categories.php' );
263 + // pages for nav menu
264 + $nav_menu_pages = array( 'nav-menus.php' );
265 + // widget pages
266 + $widget_pages = array( 'widgets.php' );
267 +
268 + foreach ( $user_roles as $role ) {
269 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
270 + 'mw_adminimize_disabled_admin_bar_' . $role . '_items'
271 + );
272 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
273 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
274 + );
275 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
276 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
277 + );
278 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
279 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
280 + );
281 + foreach ( $def_custom_types as $post_type ) {
282 + $disabled_metaboxes_[ $post_type . '_' . $role ] = _mw_adminimize_get_option_value(
283 + 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items'
284 + );
126 285 }
286 + $disabled_link_option_[ $role ] = _mw_adminimize_get_option_value(
287 + 'mw_adminimize_disabled_link_option_' . $role . '_items'
288 + );
289 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
290 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
291 + );
292 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
293 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
294 + );
295 + $disabled_metaboxes_post_all[] = $disabled_metaboxes_post_[ $role ];
296 + $disabled_metaboxes_page_all[] = $disabled_metaboxes_page_[ $role ];
297 + }
127 298
128 - if ( ('post-new.php' == $pagenow) || ('post.php' == $pagenow) ) {
129 - add_action('admin_head', '_mw_adminimize_remove_box', 99);
130 - add_action('admin_head', '_mw_adminimize_remove_tb_window');
131 -
132 - //add_filter('image_downsize', '_mw_adminimize_image_downsize', 1, 3);
133 -
134 - if ( !in_array('#categorydivsb', $disabled_metaboxes_post) || !in_array('#categorydivsb', $disabled_metaboxes_post_adm) )
135 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_category_box');
136 - if ( !in_array('#tagsdivsb', $disabled_metaboxes_post) || !in_array('#tagsdivsb', $disabled_metaboxes_post_adm) )
137 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_tag_box');
138 - if ( in_array('media_buttons', $disabled_metaboxes_post) || in_array('media_buttons', $disabled_metaboxes_post_adm) )
139 - remove_action('media_buttons', 'media_buttons');
299 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
300 +
301 + // global options
302 + // exclude super admin
303 + if ( ! _mw_adminimize_exclude_super_admin() ) {
304 + $_mw_adminimize_footer = (int) _mw_adminimize_get_option_value( '_mw_adminimize_footer' );
305 + switch ( $_mw_adminimize_footer ) {
306 + case 1:
307 + wp_enqueue_script(
308 + '_mw_adminimize_remove_footer',
309 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/remove_footer' . $suffix . '.js',
310 + array( 'jquery' )
311 + );
312 + break;
140 313 }
141 314
142 - if ( ('page-new.php' == $pagenow) || ('page.php' == $pagenow) ) {
143 - add_action('admin_head', '_mw_adminimize_remove_tb_window');
144 -
145 - //add_filter('image_downsize', '_mw_adminimize_image_downsize', 1, 3);
315 + $_mw_adminimize_header = (int) _mw_adminimize_get_option_value( '_mw_adminimize_header' );
316 + switch ( $_mw_adminimize_header ) {
317 + case 1:
318 + wp_enqueue_script(
319 + '_mw_adminimize_remove_header',
320 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/remove_header' . $suffix . '.js',
321 + array( 'jquery' )
322 + );
323 + break;
324 + }
146 325
147 - if ( in_array('media_buttons', $disabled_metaboxes_page) || in_array('media_buttons', $disabled_metaboxes_page_adm) )
148 - remove_action('media_buttons', 'media_buttons');
326 + //post-page options
327 + if ( in_array( $pagenow, $def_post_pages, FALSE ) ) {
328 +
329 + $_mw_adminimize_tb_window = (int) _mw_adminimize_get_option_value( '_mw_adminimize_tb_window' );
330 + switch ( $_mw_adminimize_tb_window ) {
331 + case 1:
332 + wp_deregister_script( 'media-upload' );
333 + wp_enqueue_script(
334 + 'media-upload',
335 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/tb_window' . $suffix . '.js',
336 + array( 'thickbox' )
337 + );
338 + break;
339 + }
340 + $_mw_adminimize_timestamp = (int) _mw_adminimize_get_option_value( '_mw_adminimize_timestamp' );
341 + switch ( $_mw_adminimize_timestamp ) {
342 + case 1:
343 + wp_enqueue_script(
344 + '_mw_adminimize_timestamp',
345 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/timestamp' . $suffix . '.js',
346 + array( 'jquery' )
347 + );
348 + break;
349 + }
350 +
351 + //category options
352 + $_mw_adminimize_cat_full = (int) _mw_adminimize_get_option_value( '_mw_adminimize_cat_full' );
353 + switch ( $_mw_adminimize_cat_full ) {
354 + case 1:
355 + wp_enqueue_style(
356 + 'adminimize-full-category',
357 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/css/mw_cat_full' . $suffix . '.css'
358 + );
359 + break;
360 + }
361 +
362 + // set default editor tinymce
363 + if ( _mw_adminimize_recursive_in_array(
364 + '#editor-toolbar #edButtonHTML, #quicktags, #content-html',
365 + $disabled_metaboxes_page_all
366 + )
367 + || _mw_adminimize_recursive_in_array(
368 + '#editor-toolbar #edButtonHTML, #quicktags, #content-html',
369 + $disabled_metaboxes_post_all
370 + )
371 + ) {
372 + add_filter( 'wp_default_editor', create_function( '', 'return "tinymce";' ) );
373 + }
374 +
375 + // remove media bottons
376 + if ( _mw_adminimize_recursive_in_array( 'media_buttons', $disabled_metaboxes_page_all )
377 + || _mw_adminimize_recursive_in_array( 'media_buttons', $disabled_metaboxes_post_all )
378 + ) {
379 + remove_action( 'media_buttons', 'media_buttons' );
380 + }
149 381 }
150 382
151 383 }
152 384
153 - if ( ('post-new.php' == $pagenow) || ('page-new.php' == $pagenow) || ('page.php' == $pagenow) || ('post.php' == $pagenow) ) {
154 -
155 - $_mw_adminimize_writescroll = get_option('_mw_adminimize_writescroll');
156 - switch ($_mw_adminimize_writescroll) {
157 - case 1:
158 - add_action('admin_head', '_mw_adminimize_writescroll');
159 - break;
160 - }
161 - $_mw_adminimize_tb_window = get_option('_mw_adminimize_tb_window');
162 - switch ($_mw_adminimize_tb_window) {
163 - case 1:
164 - add_action('admin_head', '_mw_adminimize_tb_window');
165 - break;
166 - }
167 - // set user option in edit-area
168 - add_action('admin_head', '_mw_adminimize_set_user_option_edit');
169 - }
170 -
171 385 // set menu option
172 - add_action('admin_head', '_mw_adminimize_set_menu_option', 1);
386 + add_action( 'admin_head', '_mw_adminimize_set_menu_option', 1 );
387 + // global_options
388 + add_action( 'admin_head', '_mw_adminimize_set_global_option', 1 );
173 389
174 - // set metabox option
175 - add_action('admin_head', '_mw_adminimize_set_metabox_option', 1);
390 + // set metabox post option
391 + if ( in_array( $pagenow, $def_post_pages, FALSE ) && in_array( $current_post_type, $def_post_types, FALSE ) ) {
392 + add_action( 'admin_head', '_mw_adminimize_set_metabox_post_option', 1 );
393 + }
394 + // set metabox page option
395 + if ( in_array( $pagenow, $def_page_pages, FALSE ) && in_array( $current_post_type, $def_page_types, FALSE ) ) {
396 + add_action( 'admin_head', '_mw_adminimize_set_metabox_page_option', 1 );
397 + }
398 + // set custom post type options
399 + if ( function_exists( 'get_post_types' ) && in_array( $pagenow, $def_custom_pages, FALSE )
400 + && in_array(
401 + $current_post_type, $def_custom_types, FALSE
402 + )
403 + ) {
404 + add_action( 'admin_head', '_mw_adminimize_set_metabox_cp_option', 1 );
405 + }
406 + // set link option
407 + if ( in_array( $pagenow, $link_pages, FALSE ) ) {
408 + add_action( 'admin_head', '_mw_adminimize_set_link_option', 1 );
409 + }
410 + // set wp nav menu options
411 + if ( in_array( $pagenow, $nav_menu_pages, FALSE ) ) {
412 + add_action( 'admin_head', '_mw_adminimize_set_nav_menu_option', 1 );
413 + }
414 + // set widget options
415 + if ( in_array( $pagenow, $widget_pages, FALSE ) ) {
416 + add_action( 'admin_head', '_mw_adminimize_set_widget_option', 1 );
417 + }
176 418
177 - add_action('in_admin_footer', '_mw_adminimize_admin_footer');
178 -
179 - update_option('mw_adminimize_default_menu', $menu);
180 - update_option('mw_adminimize_default_submenu', $submenu);
419 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $menu;
420 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $submenu;
181 421 }
182 422
183 -add_action('init', '_mw_adminimize_textdomain');
184 -add_action('admin_menu', '_mw_adminimize_add_settings_page');
185 -add_action('admin_menu', '_mw_adminimize_remove_dashboard');
186 -add_action('admin_init', '_mw_adminimize_init', 1);
187 -add_action('admin_init', '_mw_adminimize_admin_styles', 1);
423 +/**
424 + * Init always with WP
425 + */
426 +function _mw_adminimize_init() {
188 427
189 -register_activation_hook(__FILE__, '_mw_adminimize_install');
190 -//register_deactivation_hook(__FILE__, '_mw_adminimize_deinstall');
428 + // change Admin Bar and user Info
429 + if ( version_compare( $GLOBALS[ 'wp_version' ], '3.3alpha', '>=' ) ) {
430 + _mw_adminimize_set_menu_option_33();
431 + } else {
432 + add_action( 'admin_head', '_mw_adminimize_set_user_info' );
433 + add_action( 'wp_head', '_mw_adminimize_set_user_info' );
434 + }
191 435
436 +}
192 437
193 -/**
194 - * remove tb_window of media-uplader
195 - * @echo script
196 - */
197 -function _mw_adminimize_remove_tb_window() {
198 -
199 - $_mw_adminimize_remove_tb_window = "\n";
200 - $_mw_adminimize_remove_tb_window .= '<script type="text/javascript">' . "\n";
201 - $_mw_adminimize_remove_tb_window .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#TB_window\').remove(); });' . "\n";
202 - $_mw_adminimize_remove_tb_window .= '</script>' . "\n";
203 -
204 - print($_mw_adminimize_remove_tb_window);
438 +// on admin init
439 +define( 'MW_ADMIN_FILE', plugin_basename( __FILE__ ) );
440 +if ( is_admin() ) {
441 + add_action( 'admin_init', '_mw_adminimize_textdomain' );
442 + add_action( 'admin_init', '_mw_adminimize_admin_init', 2 );
443 + add_action( 'admin_menu', '_mw_adminimize_add_settings_page' );
444 + add_action( 'admin_menu', '_mw_adminimize_remove_dashboard' );
205 445 }
446 +add_action( 'init', '_mw_adminimize_init', 2 );
206 447
448 +register_activation_hook( __FILE__, '_mw_adminimize_install' );
449 +register_uninstall_hook( __FILE__, '_mw_adminimize_deinstall' );
450 +//register_deactivation_hook(__FILE__, '_mw_adminimize_deinstall' );
207 451
208 452 /**
209 - * new tb_window of media-uplader
453 + * Remove the dashboard
210 454 */
211 -function _mw_adminimize_tb_window() {
212 -
213 - ?>
214 - <script type="text/javascript">
215 - // thickbox settings
216 - jQuery(function($) {
217 - tb_position = function() {
218 - var tbWindow = $('#TB_window');
219 - var width = $(window).width();
220 - var H = $(window).height();
221 - var W = ( 1720 < width ) ? 1720 : width;
222 -
223 - if ( tbWindow.size() ) {
224 - tbWindow.width( W - 50 ).height( H - 45 );
225 - $('#TB_iframeContent').width( W - 50 ).height( H - 75 );
226 - tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
227 - if ( ! ( $.browser.msie && $.browser.version.substr(0,1) < 7 ) )
228 - tbWindow.css({'top':'20px','margin-top':'0'});
229 - $('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
230 - };
231 -
232 - return $('a.thickbox').each( function() {
233 - var href = $(this).attr('href');
234 - if ( ! href ) return;
235 - href = href.replace(/&width=[0-9]+/g, '');
236 - href = href.replace(/&height=[0-9]+/g, '');
237 - $(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 ) );
238 - });
239 - };
240 -
241 - $(window).resize( function() { tb_position() } );
242 - });
243 - </script>
244 - <?php
245 -}
455 +function _mw_adminimize_remove_dashboard() {
246 456
457 + // exclude super admin
458 + if ( _mw_adminimize_exclude_super_admin() ) {
459 + return;
460 + }
247 461
248 -/**
249 - * Uses WordPress filter for image_downsize, kill wp-image-dimension
250 - * code by Andrew Rickmann
251 - * http://www.wp-fun.co.uk/
252 - * @param $value, $id, $size
253 - */
254 -function _mw_adminimize_image_downsize($value = false,$id = 0, $size = "medium") {
462 + // Leave the settings screen from Adminimize to see all areas on settings.
463 + if ( _mw_adminimize_exclude_settings_page() ) {
464 + return;
465 + }
255 466
256 - if ( !wp_attachment_is_image($id) )
257 - return false;
258 -
259 - $img_url = wp_get_attachment_url($id);
260 - // Mimic functionality in image_downsize function in wp-includes/media.php
261 - if ( $intermediate = image_get_intermediate_size($id, $size) ) {
262 - $img_url = str_replace(basename($img_url), $intermediate['file'], $img_url);
467 + global $menu, $user_ID;
468 +
469 + $disabled_menu_ = '';
470 + $disabled_submenu_ = '';
471 + $user_roles = _mw_adminimize_get_all_user_roles();
472 +
473 + foreach ( $user_roles as $role ) {
474 + $disabled_menu_[ $role ] = _mw_adminimize_get_option_value(
475 + 'mw_adminimize_disabled_menu_' . $role . '_items'
476 + );
477 + $disabled_submenu_[ $role ] = _mw_adminimize_get_option_value(
478 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
479 + );
263 480 }
264 - elseif ( $size == 'thumbnail' ) {
265 - // fall back to the old thumbnail
266 - if ( $thumb_file = wp_get_attachment_thumb_file() && $info = getimagesize($thumb_file) ) {
267 - $img_url = str_replace(basename($img_url), basename($thumb_file), $img_url);
481 +
482 + $disabled_menu_all = array();
483 + $disabled_submenu_all = array();
484 +
485 + foreach ( $user_roles as $role ) {
486 + $disabled_menu_all[] = $disabled_menu_[ $role ];
487 + $disabled_submenu_all[] = $disabled_submenu_[ $role ];
488 + }
489 +
490 + // remove dashboard
491 + if ( $disabled_menu_all !== '' || $disabled_submenu_all !== '' ) {
492 +
493 + $redirect = FALSE;
494 + foreach ( $user_roles as $role ) {
495 + if ( _mw_adminimize_current_user_has_role( $role ) ) {
496 + if ( _mw_adminimize_recursive_in_array( 'index.php', $disabled_menu_[ $role ] )
497 + || _mw_adminimize_recursive_in_array( 'index.php', $disabled_submenu_[ $role ] )
498 + ) {
499 + $redirect = TRUE;
500 + }
501 + }
268 502 }
269 - }
270 - if ( $img_url)
271 - return array($img_url, 0, 0);
272 - return false;
273 -}
274 503
504 + // redirect option, if Dashboard is inactive
505 + if ( $redirect ) {
506 + $_mw_adminimize_db_redirect = (int) _mw_adminimize_get_option_value(
507 + '_mw_adminimize_db_redirect'
508 + );
509 + $_mw_adminimize_db_redirect_admin_url = get_option( 'siteurl' ) . '/wp-admin/';
510 + switch ( $_mw_adminimize_db_redirect ) {
511 + case 0:
512 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php';
513 + break;
514 + case 1:
515 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php';
516 + break;
517 + case 2:
518 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page';
519 + break;
520 + case 3:
521 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php';
522 + break;
523 + case 4:
524 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php';
525 + break;
526 + case 5:
527 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php';
528 + break;
529 + case 6:
530 + $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value( '_mw_adminimize_db_redirect_txt' );
531 + break;
532 + }
275 533
276 -/**
277 - * Automatically scroll Write pages to a good position
278 - * code by Dougal Campbell
279 - * http://dougal.gunters.org/blog/2008/06/03/writescroll
280 - */
281 -function _mw_adminimize_writescroll() {
282 -
283 - ?>
284 - <script type="text/javascript">
285 - jQuery(document).ready(function() {
286 - // element to scroll
287 - var h = jQuery('html');
288 - // position to scroll to
289 - var wraptop = jQuery('div#poststuff').offset().top;
290 - var speed = 250; // ms
291 - h.animate({scrollTop: wraptop}, speed);
292 - });
293 - </script>
294 - <?php
295 -}
534 + $the_user = new WP_User( $user_ID );
535 + reset( $menu );
536 + $page = key( $menu );
296 537
538 + $dashboard_core_string = esc_attr__( 'Dashboard' );
539 + $dashboard = array( $menu[ $page ][ 0 ], $menu[ $page ][ 1 ] );
540 + while (
541 + ! in_array( $dashboard_core_string, $dashboard, FALSE ) && next( $menu )
542 + ) {
543 + $page = key( $menu );
544 + }
297 545
298 -/**
299 - * list category-box in sidebar
300 - * @uses $post_ID
301 - */
302 -function _mw_adminimize_sidecat_list_category_box() {
303 - global $post_ID;
304 - ?>
546 + if ( in_array( $dashboard_core_string, $dashboard, FALSE ) ) {
547 + unset( $menu[ $page ] );
548 + }
549 + reset( $menu );
550 + $page = key( $menu );
305 551
306 - <div class="inside" id="categorydivsb">
307 - <p><strong><?php _e("Categories"); ?></strong></p>
308 - <ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
309 - <?php wp_category_checklist($post_ID); ?>
310 - </ul>
311 - <?php if ( !defined('WP_PLUGIN_DIR') ) { // for wp <2.6 ?>
312 - <div id="category-adder" class="wp-hidden-children">
313 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
314 - <p id="category-add" class="wp-hidden-child">
315 - <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" />
316 - <?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
317 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
318 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
319 - <span id="category-ajax-response"></span>
320 - </p>
321 - </div>
322 - <?php } else { ?>
323 - <div id="category-adder" class="wp-hidden-children">
324 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
325 - <p id="category-add" class="wp-hidden-child">
326 - <label class="hidden" for="newcat"><?php _e( 'Add New Category' ); ?></label><input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" aria-required="true"/>
327 - <br />
328 - <label class="hidden" for="newcat_parent"><?php _e('Parent category'); ?>:</label><?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
329 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
330 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
331 - <span id="category-ajax-response"></span>
332 - </p>
333 - </div>
334 - <?php } ?>
335 - </div>
336 -<?php
552 + while ( ! $the_user->has_cap( $menu[ $page ][ 1 ] ) && next( $menu ) ) {
553 + $page = key( $menu );
554 + }
555 +
556 + if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER[ 'REQUEST_URI' ] ) ) {
557 + wp_redirect( $_mw_adminimize_db_redirect );
558 + }
559 + }
560 +
561 + }
337 562 }
338 563
339 -
340 564 /**
341 - * list tag-box in sidebar
342 - * @uses $post_ID
565 + * Set menu options from database.
343 566 */
344 -function _mw_adminimize_sidecat_list_tag_box() {
345 - global $post_ID;
567 +function _mw_adminimize_set_user_info() {
346 568
347 - if ( !class_exists('SimpleTagsAdmin') ) {
348 - ?>
349 - <div class="inside" id="tagsdivsb">
350 - <p><strong><?php _e('Tags'); ?></strong></p>
351 - <p id="jaxtag"><label class="hidden" for="newtag"><?php _e('Tags'); ?></label><input type="text" name="tags_input" class="tags-input" id="tags-input" size="40" tabindex="3" value="<?php echo get_tags_to_edit($post_ID); ?>" /></p>
352 - <div id="tagchecklist"></div>
353 - </div>
354 - <?php
569 + if ( _mw_adminimize_exclude_settings_page() ) {
570 + return;
355 571 }
356 -}
357 572
573 + // exclude super admin
574 + if ( _mw_adminimize_exclude_super_admin() ) {
575 + return;
576 + }
358 577
359 -/**
360 - * remove default categorydiv
361 - * @echo script
362 - */
363 -function _mw_adminimize_remove_box() {
364 -
365 - if ( function_exists('remove_meta_box') ) {
366 - if ( !class_exists('SimpleTagsAdmin') )
367 - remove_meta_box('tagsdiv', 'post', 'normal');
368 - remove_meta_box('categorydiv', 'post', 'normal');
369 - } else {
370 - $_mw_adminimize_sidecat_admin_head = "\n" . '<script type="text/javascript">' . "\n";
371 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#categorydiv\').remove(); });' . "\n";
372 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#tagsdiv\').remove(); });' . "\n";
373 - $_mw_adminimize_sidecat_admin_head .= '</script>' . "\n";
578 + global $user_identity;
374 579
375 - print($_mw_adminimize_sidecat_admin_head);
580 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
581 + $user_roles = _mw_adminimize_get_all_user_roles();
582 +
583 + foreach ( $user_roles as $role ) {
584 + $disabled_menu_[ $role ] = _mw_adminimize_get_option_value(
585 + 'mw_adminimize_disabled_menu_' . $role . '_items'
586 + );
587 + $disabled_submenu_[ $role ] = _mw_adminimize_get_option_value(
588 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
589 + );
376 590 }
377 -}
378 591
592 + $_mw_adminimize_admin_head = "\n";
593 + $_mw_adminimize_user_info = (int) _mw_adminimize_get_option_value( '_mw_adminimize_user_info' );
594 + $_mw_adminimize_ui_redirect = (int) _mw_adminimize_get_option_value( '_mw_adminimize_ui_redirect' );
379 595
380 -/**
381 - * reorder admin-menu
382 - * @uses $menu
383 - * @param $file
384 - */
385 -function _mw_adminimize_adminmenu($file) {
386 - global $menu;
387 -
388 - $menu[7] = $menu[5];
389 - $menu[5] = $menu[0];
390 - $menu[32] = $menu[40];
391 - $menu[40] = $menu[35];
392 - $menu[35] = $menu[30];
393 - $menu[30] = $menu[15];
394 - unset($menu[0]);
395 - unset($menu[15]);
596 + // change user-info
597 + switch ( $_mw_adminimize_user_info ) {
598 + case 1:
599 + $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
600 + $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\' ).remove(); });' . "\n";
601 + $_mw_adminimize_admin_head .= '</script>' . "\n";
602 + break;
603 + case 2:
604 + $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename(
605 + dirname( __FILE__ )
606 + ) . '/css/mw_small_user_info' . $suffix . '.css" type="text/css" />' . "\n";
607 +
608 + $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
609 + $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\' ).remove();';
610 + if ( 1 === (int) $_mw_adminimize_ui_redirect ) {
611 + $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\' ).after(\'<div id="small_user_info"><p><a href="' . get_option(
612 + 'siteurl'
613 + ) . wp_nonce_url(
614 + ( '/wp-login.php?action=logout&amp;redirect_to=' ) . get_option( 'siteurl' ), 'log-out'
615 + ) . '" title="' . esc_attr__( 'Log Out' ) . '">' . esc_attr__(
616 + 'Log Out'
617 + ) . '</a></p></div>\' ) });' . "\n";
618 + } else {
619 + $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\' ).after(\'<div id="small_user_info"><p><a href="' . get_option(
620 + 'siteurl'
621 + ) . wp_nonce_url( ( '/wp-login.php?action=logout' ), 'log-out' ) . '" title="' . esc_attr__(
622 + 'Log Out'
623 + ) . '">' . esc_attr__( 'Log Out' ) . '</a></p></div>\' ) });' . "\n";
624 + }
625 + $_mw_adminimize_admin_head .= '</script>' . "\n";
626 + break;
627 + case 3:
628 + $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename(
629 + dirname( __FILE__ )
630 + ) . '/css/mw_small_user_info' . $suffix . '.css" type="text/css" />' . "\n";
631 +
632 + $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
633 + $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\' ).remove();';
634 + if ( 1 === (int) $_mw_adminimize_ui_redirect ) {
635 + $_mw_adminimize_admin_head .= 'jQuery( \'div#wpcontent\' ).after( \'<div id="small_user_info"><p><a href="' . get_option(
636 + 'siteurl'
637 + ) . ( '/wp-admin/profile.php' ) . '">' . $user_identity . '</a> | <a href="' . get_option(
638 + 'siteurl'
639 + ) . wp_nonce_url(
640 + ( '/wp-login.php?action=logout&amp;redirect_to=' ) . get_option( 'siteurl' ), 'log-out'
641 + ) . '" title="' . esc_attr__( 'Log Out' ) . '">' . esc_attr__(
642 + 'Log Out'
643 + ) . '</a></p></div>\' ) });' . "\n";
644 + } else {
645 + $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\' ).after(\'<div id="small_user_info"><p><a href="' . get_option(
646 + 'siteurl'
647 + ) . ( '/wp-admin/profile.php' ) . '">' . $user_identity . '</a> | <a href="' . get_option(
648 + 'siteurl'
649 + ) . wp_nonce_url( ( '/wp-login.php?action=logout' ), 'log-out' ) . '" title="' . esc_attr__(
650 + 'Log Out'
651 + ) . '">' . esc_attr__( 'Log Out' ) . '</a></p></div>\' ) });' . "\n";
652 + }
653 + $_mw_adminimize_admin_head .= '</script>' . "\n";
654 + break;
655 + }
656 +
657 + echo $_mw_adminimize_admin_head;
396 658 }
397 659
398 -
399 660 /**
400 - * add new adminstyle to usersettings
401 - * @param $file
661 + * Set menu for settings
402 662 */
403 -function _mw_adminimize_admin_styles($file) {
404 -
405 - $_mw_adminimize_path = WP_CONTENT_URL . '/plugins/' . plugin_basename( dirname(__FILE__) ) . '/css/';
663 +function _mw_adminimize_set_menu_option() {
406 664
407 - // MW Adminimize Classic
408 - $styleName = 'MW Adminimize:' . ' ' . __('Classic');
409 - wp_admin_css_color (
410 - 'mw_classic', $styleName, $_mw_adminimize_path . 'mw_classic.css',
411 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
412 - );
665 + // exclude super admin
666 + if ( _mw_adminimize_exclude_super_admin() ) {
667 + return NULL;
668 + }
413 669
414 - // MW Adminimize Fresh
415 - $styleName = 'MW Adminimize:' . ' ' . __('Fresh');
416 - wp_admin_css_color (
417 - 'mw_fresh', $styleName, $_mw_adminimize_path . 'mw_fresh.css',
418 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
419 - );
670 + // Leave the settings screen from Adminimize to see all areas on settings.
671 + if ( _mw_adminimize_exclude_settings_page() ) {
672 + return;
673 + }
420 674
421 - // MW Adminimize WordPress 2.3
422 - $styleName = 'MW Adminimize:' . ' ' . __('WordPress 2.3');
423 - wp_admin_css_color (
424 - 'mw_wp23', $styleName, $_mw_adminimize_path . 'mw_wp23.css',
425 - array('#000000', '#14568A', '#448ABD', '#83B4D8')
426 - );
675 + global $menu, $submenu;
427 676
428 - // MW Adminimize Colorblind
429 - $styleName = 'MW Adminimize:' . ' ' . __('Maybe i\'m colorblind');
430 - wp_admin_css_color (
431 - 'mw_colorblind', $styleName, $_mw_adminimize_path . 'mw_colorblind.css',
432 - array('#FF9419', '#F0720C', '#710001', '#550007', '#CF4529')
433 - );
677 + if ( ! isset( $menu ) || empty( $menu ) ) {
678 + return;
679 + }
434 680
435 - // MW Adminimize Grey
436 - $styleName = 'MW Adminimize:' . ' ' . __('Grey');
437 - wp_admin_css_color (
438 - 'mw_grey', $styleName, $_mw_adminimize_path . 'mw_grey.css',
439 - array('#000000', '#787878', '#F0F0F0', '#D8D8D8', '#909090')
440 - );
681 + $user_roles = _mw_adminimize_get_all_user_roles();
682 + $disabled_menu_ = '';
683 + $disabled_submenu_ = '';
441 684
442 - /**
443 - * style and changes for plugin Admin Drop Down Menu
444 - * by Ozh
445 - * http://planetozh.com/blog/my-projects/wordpress-admin-menu-drop-down-css/
446 - */
447 - if ( function_exists('wp_ozh_adminmenu') ) {
448 -
449 - // MW Adminimize Classic include ozh adminmenu
450 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Classic');
451 - wp_admin_css_color (
452 - 'mw_classic_ozh_am', $styleName, $_mw_adminimize_path . 'mw_classic_ozh_am.css',
453 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
685 + foreach ( $user_roles as $role ) {
686 + $disabled_menu_[ $role ] = _mw_adminimize_get_option_value(
687 + 'mw_adminimize_disabled_menu_' . $role . '_items'
454 688 );
455 -
456 - // MW Adminimize Fresh include ozh adminmenu
457 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Fresh');
458 - wp_admin_css_color (
459 - 'mw_fresh_ozh_am', $styleName, $_mw_adminimize_path . 'mw_fresh_ozh_am.css',
460 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
689 + $disabled_submenu_[ $role ] = _mw_adminimize_get_option_value(
690 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
461 691 );
462 -
463 692 }
464 -
465 - /**
466 - * style and changes for plugin Lighter Menus
467 - * by corpodibacco
468 - * http://www.italyisfalling.com/lighter-menus
469 - */
470 - if ( function_exists('lm_build') ) {
471 -
472 - // MW Adminimize Classic include Lighter Menus
473 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Classic');
474 - wp_admin_css_color (
475 - 'mw_classic_lm', $styleName, $_mw_adminimize_path . 'mw_classic_lm.css',
476 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
477 - );
478 -
479 - // MW Adminimize Fresh include Lighter Menus
480 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Fresh');
481 - wp_admin_css_color (
482 - 'mw_fresh_lm', $styleName, $_mw_adminimize_path . 'mw_fresh_lm.css',
483 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
484 - );
485 -
693 +
694 + $mw_adminimize_menu = array();
695 + $mw_adminimize_submenu = array();
696 +
697 + // Set admin-menu.
698 + foreach ( $user_roles as $role ) {
699 +
700 + $user = wp_get_current_user();
701 +
702 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE )
703 + && _mw_adminimize_current_user_has_role(
704 + $role
705 + )
706 + ) {
707 + $mw_adminimize_menu = $disabled_menu_[ $role ];
708 + $mw_adminimize_submenu = $disabled_submenu_[ $role ];
709 + }
486 710 }
487 -}
488 711
712 + // Fallback on users.php on all user roles smaller admin.
713 + if ( is_array( $mw_adminimize_menu ) && in_array( 'users.php', $mw_adminimize_menu, FALSE ) ) {
714 + $mw_adminimize_menu[] = 'profile.php';
715 + }
489 716
490 -/**
491 - * remove the dashbord
492 - * @author of basic Austin Matzko
493 - * http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/
494 - */
495 -function _mw_adminimize_remove_dashboard() {
496 - global $menu, $submenu, $user_ID;
717 + foreach ( $menu as $index => $item ) {
497 718
498 - $disabled_menu = get_option('mw_adminimize_disabled_menu');
499 - $disabled_submenu = get_option('mw_adminimize_disabled_submenu');
500 - $disabled_menu_adm = get_option('mw_adminimize_disabled_menu_adm');
501 - $disabled_submenu_adm = get_option('mw_adminimize_disabled_submenu_adm');
719 + if ( 'index.php' === $item ) {
720 + continue;
721 + }
502 722
503 - // remove dashboard
504 - if ($disabled_menu != '') {
505 - if ( ( in_array('index.php', $disabled_menu) && !current_user_can('level_10') ) ||
506 - ( in_array('index.php', $disabled_submenu) && !current_user_can('level_10') ) ||
507 - ( in_array('index.php', $disabled_menu_adm) && current_user_can('level_10') ) ||
508 - ( in_array('index.php', $disabled_submenu_adm) && current_user_can('level_10') )
509 - ) {
510 -
511 - $_mw_adminimize_db_redirect = get_option('_mw_adminimize_db_redirect');
512 - switch ($_mw_adminimize_db_redirect) {
513 - case 0:
514 - $_mw_adminimize_db_redirect = 'profile.php';
515 - break;
516 - case 1:
517 - $_mw_adminimize_db_redirect = 'edit.php';
518 - break;
519 - case 2:
520 - $_mw_adminimize_db_redirect = 'edit-pages.php';
521 - break;
522 - case 3:
523 - $_mw_adminimize_db_redirect = 'post-new.php';
524 - break;
525 - case 4:
526 - $_mw_adminimize_db_redirect = 'page-new.php';
527 - break;
528 - case 5:
529 - $_mw_adminimize_db_redirect = 'edit-comments.php';
530 - break;
723 + if ( isset( $item[ 2 ] ) ) {
724 + if ( isset( $mw_adminimize_menu ) && is_array( $mw_adminimize_menu )
725 + && in_array(
726 + $item[ 2 ], $mw_adminimize_menu, FALSE
727 + )
728 + ) {
729 + unset( $menu[ $index ] );
531 730 }
532 731
533 - $the_user = new WP_User($user_ID);
534 - reset($menu); $page = key($menu);
535 -
536 - while ( (__('Dashboard') != $menu[$page][0]) && next($menu) || (__('Dashboard') != $menu[$page][1]) && next($menu) )
537 - $page = key($menu);
538 -
539 - if (__('Dashboard') == $menu[$page][0] || __('Dashboard') == $menu[$page][1])
540 - unset($menu[$page]);
541 - reset($menu); $page = key($menu);
542 -
543 - while ( !$the_user->has_cap($menu[$page][1]) && next($menu) )
544 - $page = key($menu);
545 -
546 - if ( preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'])) {
547 - if (function_exists('admin_url')) {
548 - wp_redirect( admin_url($_mw_adminimize_db_redirect) );
549 - } else {
550 - wp_redirect( get_option('siteurl') . '/wp-admin/' . $_mw_adminimize_db_redirect );
732 + if ( isset( $submenu ) && ! empty( $submenu[ $item[ 2 ] ] ) ) {
733 + foreach ( $submenu[ $item[ 2 ] ] as $subindex => $subitem ) {
734 + // Check, if is menu item in the user role settings?
735 + if (
736 + isset( $mw_adminimize_submenu )
737 + && _mw_adminimize_in_arrays(
738 + array( $subitem[ 2 ], $item[ 2 ] . '__' . $subindex ),
739 + $mw_adminimize_submenu
740 + )
741 + ) {
742 + unset( $submenu[ $item[ 2 ] ][ $subindex ] );
743 + }
551 744 }
552 745 }
553 746 }
554 747 }
748 +
555 749 }
556 750
751 +/**
752 + * set global options in backend in all areas
753 + */
754 +function _mw_adminimize_set_global_option() {
557 755
756 + global $_wp_admin_css_colors;
757 +
758 + // exclude super admin
759 + if ( _mw_adminimize_exclude_super_admin() ) {
760 + return NULL;
761 + }
762 +
763 + // Leave the settings screen from Adminimize to see all areas on settings.
764 + if ( _mw_adminimize_exclude_settings_page() ) {
765 + return;
766 + }
767 +
768 + $user_roles = _mw_adminimize_get_all_user_roles();
769 + $_mw_adminimize_admin_head = '';
770 +
771 + foreach ( $user_roles as $role ) {
772 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
773 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
774 + );
775 + }
776 +
777 + foreach ( $user_roles as $role ) {
778 + if ( ! isset( $disabled_global_option_[ $role ][ '0' ] ) ) {
779 + $disabled_global_option_[ $role ][ '0' ] = '';
780 + }
781 + }
782 +
783 + $global_options = '';
784 + // new 1.7.8
785 + foreach ( $user_roles as $role ) {
786 + $user = wp_get_current_user();
787 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
788 + if ( _mw_adminimize_current_user_has_role( $role )
789 + && isset( $disabled_global_option_[ $role ] )
790 + && is_array( $disabled_global_option_[ $role ] )
791 + ) {
792 + $global_options = implode( ', ', $disabled_global_option_[ $role ] );
793 + }
794 + }
795 + }
796 + if ( isset( $global_options ) && 0 != strpos( $global_options, '#your-profile .form-table fieldset' ) ) {
797 + $_wp_admin_css_colors = 0;
798 + }
799 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize global options -->' . "\n";
800 + $_mw_adminimize_admin_head .= '<style type="text/css">' . $global_options . ' {display:none !important;}</style>' . "\n";
801 +
802 + if ( ! empty( $global_options ) ) {
803 + echo $_mw_adminimize_admin_head;
804 + }
805 +}
806 +
558 807 /**
559 - * remove the flash_uploader
808 + * set metabox options from database an area post
560 809 */
561 -function _mw_adminimize_disable_flash_uploader() {
562 - return false;
810 +function _mw_adminimize_set_metabox_post_option() {
811 +
812 + // exclude super admin
813 + if ( _mw_adminimize_exclude_super_admin() ) {
814 + return NULL;
815 + }
816 +
817 + // Leave the settings screen from Adminimize to see all areas on settings.
818 + if ( _mw_adminimize_exclude_settings_page() ) {
819 + return;
820 + }
821 +
822 + $user_roles = _mw_adminimize_get_all_user_roles();
823 + $_mw_adminimize_admin_head = '';
824 + $metaboxes = '';
825 +
826 + foreach ( $user_roles as $role ) {
827 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
828 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
829 + );
830 +
831 + if ( ! isset( $disabled_metaboxes_post_[ $role ][ '0' ] ) ) {
832 + $disabled_metaboxes_post_[ $role ][ '0' ] = '';
833 + }
834 +
835 + // new 1.7.8
836 + $user = wp_get_current_user();
837 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
838 + if ( _mw_adminimize_current_user_has_role( $role ) && isset( $disabled_metaboxes_post_[ $role ] )
839 + && is_array(
840 + $disabled_metaboxes_post_[ $role ]
841 + )
842 + ) {
843 + $metaboxes = implode( ',', $disabled_metaboxes_post_[ $role ] );
844 + }
845 + }
846 + }
847 +
848 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize metabox post options -->' . "\n";
849 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
850 + $metaboxes . ' {display:none !important;}</style>' . "\n";
851 +
852 + if ( ! empty( $metaboxes ) ) {
853 + echo $_mw_adminimize_admin_head;
854 + }
563 855 }
564 856
857 +/**
858 + * set metabox options from database an area page
859 + */
860 +function _mw_adminimize_set_metabox_page_option() {
565 861
862 + // exclude super admin
863 + if ( _mw_adminimize_exclude_super_admin() ) {
864 + return NULL;
865 + }
866 +
867 + // Leave the settings screen from Adminimize to see all areas on settings.
868 + if ( _mw_adminimize_exclude_settings_page() ) {
869 + return;
870 + }
871 +
872 + $user_roles = _mw_adminimize_get_all_user_roles();
873 + $_mw_adminimize_admin_head = '';
874 + $metaboxes = '';
875 +
876 + foreach ( $user_roles as $role ) {
877 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
878 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
879 + );
880 +
881 + if ( ! isset( $disabled_metaboxes_page_[ $role ][ '0' ] ) ) {
882 + $disabled_metaboxes_page_[ $role ][ '0' ] = '';
883 + }
884 +
885 + // new 1.7.8
886 + $user = wp_get_current_user();
887 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
888 + if ( _mw_adminimize_current_user_has_role( $role )
889 + && isset( $disabled_metaboxes_page_[ $role ] )
890 + && is_array( $disabled_metaboxes_page_[ $role ] )
891 + ) {
892 + $metaboxes = implode( ',', $disabled_metaboxes_page_[ $role ] );
893 + }
894 + }
895 + }
896 +
897 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize metabox page options -->' . "\n";
898 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
899 + $metaboxes . ' {display:none !important;}</style>' . "\n";
900 +
901 + if ( ! empty( $metaboxes ) ) {
902 + echo $_mw_adminimize_admin_head;
903 + }
904 +}
905 +
566 906 /**
567 - * set user options from database in edit-area
907 + * set metabox options from database an area post
568 908 */
569 -function _mw_adminimize_set_user_option_edit() {
570 -
571 - $_mw_adminimize_path = WP_CONTENT_URL . '/plugins/' . plugin_basename( dirname(__FILE__) ) . '/css/';
572 -
573 - $_mw_adminimize_sidecat_admin_head = '';
574 - $_mw_adminimize_sidebar_wight = get_option('_mw_adminimize_sidebar_wight');
575 - switch ($_mw_adminimize_sidebar_wight) {
576 - case 300:
577 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
578 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_300_sidebar.css';
579 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
580 - break;
581 - case 400:
582 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
583 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_400_sidebar.css';
584 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
585 - break;
586 - case 20:
587 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
588 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_20p_sidebar.css';
589 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
590 - break;
591 - case 30:
592 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
593 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_30p_sidebar.css';
594 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
595 - break;
909 +function _mw_adminimize_set_metabox_cp_option() {
910 +
911 + // exclude super admin
912 + if ( _mw_adminimize_exclude_super_admin() ) {
913 + return NULL;
596 914 }
597 915
598 - print($_mw_adminimize_sidecat_admin_head);
916 + // Leave the settings screen from Adminimize to see all areas on settings.
917 + if ( _mw_adminimize_exclude_settings_page() ) {
918 + return;
919 + }
920 +
921 + if ( isset( $_GET[ 'post' ] ) ) {
922 + $post_id = (int) $_GET[ 'post' ];
923 + } elseif ( isset( $_POST[ 'post_ID' ] ) ) {
924 + $post_id = (int) $_POST[ 'post_ID' ];
925 + } else {
926 + $post_id = 0;
927 + }
928 +
929 + $current_post_type = $GLOBALS[ 'post_type' ];
930 + if ( ! isset( $current_post_type ) ) {
931 + $current_post_type = get_post_type( $post_id );
932 + }
933 +
934 + if ( ! isset( $current_post_type ) || ! $current_post_type ) {
935 + $current_post_type = str_replace( 'post_type=', '', esc_attr( $_SERVER[ 'QUERY_STRING' ] ) );
936 + }
937 +
938 + // set hard to post
939 + if ( ! $current_post_type ) {
940 + $current_post_type = 'post';
941 + }
942 +
943 + $user_roles = _mw_adminimize_get_all_user_roles();
944 + $_mw_adminimize_admin_head = '';
945 + $metaboxes = '';
946 +
947 + foreach ( $user_roles as $role ) {
948 + $disabled_metaboxes_[ $current_post_type . '_' . $role ] = _mw_adminimize_get_option_value(
949 + 'mw_adminimize_disabled_metaboxes_' . $current_post_type . '_' . $role . '_items'
950 + );
951 +
952 + if ( ! isset( $disabled_metaboxes_[ $current_post_type . '_' . $role ][ '0' ] ) ) {
953 + $disabled_metaboxes_[ $current_post_type . '_' . $role ][ '0' ] = '';
954 + }
955 +
956 + $user = wp_get_current_user();
957 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
958 + if ( _mw_adminimize_current_user_has_role( $role )
959 + && isset( $disabled_metaboxes_[ $current_post_type . '_' . $role ] )
960 + && is_array( $disabled_metaboxes_[ $current_post_type . '_' . $role ] )
961 + ) {
962 + $metaboxes = implode( ',', $disabled_metaboxes_[ $current_post_type . '_' . $role ] );
963 + }
964 + }
965 + }
966 +
967 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize post options -->' . "\n";
968 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
969 + $metaboxes . ' {display:none !important;}</style>' . "\n";
970 +
971 + if ( ! empty( $metaboxes ) ) {
972 + echo $_mw_adminimize_admin_head;
973 + }
599 974 }
600 975
601 -
602 976 /**
603 - * set menu options from database
977 + * set link options in area Links of Backend
604 978 */
605 -function _mw_adminimize_set_menu_option() {
606 - global $pagenow, $menu, $submenu;
607 -
608 - $disabled_menu = get_option('mw_adminimize_disabled_menu');
609 - $disabled_submenu = get_option('mw_adminimize_disabled_submenu');
610 - $disabled_menu_adm = get_option('mw_adminimize_disabled_menu_adm');
611 - $disabled_submenu_adm = get_option('mw_adminimize_disabled_submenu_adm');
979 +function _mw_adminimize_set_link_option() {
612 980
613 - $_mw_adminimize_admin_head = "\n";
614 - $_mw_adminimize_user_info = get_option('_mw_adminimize_user_info');
615 - $_mw_adminimize_ui_redirect = get_option('_mw_adminimize_ui_redirect');
616 - switch ($_mw_adminimize_user_info) {
617 - case 1:
618 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
619 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove(); });' . "\n";
620 - $_mw_adminimize_admin_head .= '</script>' . "\n";
621 - break;
622 - case 2:
623 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . get_option( 'siteurl' ) . '/' . PLUGINDIR . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info.css" type="text/css" />' . "\n";
624 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
625 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove();';
626 - if ($_mw_adminimize_ui_redirect == '1') {
627 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . ('/wp-login.php?action=logout&amp;redirect_to=') . get_option('siteurl') . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
628 - } else {
629 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . ('/wp-login.php?action=logout') . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
981 + // exclude super admin
982 + if ( _mw_adminimize_exclude_super_admin() ) {
983 + return NULL;
984 + }
985 +
986 + // Leave the settings screen from Adminimize to see all areas on settings.
987 + if ( _mw_adminimize_exclude_settings_page() ) {
988 + return;
989 + }
990 +
991 + $user_roles = _mw_adminimize_get_all_user_roles();
992 + $_mw_adminimize_admin_head = '';
993 +
994 + foreach ( $user_roles as $role ) {
995 + $disabled_link_option_[ $role ] = _mw_adminimize_get_option_value(
996 + 'mw_adminimize_disabled_link_option_' . $role . '_items'
997 + );
998 + }
999 +
1000 + foreach ( $user_roles as $role ) {
1001 + if ( ! isset( $disabled_link_option_[ $role ][ '0' ] ) ) {
1002 + $disabled_link_option_[ $role ][ '0' ] = '';
630 1003 }
631 - $_mw_adminimize_admin_head .= '</script>' . "\n";
632 - break;
633 1004 }
634 1005
635 - $_mw_adminimize_footer = get_option('_mw_adminimize_footer');
636 - switch ($_mw_adminimize_footer) {
637 - case 1:
638 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
639 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#footer\').remove(); });' . "\n";
640 - $_mw_adminimize_admin_head .= '</script>' . "\n";
641 - break;
1006 + $link_options = '';
1007 + // new 1.7.8
1008 + foreach ( $user_roles as $role ) {
1009 + $user = wp_get_current_user();
1010 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
1011 + if ( _mw_adminimize_current_user_has_role( $role )
1012 + && isset( $disabled_link_option_[ $role ] )
1013 + && is_array( $disabled_link_option_[ $role ] )
1014 + ) {
1015 + $link_options = implode( ',', $disabled_link_option_[ $role ] );
1016 + }
1017 + }
642 1018 }
643 1019
644 - // timestamp open
645 - $_mw_adminimize_timestamp = get_option('_mw_adminimize_timestamp');
646 - switch ($_mw_adminimize_timestamp) {
647 - case 1:
648 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
649 - $_mw_adminimize_admin_head .= "\t" . 'addLoadEvent(function(){jQuery(\'.edit-timestamp\').click();});' . "\n";
650 - $_mw_adminimize_admin_head .= '</script>' . "\n";
651 - break;
1020 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize links options -->' . "\n";
1021 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1022 + $link_options . ' {display:none !important;}</style>' . "\n";
1023 +
1024 + if ( ! empty( $link_options ) ) {
1025 + echo $_mw_adminimize_admin_head;
652 1026 }
1027 +}
653 1028
654 - $_mw_adminimize_admin_head .= '<script type="text/javascript">
655 - /* <![CDATA[ */
656 - adminimizeL10n = {
657 - all: "' . __('Alle', 'adminimize') . '", none: "' . __('Keine', 'adminimize') . '"
1029 +/**
1030 + * remove objects on wp nav menu
1031 + */
1032 +function _mw_adminimize_set_nav_menu_option() {
1033 +
1034 + // exclude super admin
1035 + if ( _mw_adminimize_exclude_super_admin() ) {
1036 + return NULL;
658 1037 }
659 - /* ]]> */
660 - </script>';
661 - $_mw_adminimize_admin_head .= '<script type="text/javascript" src="' . WP_CONTENT_URL . '/plugins/' . plugin_basename( dirname(__FILE__) ) . '/js/adminimize.js"></script>';
662 1038
663 - // set menu
664 - if ($disabled_menu != '') {
665 -
666 - // set user-menu
667 - if ( !current_user_can('level_10') ) {
668 - foreach ($menu as $index => $item) {
669 - if ($item == 'index.php')
670 - continue;
671 -
672 - if (in_array($item[2], $disabled_menu))
673 - unset($menu[$index]);
674 -
675 - if ( !empty($submenu[$item[2]]) ) {
676 - foreach ($submenu[$item[2]] as $subindex => $subitem) {
677 - if (in_array($subitem[2], $disabled_submenu))
678 - unset($submenu[$item[2]][$subindex]);
679 - }
680 - }
681 - }
1039 + // Leave the settings screen from Adminimize to see all areas on settings.
1040 + if ( _mw_adminimize_exclude_settings_page() ) {
1041 + return;
1042 + }
1043 +
1044 + $user_roles = _mw_adminimize_get_all_user_roles();
1045 + $_mw_adminimize_admin_head = '';
1046 +
1047 + foreach ( $user_roles as $role ) {
1048 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
1049 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
1050 + );
1051 + }
1052 +
1053 + foreach ( $user_roles as $role ) {
1054 + if ( ! isset( $disabled_nav_menu_option_[ $role ][ '0' ] ) ) {
1055 + $disabled_nav_menu_option_[ $role ][ '0' ] = '';
682 1056 }
683 -
684 - // set admin-menu
685 - if ( current_user_can('level_10') ) {
686 - foreach ($menu as $index => $item) {
687 - if ($item == 'index.php')
688 - continue;
689 -
690 - if (in_array($item[2], $disabled_menu_adm))
691 - unset($menu[$index]);
692 -
693 - if ( !empty($submenu[$item[2]]) ) {
694 - foreach ($submenu[$item[2]] as $subindex => $subitem) {
695 - if (in_array($subitem[2], $disabled_submenu_adm))
696 - unset($submenu[$item[2]][$subindex]);
697 - }
698 - }
1057 + }
1058 +
1059 + $nav_menu_options = '';
1060 + // new 1.7.8
1061 + foreach ( $user_roles as $role ) {
1062 + $user = wp_get_current_user();
1063 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
1064 + if ( _mw_adminimize_current_user_has_role( $role )
1065 + && isset( $disabled_nav_menu_option_[ $role ] )
1066 + && is_array( $disabled_nav_menu_option_[ $role ] )
1067 + ) {
1068 + $nav_menu_options = implode( ',', $disabled_nav_menu_option_[ $role ] );
699 1069 }
700 1070 }
701 -
702 1071 }
703 -
704 - print($_mw_adminimize_admin_head);
1072 + //remove_meta_box( $id, 'nav-menus', 'side' );
1073 +
1074 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize WP Nav Menu options -->' . "\n";
1075 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1076 + $nav_menu_options . ' {display: none !important;}</style>' . "\n";
1077 +
1078 + if ( $nav_menu_options ) {
1079 + echo $_mw_adminimize_admin_head;
1080 + }
705 1081 }
706 1082
707 -
708 1083 /**
709 - * set metabox options from database
1084 + * Remove areas in Widget Settings
710 1085 */
711 -function _mw_adminimize_set_metabox_option() {
712 - global $pagenow;
713 -
714 - $_mw_adminimize_admin_head = "\n";
715 -
716 - // post
717 - if ( ('post-new.php' == $pagenow) || ('post.php' == $pagenow) ) {
718 - remove_action('admin_head', 'index_js');
1086 +function _mw_adminimize_set_widget_option() {
719 1087
720 - $disabled_metaboxes_post = get_option('mw_adminimize_disabled_metaboxes_post');
721 - $disabled_metaboxes_post_adm = get_option('mw_adminimize_disabled_metaboxes_post_adm');
722 -
723 - if ( current_user_can('level_10') ) {
724 - $metaboxes = implode(',', $disabled_metaboxes_post_adm); // for admins
725 - } else {
726 - $metaboxes = implode(',', $disabled_metaboxes_post); // < user level 10, admin
1088 + // exclude super admin
1089 + if ( _mw_adminimize_exclude_super_admin() ) {
1090 + return NULL;
1091 + }
1092 +
1093 + // Leave the settings screen from Adminimize to see all areas on settings.
1094 + if ( _mw_adminimize_exclude_settings_page() ) {
1095 + return;
1096 + }
1097 +
1098 + $user_roles = _mw_adminimize_get_all_user_roles();
1099 + $_mw_adminimize_admin_head = '';
1100 +
1101 + foreach ( $user_roles as $role ) {
1102 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
1103 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
1104 + );
1105 + }
1106 +
1107 + foreach ( $user_roles as $role ) {
1108 + if ( ! isset( $disabled_widget_option_[ $role ][ '0' ] ) ) {
1109 + $disabled_widget_option_[ $role ][ '0' ] = '';
727 1110 }
728 -
729 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
730 1111 }
731 -
732 - // page
733 - if ( ('page-new.php' == $pagenow) || ('page.php' == $pagenow) ) {
734 - remove_action('admin_head', 'index_js');
735 -
736 - $disabled_metaboxes_page = get_option('mw_adminimize_disabled_metaboxes_page');
737 - $disabled_metaboxes_page_adm = get_option('mw_adminimize_disabled_metaboxes_page_adm');
738 -
739 - if ( current_user_can('level_10') ) {
740 - $metaboxes = implode(',', $disabled_metaboxes_page_adm);
741 - } else {
742 - $metaboxes = implode(',', $disabled_metaboxes_page); // < user level 10, admin
1112 +
1113 + $widget_options = '';
1114 + // new 1.7.8
1115 + foreach ( $user_roles as $role ) {
1116 + $user = wp_get_current_user();
1117 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, FALSE ) ) {
1118 + if ( _mw_adminimize_current_user_has_role( $role )
1119 + && isset( $disabled_widget_option_[ $role ] )
1120 + && is_array( $disabled_widget_option_[ $role ] )
1121 + ) {
1122 + $widget_options = implode( ',', $disabled_widget_option_[ $role ] );
1123 + }
743 1124 }
744 -
745 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
746 1125 }
747 -
748 - print($_mw_adminimize_admin_head);
1126 + //remove_meta_box( $id, 'nav-menus', 'side' );
1127 +
1128 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize Widget options -->' . "\n";
1129 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1130 + $widget_options . ' {display: none !important;}</style>' . "\n";
1131 +
1132 + if ( $widget_options ) {
1133 + echo $_mw_adminimize_admin_head;
1134 + }
749 1135 }
750 1136
751 -
752 1137 /**
753 1138 * small user-info
754 - * @uses $post_ID
755 1139 */
756 1140 function _mw_adminimize_small_user_info() {
757 -?>
1141 +
1142 + ?>
758 1143 <div id="small_user_info">
759 - <p><a href="<?php echo site_url('wp-login.php?action=logout') ?>" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a></p>
1144 + <p>
1145 + <a href="<?php echo wp_nonce_url(
1146 + site_url( 'wp-login.php?action=logout' ),
1147 + 'log-out'
1148 + ) ?>"
1149 + title="<?php esc_attr_e( 'Log Out' ) ?>"><?php esc_attr_e( 'Log Out' ); ?></a>
1150 + </p>
760 1151 </div>
761 -<?php
1152 + <?php
762 1153 }
763 1154
1155 +// Include message class.
1156 +require_once 'inc-setup/messages.php';
1157 +// include helping functions
1158 +require_once 'inc-setup/helping_hands.php';
764 1159
765 -/**
766 - * include options-page in wp-admin
767 - */
768 -require_once('adminimize_page.php');
1160 +// inc. settings page
1161 +require_once 'adminimize_page.php';
769 1162
1163 +// dashboard options
1164 +require_once 'inc-setup/dashboard.php';
770 1165
771 -/**
772 - * credit in wp-footer
773 - */
774 -function _mw_adminimize_admin_footer() {
775 - $plugin_data = get_plugin_data( __FILE__ );
776 - $plugin_data['Title'] = $plugin_data['Name'];
777 - if ( !empty($plugin_data['PluginURI']) && !empty($plugin_data['Name']) )
778 - $plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '" title="'.__( 'Visit plugin homepage' ).'">' . $plugin_data['Name'] . '</a>';
779 -
780 - if ( basename($_SERVER['REQUEST_URI']) == 'adminimize.php') {
781 - printf('%1$s ' . __('plugin') . ' | ' . __('Version') . ' <a href="http://bueltge.de/wordpress-admin-theme-adminimize/674/#historie" title="' . __('Historie', 'adminimize') . '">%2$s</a> | ' . __('Author') . ' %3$s<br />', $plugin_data['Title'], $plugin_data['Version'], $plugin_data['Author']);
782 - }
783 - if ( get_option('_mw_adminimize_advice') == 1 && basename($_SERVER['REQUEST_URI']) != 'adminimize.php' ) {
784 - printf('%1$s ' . __('plugin aktiv', 'adminimize') . ' | ' . stripslashes( get_option('_mw_adminimize_advice_txt') ) . '<br />', $plugin_data['Title']);
785 - }
786 -}
1166 +// widget options
1167 +require_once 'inc-setup/widget.php';
1168 +require_once 'inc-setup/admin-footer.php';
787 1169
1170 +// global settings
1171 +// @TODO Testing, not ready for productive
1172 +//require_once( 'inc-options/settings_notice.php' );
788 1173
1174 +// remove admin bar
1175 +require_once 'inc-setup/remove-admin-bar.php';
1176 +
1177 +// admin bar helper, setup
1178 +// work always in frontend
1179 +require_once 'inc-setup/admin-bar-items.php';
1180 +
1181 +// meta boxes helper, setup
1182 +// @TODO Meta Boxes: not ready for productive systems.
1183 +//require_once( 'inc-setup/meta-boxes.php' );
1184 +
1185 +// Remove Admin Notices.
1186 +require_once 'inc-setup/remove-admin-notices.php';
1187 +
789 1188 /**
790 1189 * Add action link(s) to plugins page
791 - * Thanks Dion Hulse -- http://dd32.id.au/wordpress-plugins/?configure-link
1190 + *
1191 + * @param $links , $file
1192 + * @param $file
1193 + *
1194 + * @return $links
792 1195 */
793 -function _mw_adminimize_filter_plugin_actions($links, $file){
794 - static $this_plugin;
1196 +function _mw_adminimize_filter_plugin_meta( $links, $file ) {
795 1197
796 - if( !$this_plugin ) $this_plugin = plugin_basename(__FILE__);
1198 + /* create link */
1199 + if ( FB_ADMINIMIZE_BASENAME === $file ) {
1200 + array_unshift(
1201 + $links,
1202 + sprintf( '<a href="options-general.php?page=%s">%s</a>', FB_ADMINIMIZE_BASENAME, esc_attr__( 'Settings' ) )
1203 + );
1204 + }
797 1205
798 - if( $file == $this_plugin ){
799 - $settings_link = '<a href="options-general.php?page=adminimize/adminimize.php">' . __('Settings') . '</a>';
800 - $links = array_merge( array($settings_link), $links); // before other links
801 -// $links[] = $settings_link; // ... or after other links
802 - }
803 1206 return $links;
804 1207 }
805 1208
806 -
807 1209 /**
808 1210 * settings in plugin-admin-page
809 1211 */
810 1212 function _mw_adminimize_add_settings_page() {
811 - if( current_user_can('switch_themes') ) {
812 - add_submenu_page('options-general.php', __('Adminimize Einstellungen', 'adminimize'), __('Adminimize', 'adminimize'), 8, __FILE__, '_mw_adminimize_options');
813 - add_filter('plugin_action_links', '_mw_adminimize_filter_plugin_actions', 10, 2);
1213 +
1214 + $pagehook = add_options_page(
1215 + esc_attr__( 'Adminimize Options', 'adminimize' ),
1216 + esc_attr__( 'Adminimize', 'adminimize' ),
1217 + 'manage_options',
1218 + __FILE__,
1219 + '_mw_adminimize_options'
1220 + );
1221 + if ( ! is_network_admin() ) {
1222 + add_filter( 'plugin_action_links', '_mw_adminimize_filter_plugin_meta', 10, 2 );
814 1223 }
1224 + add_action( 'load-' . $pagehook, '_mw_adminimize_on_load_page' );
815 1225 }
816 1226
1227 +function _mw_adminimize_on_load_page() {
817 1228
1229 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1230 +
1231 + wp_register_style( 'adminimize-style', plugins_url( 'css/style' . $suffix . '.css', __FILE__ ) );
1232 + wp_enqueue_style( 'adminimize-style' );
1233 +
1234 + wp_register_script(
1235 + 'adminimize-settings-script',
1236 + plugins_url( 'js/adminimize' . $suffix . '.js', __FILE__ ),
1237 + array( 'jquery' ),
1238 + '',
1239 + TRUE
1240 + );
1241 + wp_enqueue_script( 'adminimize-settings-script' );
1242 +}
1243 +
818 1244 /**
819 - * Set theme for users y user_level 10
1245 + * Set theme for users
1246 + * Kill with version 1.7.18
820 1247 */
821 1248 function _mw_adminimize_set_theme() {
822 1249
823 - if ( !current_user_can('edit_users') )
824 - wp_die(__('Cheatin&#8217; uh?'));
1250 + if ( ! current_user_can( 'edit_users' ) ) {
1251 + wp_die( esc_attr__( 'Cheatin&#8217; uh?' ) );
1252 + }
825 1253
826 - $user_ids = $_POST[mw_adminimize_theme_items];
827 - $admin_color = htmlspecialchars( stripslashes( $_POST[_mw_adminimize_set_theme] ) );
1254 + $user_ids = $_POST[ 'mw_adminimize_theme_items' ];
1255 + $admin_color = htmlspecialchars( stripslashes( $_POST[ '_mw_adminimize_set_theme' ] ) );
828 1256
829 - if ( !$user_ids )
830 - return false;
1257 + if ( ! $user_ids ) {
1258 + return FALSE;
1259 + }
831 1260
832 - foreach( $user_ids as $user_id) {
833 - $user_id = (int) $user_id;
834 - update_usermeta($user_id, 'admin_color', $admin_color);
1261 + foreach ( $user_ids as $user_id ) {
1262 + update_user_meta( $user_id, 'admin_color', $admin_color );
835 1263 }
1264 +
1265 + return TRUE;
836 1266 }
837 1267
1268 +/**
1269 + * Get setting value for each options key.
1270 + *
1271 + * @param string|bool $key
1272 + *
1273 + * @return array
1274 + */
1275 +function _mw_adminimize_get_option_value( $key = FALSE ) {
838 1276
1277 + // check for use on multisite
1278 + if ( _mw_adminimize_is_active_on_multisite() ) {
1279 + $adminimizeoptions = get_site_option( 'mw_adminimize', array() );
1280 + } else {
1281 + $adminimizeoptions = get_option( 'mw_adminimize', array() );
1282 + }
1283 +
1284 + if ( ! $key ) {
1285 + return $adminimizeoptions;
1286 + }
1287 +
1288 + /** @var array $adminimizeoptions */
1289 + return array_key_exists( $key, $adminimizeoptions ) ? $adminimizeoptions[ $key ] : NULL;
1290 +}
1291 +
839 1292 /**
1293 + * Update options.
1294 + *
1295 + * @param array $options
1296 + */
1297 +function _mw_adminimize_update_option( $options ) {
1298 +
1299 + if ( ! current_user_can( 'manage_options' ) ) {
1300 + return;
1301 + }
1302 +
1303 + if ( _mw_adminimize_is_active_on_multisite() ) {
1304 + update_site_option( 'mw_adminimize', $options );
1305 + } else {
1306 + update_option( 'mw_adminimize', $options );
1307 + }
1308 +}
1309 +
1310 +/**
840 1311 * Update options in database
841 1312 */
842 1313 function _mw_adminimize_update() {
843 - global $menu, $submenu;
844 -
845 - // for a smaller database
846 - function _mw_adminimize_get_update($option) {
847 - if ( ($_POST[$option] == '0') || $_POST[$option] == '') {
848 - delete_option($option);
1314 +
1315 + $user_roles = _mw_adminimize_get_all_user_roles();
1316 + $args = array( 'public' => TRUE, '_builtin' => FALSE );
1317 + $post_types = get_post_types( $args );
1318 +
1319 + // Admin Bar Back end settings
1320 + $adminimizeoptions[ 'mw_adminimize_admin_bar_nodes' ] = _mw_adminimize_get_option_value(
1321 + 'mw_adminimize_admin_bar_nodes'
1322 + );
1323 + // admin bar back end options
1324 + foreach ( $user_roles as $role ) {
1325 + // admin bar back end options
1326 + if ( isset( $_POST[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] ) ) {
1327 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = $_POST[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ];
849 1328 } else {
850 - update_option($option , $_POST[$option]);
1329 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = array();
851 1330 }
852 1331 }
853 -
854 - _mw_adminimize_get_update('_mw_adminimize_sidebar_wight');
855 - _mw_adminimize_get_update('_mw_adminimize_user_info');
856 - _mw_adminimize_get_update('_mw_adminimize_footer');
857 - _mw_adminimize_get_update('_mw_adminimize_writescroll');
858 - _mw_adminimize_get_update('_mw_adminimize_tb_window');
859 - _mw_adminimize_get_update('_mw_adminimize_db_redirect');
860 - _mw_adminimize_get_update('_mw_adminimize_ui_redirect');
861 - _mw_adminimize_get_update('_mw_adminimize_advice');
862 - _mw_adminimize_get_update('_mw_adminimize_advice_txt');
863 - _mw_adminimize_get_update('_mw_adminimize_timestamp');
864 -
865 - // wp menu, submenu
866 - update_option('mw_adminimize_default_menu', $menu);
867 - update_option('mw_adminimize_default_submenu', $submenu);
868 -
869 - // disabled wp menu, submenu
870 - update_option('mw_adminimize_disabled_menu',
871 - isset($_POST['mw_adminimize_disabled_menu_items']) ? $_POST['mw_adminimize_disabled_menu_items'] : array()
1332 +
1333 + // Admin Bar Front end settings
1334 + $adminimizeoptions[ 'mw_adminimize_admin_bar_frontend_nodes' ] = _mw_adminimize_get_option_value(
1335 + 'mw_adminimize_admin_bar_frontend_nodes'
872 1336 );
873 - update_option('mw_adminimize_disabled_submenu',
874 - isset($_POST['mw_adminimize_disabled_submenu_items']) ? $_POST['mw_adminimize_disabled_submenu_items'] : array()
1337 + // admin bar front end options
1338 + foreach ( $user_roles as $role ) {
1339 + // admin bar fron tend options
1340 + if ( isset( $_POST[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] ) ) {
1341 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] = $_POST[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ];
1342 + } else {
1343 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] = array();
1344 + }
1345 + }
1346 +
1347 + if ( isset( $_POST[ '_mw_adminimize_user_info' ] ) ) {
1348 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = (int) $_POST[ '_mw_adminimize_user_info' ];
1349 + } else {
1350 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = 0;
1351 + }
1352 +
1353 + if ( isset( $_POST[ '_mw_adminimize_footer' ] ) ) {
1354 + $adminimizeoptions[ '_mw_adminimize_footer' ] = (int) $_POST[ '_mw_adminimize_footer' ];
1355 + } else {
1356 + $adminimizeoptions[ '_mw_adminimize_footer' ] = 0;
1357 + }
1358 +
1359 + if ( isset( $_POST[ '_mw_adminimize_header' ] ) ) {
1360 + $adminimizeoptions[ '_mw_adminimize_header' ] = (int) $_POST[ '_mw_adminimize_header' ];
1361 + } else {
1362 + $adminimizeoptions[ '_mw_adminimize_header' ] = 0;
1363 + }
1364 +
1365 + if ( isset( $_POST[ '_mw_adminimize_exclude_super_admin' ] ) ) {
1366 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = (int) $_POST[ '_mw_adminimize_exclude_super_admin' ];
1367 + } else {
1368 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = 0;
1369 + }
1370 +
1371 + if ( isset( $_POST[ '_mw_adminimize_tb_window' ] ) ) {
1372 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = (int) $_POST[ '_mw_adminimize_tb_window' ];
1373 + } else {
1374 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = 0;
1375 + }
1376 +
1377 + if ( isset( $_POST[ '_mw_adminimize_cat_full' ] ) ) {
1378 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = (int) $_POST[ '_mw_adminimize_cat_full' ];
1379 + } else {
1380 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = 0;
1381 + }
1382 +
1383 + if ( isset( $_POST[ '_mw_adminimize_db_redirect' ] ) ) {
1384 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = (int) $_POST[ '_mw_adminimize_db_redirect' ];
1385 + } else {
1386 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = 0;
1387 + }
1388 +
1389 + if ( isset( $_POST[ '_mw_adminimize_ui_redirect' ] ) ) {
1390 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = (int) $_POST[ '_mw_adminimize_ui_redirect' ];
1391 + } else {
1392 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = 0;
1393 + }
1394 +
1395 + if ( isset( $_POST[ '_mw_adminimize_advice' ] ) ) {
1396 + $adminimizeoptions[ '_mw_adminimize_advice' ] = (int) $_POST[ '_mw_adminimize_advice' ];
1397 + } else {
1398 + $adminimizeoptions[ '_mw_adminimize_advice' ] = 0;
1399 + }
1400 +
1401 + if ( isset( $_POST[ '_mw_adminimize_advice_txt' ] ) ) {
1402 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = htmlspecialchars(
1403 + stripslashes( $_POST[ '_mw_adminimize_advice_txt' ] )
1404 + );
1405 + } else {
1406 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = '';
1407 + }
1408 +
1409 + if ( isset( $_POST[ '_mw_adminimize_timestamp' ] ) ) {
1410 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = (int) $_POST[ '_mw_adminimize_timestamp' ];
1411 + } else {
1412 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = 0;
1413 + }
1414 +
1415 + if ( isset( $_POST[ '_mw_adminimize_db_redirect_txt' ] ) ) {
1416 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = esc_url( $_POST[ '_mw_adminimize_db_redirect_txt' ] );
1417 + } else {
1418 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = '';
1419 + }
1420 +
1421 + // menu update
1422 + foreach ( $user_roles as $role ) {
1423 + if ( isset( $_POST[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] ) ) {
1424 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] =
1425 + $_POST[ 'mw_adminimize_disabled_menu_' . $role . '_items' ];
1426 + } else {
1427 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] = array();
1428 + }
1429 +
1430 + if ( isset( $_POST[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] ) ) {
1431 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] =
1432 + $_POST[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ];
1433 + } else {
1434 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] = array();
1435 + }
1436 + }
1437 +
1438 + // global_options, metaboxes update
1439 + foreach ( $user_roles as $role ) {
1440 +
1441 + // global options
1442 + if ( isset( $_POST[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] ) ) {
1443 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] =
1444 + $_POST[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ];
1445 + } else {
1446 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] = array();
1447 + }
1448 +
1449 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] ) ) {
1450 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] =
1451 + $_POST[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ];
1452 + } else {
1453 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] = array();
1454 + }
1455 +
1456 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] ) ) {
1457 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] =
1458 + $_POST[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ];
1459 + } else {
1460 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] = array();
1461 + }
1462 +
1463 + foreach ( $post_types as $post_type ) {
1464 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] ) ) {
1465 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] =
1466 + $_POST[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ];
1467 + } else {
1468 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] = array();
1469 + }
1470 + }
1471 +
1472 + if ( isset( $_POST[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] ) ) {
1473 + $adminimizeoptions[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] =
1474 + $_POST[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ];
1475 + } else {
1476 + $adminimizeoptions[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] = array();
1477 + }
1478 +
1479 + // wp nav menu options
1480 + if ( isset( $_POST[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] ) ) {
1481 + $adminimizeoptions[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] =
1482 + $_POST[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ];
1483 + } else {
1484 + $adminimizeoptions[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] = array();
1485 + }
1486 +
1487 + // widget options
1488 + if ( isset( $_POST[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] ) ) {
1489 + $adminimizeoptions[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] =
1490 + $_POST[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ];
1491 + } else {
1492 + $adminimizeoptions[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] = array();
1493 + }
1494 +
1495 + // wp dashboard option
1496 + if ( isset( $_POST[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] ) ) {
1497 + $adminimizeoptions[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] =
1498 + $_POST[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ];
1499 + } else {
1500 + $adminimizeoptions[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] = array();
1501 + }
1502 + }
1503 +
1504 + // own options
1505 + if ( isset( $_POST[ '_mw_adminimize_own_values' ] ) ) {
1506 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = stripslashes( $_POST[ '_mw_adminimize_own_values' ] );
1507 + } else {
1508 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = '';
1509 + }
1510 +
1511 + if ( isset( $_POST[ '_mw_adminimize_own_options' ] ) ) {
1512 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = stripslashes( $_POST[ '_mw_adminimize_own_options' ] );
1513 + } else {
1514 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = '';
1515 + }
1516 +
1517 + // own post options
1518 + if ( isset( $_POST[ '_mw_adminimize_own_post_values' ] ) ) {
1519 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = stripslashes(
1520 + $_POST[ '_mw_adminimize_own_post_values' ]
1521 + );
1522 + } else {
1523 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = '';
1524 + }
1525 +
1526 + if ( isset( $_POST[ '_mw_adminimize_own_post_options' ] ) ) {
1527 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = stripslashes(
1528 + $_POST[ '_mw_adminimize_own_post_options' ]
1529 + );
1530 + } else {
1531 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = '';
1532 + }
1533 +
1534 + // own page options
1535 + if ( isset( $_POST[ '_mw_adminimize_own_page_values' ] ) ) {
1536 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = stripslashes(
1537 + $_POST[ '_mw_adminimize_own_page_values' ]
1538 + );
1539 + } else {
1540 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = '';
1541 + }
1542 +
1543 + if ( isset( $_POST[ '_mw_adminimize_own_page_options' ] ) ) {
1544 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = stripslashes(
1545 + $_POST[ '_mw_adminimize_own_page_options' ]
1546 + );
1547 + } else {
1548 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = '';
1549 + }
1550 +
1551 + // own custom post options
1552 + foreach ( $post_types as $post_type ) {
1553 + if ( isset( $_POST[ '_mw_adminimize_own_values_' . $post_type ] ) ) {
1554 + $adminimizeoptions[ '_mw_adminimize_own_values_' . $post_type ] = stripslashes(
1555 + $_POST[ '_mw_adminimize_own_values_' . $post_type ]
1556 + );
1557 + } else {
1558 + $adminimizeoptions[ '_mw_adminimize_own_values_' . $post_type ] = '';
1559 + }
1560 +
1561 + if ( isset( $_POST[ '_mw_adminimize_own_options_' . $post_type ] ) ) {
1562 + $adminimizeoptions[ '_mw_adminimize_own_options_' . $post_type ] = stripslashes(
1563 + $_POST[ '_mw_adminimize_own_options_' . $post_type ]
1564 + );
1565 + } else {
1566 + $adminimizeoptions[ '_mw_adminimize_own_options_' . $post_type ] = '';
1567 + }
1568 + }
1569 +
1570 + // own link options
1571 + if ( isset( $_POST[ '_mw_adminimize_own_link_values' ] ) ) {
1572 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = stripslashes(
1573 + $_POST[ '_mw_adminimize_own_link_values' ]
1574 + );
1575 + } else {
1576 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = '';
1577 + }
1578 +
1579 + if ( isset( $_POST[ '_mw_adminimize_own_link_options' ] ) ) {
1580 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = stripslashes(
1581 + $_POST[ '_mw_adminimize_own_link_options' ]
1582 + );
1583 + } else {
1584 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = '';
1585 + }
1586 +
1587 + // wp nav menu options
1588 + if ( isset( $_POST[ '_mw_adminimize_own_nav_menu_values' ] ) ) {
1589 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = stripslashes(
1590 + $_POST[ '_mw_adminimize_own_nav_menu_values' ]
1591 + );
1592 + } else {
1593 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = '';
1594 + }
1595 +
1596 + if ( isset( $_POST[ '_mw_adminimize_own_nav_menu_options' ] ) ) {
1597 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = stripslashes(
1598 + $_POST[ '_mw_adminimize_own_nav_menu_options' ]
1599 + );
1600 + } else {
1601 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = '';
1602 + }
1603 +
1604 + // widget options
1605 + if ( isset( $_POST[ '_mw_adminimize_own_widget_values' ] ) ) {
1606 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = stripslashes(
1607 + $_POST[ '_mw_adminimize_own_widget_values' ]
1608 + );
1609 + } else {
1610 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = '';
1611 + }
1612 +
1613 + if ( isset( $_POST[ '_mw_adminimize_own_widget_options' ] ) ) {
1614 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = stripslashes(
1615 + $_POST[ '_mw_adminimize_own_widget_options' ]
1616 + );
1617 + } else {
1618 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = '';
1619 + }
1620 +
1621 + // own dashboard options
1622 + if ( isset( $_POST[ '_mw_adminimize_own_dashboard_values' ] ) ) {
1623 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = stripslashes(
1624 + $_POST[ '_mw_adminimize_own_dashboard_values' ]
1625 + );
1626 + } else {
1627 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = '';
1628 + }
1629 +
1630 + if ( isset( $_POST[ '_mw_adminimize_own_dashboard_options' ] ) ) {
1631 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = stripslashes(
1632 + $_POST[ '_mw_adminimize_own_dashboard_options' ]
1633 + );
1634 + } else {
1635 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = '';
1636 + }
1637 +
1638 + $adminimizeoptions[ 'mw_adminimize_dashboard_widgets' ] = _mw_adminimize_get_option_value(
1639 + 'mw_adminimize_dashboard_widgets'
875 1640 );
876 - update_option('mw_adminimize_disabled_menu_adm',
877 - isset($_POST['mw_adminimize_disabled_menu_adm_items']) ? $_POST['mw_adminimize_disabled_menu_adm_items'] : array()
878 - );
879 - update_option('mw_adminimize_disabled_submenu_adm',
880 - isset($_POST['mw_adminimize_disabled_submenu_adm_items']) ? $_POST['mw_adminimize_disabled_submenu_adm_items'] : array()
881 - );
882 -
883 - // disabled meta boxes post
884 - update_option('mw_adminimize_disabled_metaboxes_post',
885 - isset($_POST['mw_adminimize_disabled_metaboxes_post_items']) ? $_POST['mw_adminimize_disabled_metaboxes_post_items'] : array()
886 - );
887 - // disabled meta boxes page
888 - update_option('mw_adminimize_disabled_metaboxes_page',
889 - isset($_POST['mw_adminimize_disabled_metaboxes_page_items']) ? $_POST['mw_adminimize_disabled_metaboxes_page_items'] : array()
890 - );
891 - // disabled meta boxes post Admin
892 - update_option('mw_adminimize_disabled_metaboxes_post_adm',
893 - isset($_POST['mw_adminimize_disabled_metaboxes_post_adm_items']) ? $_POST['mw_adminimize_disabled_metaboxes_post_adm_items'] : array()
894 - );
895 - // disabled meta boxes page Admin
896 - update_option('mw_adminimize_disabled_metaboxes_page_adm',
897 - isset($_POST['mw_adminimize_disabled_metaboxes_page_adm_items']) ? $_POST['mw_adminimize_disabled_metaboxes_page_adm_items'] : array()
898 - );
899 1641
1642 + if ( isset( $GLOBALS[ 'menu' ] ) ) {
1643 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $GLOBALS[ 'menu' ];
1644 + }
1645 + if ( isset( $GLOBALS[ 'submenu' ] ) ) {
1646 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $GLOBALS[ 'submenu' ];
1647 + }
1648 +
1649 + // update
1650 + _mw_adminimize_update_option( $adminimizeoptions );
1651 +
900 1652 $myErrors = new _mw_adminimize_message_class();
901 - $myErrors = '<div id="message" class="updated fade"><p>' . $myErrors->get_error('_mw_adminimize_update') . '</p></div>';
1653 + $myErrors = '<div id="message" class="updated fade"><p>' . $myErrors->get_error(
1654 + '_mw_adminimize_update'
1655 + ) . '</p></div>';
902 1656 echo $myErrors;
903 1657 }
904 1658
905 -
906 1659 /**
907 1660 * Delete options in database
908 1661 */
909 1662 function _mw_adminimize_deinstall() {
910 -
911 - delete_option('_mw_adminimize_sidebar_wight');
912 - delete_option('_mw_adminimize_user_info');
913 - delete_option('_mw_adminimize_footer');
914 - delete_option('_mw_adminimize_writescroll');
915 - delete_option('_mw_adminimize_tb_window');
916 - delete_option('_mw_adminimize_db_redirect');
917 - delete_option('_mw_adminimize_ui_redirect');
918 - delete_option('_mw_adminimize_advice');
919 - delete_option('_mw_adminimize_advice_txt');
920 - delete_option('_mw_adminimize_timestamp');
921 -
922 - delete_option('mw_adminimize_default_menu');
923 - delete_option('mw_adminimize_default_submenu');
924 - delete_option('mw_adminimize_disabled_menu');
925 - delete_option('mw_adminimize_disabled_submenu');
926 - delete_option('mw_adminimize_disabled_menu_adm');
927 - delete_option('mw_adminimize_disabled_submenu_adm');
928 -
929 - delete_option('mw_adminimize_default_metaboxes_post');
930 - delete_option('mw_adminimize_disabled_metaboxes_page-adm');
931 - delete_option('mw_adminimize_disabled_metaboxes_post');
932 - delete_option('mw_adminimize_disabled_metaboxes_page');
933 - delete_option('mw_adminimize_disabled_metaboxes_post_adm');
934 - delete_option('mw_adminimize_disabled_metaboxes_page_adm');
935 1663
936 - delete_option('_mw_adminimize_update_key');
1664 + delete_site_option( 'mw_adminimize' );
1665 + delete_option( 'mw_adminimize' );
937 1666 }
938 1667
939 -
940 1668 /**
941 1669 * Install options in database
942 1670 */
943 1671 function _mw_adminimize_install() {
944 1672
945 - add_option('mw_adminimize_default_menu', '', '');
946 - add_option('mw_adminimize_default_submenu', '', '');
947 - add_option('mw_adminimize_disabled_menu', array(), '');
948 - add_option('mw_adminimize_disabled_submenu', array(), '');
949 - add_option('mw_adminimize_disabled_menu_adm', array(), '');
950 - add_option('mw_adminimize_disabled_submenu_adm', array(), '');
1673 + if ( ! is_admin() ) {
1674 + return NULL;
1675 + }
951 1676
952 - add_option('mw_adminimize_disabled_metaboxes_post', array(),'');
953 - add_option('mw_adminimize_disabled_metaboxes_page', array(),'');
954 - add_option('mw_adminimize_disabled_metaboxes_post_adm', array(),'');
955 - add_option('mw_adminimize_disabled_metaboxes_page_adm', array(),'');
1677 + global $menu, $submenu;
1678 +
1679 + $user_roles = _mw_adminimize_get_all_user_roles();
1680 + $adminimizeoptions = array();
1681 +
1682 + foreach ( $user_roles as $role ) {
1683 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] = array();
1684 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] = array();
1685 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = array();
1686 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] = array();
1687 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] = array();
1688 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] = array();
1689 + $args = array(
1690 + 'public' => TRUE,
1691 + '_builtin' => FALSE,
1692 + );
1693 + foreach ( get_post_types( $args ) as $post_type ) {
1694 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] = array();
1695 + }
1696 + }
1697 +
1698 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $menu;
1699 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $submenu;
1700 +
1701 + if ( _mw_adminimize_is_active_on_multisite() ) {
1702 + add_site_option( 'mw_adminimize', $adminimizeoptions );
1703 + } else {
1704 + add_option( 'mw_adminimize', $adminimizeoptions );
1705 + }
956 1706 }
957 -?>
1707 +
1708 +/**
1709 + * Process a settings export that generates a .json file of the shop settings
1710 + */
1711 +function _mw_adminimize_export_json() {
1712 +
1713 + if ( empty( $_GET[ '_mw_adminimize_export' ] ) || 'true' !== $_GET[ '_mw_adminimize_export' ] ) {
1714 + return;
1715 + }
1716 +
1717 + require_once ABSPATH . 'wp-includes/pluggable.php';
1718 + if ( ! wp_verify_nonce( $_GET[ 'mw_adminimize_export_nonce' ], 'mw_adminimize_export_nonce' ) ) {
1719 + return;
1720 + }
1721 +
1722 + if ( ! current_user_can( 'manage_options' ) ) {
1723 + return;
1724 + }
1725 +
1726 + $settings = _mw_adminimize_get_option_value();
1727 +
1728 + ignore_user_abort( TRUE );
1729 +
1730 + nocache_headers();
1731 + header( 'Content-Type: application/json; charset=utf-8' );
1732 + header( 'Content-Disposition: attachment; filename=mw_adminimize-settings-export-' . date( 'm-d-Y' ) . '.json' );
1733 + header( 'Expires: 0' );
1734 +
1735 + echo json_encode( $settings );
1736 + exit();
1737 +}
1738 +
1739 +/**
1740 + * Process a settings import from a json file
1741 + */
1742 +function _mw_adminimize_import_json() {
1743 +
1744 + if ( empty( $_POST[ '_mw_adminimize_action' ] ) || '_mw_adminimize_import' !== $_POST[ '_mw_adminimize_action' ] ) {
1745 + return;
1746 + }
1747 +
1748 + if ( ! wp_verify_nonce( $_POST[ 'mw_adminimize_import_nonce' ], 'mw_adminimize_import_nonce' ) ) {
1749 + return;
1750 + }
1751 +
1752 + if ( ! current_user_can( 'manage_options' ) ) {
1753 + return;
1754 + }
1755 +
1756 + $extension = pathinfo( $_FILES[ 'import_file' ][ 'name' ], PATHINFO_EXTENSION );
1757 + if ( $extension !== 'json' ) {
1758 + wp_die( esc_attr__( 'Please upload a valid .json file' ) );
1759 + }
1760 +
1761 + $import_file = $_FILES[ 'import_file' ][ 'tmp_name' ];
1762 +
1763 + if ( empty( $import_file ) ) {
1764 + wp_die( esc_attr__( 'Please upload a file to import' ) );
1765 + }
1766 +
1767 + // Retrieve the settings from the file and convert the json object to an array.
1768 + $settings = (array) json_decode( file_get_contents( $import_file ) );
1769 + unlink( $import_file );
1770 +
1771 + _mw_adminimize_update_option( $settings );
1772 +}