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 +1491 -1096 1.6 → 1.9.1 View file →
@@ -1,1377 +1,1772 @@
1 1 <?php
2 +/**
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+
12 + *
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
17 + */
2 18
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 B&uuml;ltge
8 -Author URI: http://bueltge.de/
9 -Version: 1.6
10 -Last Update: 07.12.2008 12:15:06
11 -*/
12 -
13 19 /**
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.
17 - *
18 - * The javascript for de/activate checkboxes ist by Oliver Schl�be, http://www.schloebe.de
19 - * - many thanks
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.
20 25 */
21 26
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 +}
22 31
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' );
28 -if ( !defined( 'WP_PLUGIN_URL' ) )
29 - define( 'WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins' );
30 -if ( !defined( 'WP_PLUGIN_DIR' ) )
31 - define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
32 +// plugin definitions
33 +define( 'FB_ADMINIMIZE_BASENAME', plugin_basename( __FILE__ ) );
34 +define( 'FB_ADMINIMIZE_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) );
32 35
33 -function _mw_adminimize_textdomain() {
36 +function _mw_adminimize_get_plugin_data( $value = 'Version' ) {
34 37
35 - if (function_exists('load_plugin_textdomain')) {
36 - if ( !defined('WP_PLUGIN_DIR') ) {
37 - load_plugin_textdomain('adminimize', str_replace( ABSPATH, '', dirname(__FILE__) ) . '/languages');
38 - } else {
39 - load_plugin_textdomain('adminimize', false, dirname(plugin_basename(__FILE__)) . '/languages');
40 - }
38 + if ( ! function_exists( 'get_plugin_data' ) ) {
39 + require_once ABSPATH . '/wp-admin/includes/plugin.php';
41 40 }
41 +
42 + $plugin_data = get_plugin_data( __FILE__ );
43 + $plugin_value = $plugin_data[ $value ];
44 +
45 + return $plugin_value;
42 46 }
43 47
48 +/**
49 + * Load language files.
50 + */
51 +function _mw_adminimize_textdomain() {
44 52
45 -function recursive_in_array($needle, $haystack) {
46 - if ($haystack != '') {
47 - foreach ($haystack as $stalk) {
48 - if ( $needle == $stalk || ( is_array($stalk) && recursive_in_array($needle, $stalk) ) ) {
49 - return true;
50 - }
51 - }
52 - return false;
53 - }
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 + );
54 58 }
55 59
56 -
57 60 /**
58 - * some basics for message
61 + * Exclude the Super Admin of Multisite.
62 + *
63 + * @return bool
59 64 */
60 -class _mw_adminimize_message_class {
61 - function _mw_adminimize_message_class() {
62 - $this->localizionName = 'adminimize';
63 - $this->errors = new WP_Error();
64 - $this->initialize_errors();
65 +function _mw_adminimize_exclude_super_admin() {
66 +
67 + if ( ! function_exists( 'is_super_admin' ) ) {
68 + return FALSE;
65 69 }
66 -
67 - /**
68 - get_error - Returns an error message based on the passed code
69 - Parameters - $code (the error code as a string)
70 - Returns an error message
71 - */
72 - function get_error($code = '') {
73 - $errorMessage = $this->errors->get_error_message($code);
74 - if ($errorMessage == null) {
75 - return __("Unknown error.", $this->localizionName);
76 - }
77 - return $errorMessage;
70 +
71 + if ( ! is_super_admin() ) {
72 + return FALSE;
78 73 }
79 -
80 - // Initializes all the error messages
81 - function initialize_errors() {
82 - $this->errors->add('_mw_adminimize_update', __('The updates was saved.', $this->localizionName));
83 - $this->errors->add('_mw_adminimize_access_denied', __('You have not enough rights for edit entries in the database.', $this->localizionName));
84 - $this->errors->add('_mw_adminimize_deinstall', __('All entries in the database was delleted.', $this->localizionName));
85 - $this->errors->add('_mw_adminimize_deinstall_yes', __('Set the checkbox on deinstall-button.', $this->localizionName));
86 - $this->errors->add('_mw_adminimize_get_option', __('Can\'t load menu and submenu.', $this->localizionName));
87 - $this->errors->add('_mw_adminimize_set_theme', __('Backend-Theme was activated!', $this->localizionName));
74 +
75 + if ( 1 === (int) _mw_adminimize_get_option_value( '_mw_adminimize_exclude_super_admin' ) ) {
76 + return TRUE;
88 77 }
78 +
79 + return FALSE;
89 80 }
90 81
91 -
92 82 /**
93 - * check user-option and add new style
94 - * @uses $pagenow
83 + * Get the status, if is on the settings page.
84 + *
85 + * @return bool
95 86 */
96 -function _mw_adminimize_init() {
97 - global $pagenow, $menu, $submenu, $adminimizeoptions, $top_menu, $wp_version;
87 +function _mw_adminimize_exclude_settings_page() {
98 88
99 - $adminimizeoptions = get_option('mw_adminimize');
89 + if ( ! function_exists( 'get_current_screen' ) ) {
90 + return TRUE;
91 + }
100 92
101 - $disabled_metaboxes_post_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_subscriber_items');
102 - $disabled_metaboxes_page_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_subscriber_items');
103 - $disabled_metaboxes_post_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_contributor_items');
104 - $disabled_metaboxes_page_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_contributor_items');
105 - $disabled_metaboxes_post_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_author_items');
106 - $disabled_metaboxes_page_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_author_items');
107 - $disabled_metaboxes_post = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_items');
108 - $disabled_metaboxes_page = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_items');
109 - $disabled_metaboxes_post_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_adm_items');
110 - $disabled_metaboxes_page_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_adm_items');
93 + // Get admin page
94 + $screen = get_current_screen();
111 95
112 - $disabled_metaboxes_post_all = array();
113 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post_subscriber);
114 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post_contributor);
115 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post_author);
116 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post);
117 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post_adm);
96 + // Don't filter on settings page
97 + if ( isset( $screen->id ) && FALSE !== strpos( $screen->id, 'adminimize' ) ) {
98 + return TRUE;
99 + }
118 100
119 - $disabled_metaboxes_page_all = array();
120 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page_subscriber);
121 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page_contributor);
122 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page_author);
123 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page);
124 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page_adm);
125 -
126 - $_mw_admin_color = get_user_option('admin_color');
101 + return FALSE;
102 +}
127 103
128 - if ( ('post-new.php' == $pagenow) || ('post.php' == $pagenow) || ('page-new.php' == $pagenow) || ('page.php' == $pagenow) ) {
129 -
130 - $_mw_adminimize_writescroll = _mw_adminimize_getOptionValue('_mw_adminimize_writescroll');
131 - switch ($_mw_adminimize_writescroll) {
132 - case 1:
133 - wp_enqueue_script('_mw_adminimize_writescroll', WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/js/writescroll.js', array('jquery'));
134 - break;
135 - }
136 - $_mw_adminimize_tb_window = _mw_adminimize_getOptionValue('_mw_adminimize_tb_window');
137 - switch ($_mw_adminimize_tb_window) {
138 - case 1:
139 - wp_deregister_script('media-upload');
140 - wp_enqueue_script('media-upload', WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/js/tb_window.js', array('thickbox'));
141 - break;
142 - }
143 -
144 - //add_filter('image_downsize', '_mw_adminimize_image_downsize', 1, 3);
104 +/**
105 + * Get status, if the plugin active network wide.
106 + *
107 + * @return bool
108 + */
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' );
145 113 }
146 114
147 - $_mw_adminimize_menu_order = _mw_adminimize_getOptionValue('_mw_adminimize_menu_order');
148 - switch ($_mw_adminimize_menu_order) {
149 - case 1:
150 - add_action('admin_head', '_mw_adminimize_adminmenu', 1);
115 + if ( is_multisite() && is_plugin_active_for_network( MW_ADMIN_FILE ) ) {
116 + return TRUE;
151 117 }
152 -
153 - if ( ($_mw_admin_color == 'mw_fresh') ||
154 - ($_mw_admin_color == 'mw_classic') ||
155 - ($_mw_admin_color == 'mw_colorblind') ||
156 - ($_mw_admin_color == 'mw_grey') ||
157 - ($_mw_admin_color == 'mw_fresh_ozh_am') ||
158 - ($_mw_admin_color == 'mw_classic_ozh_am') ||
159 - ($_mw_admin_color == 'mw_fresh_lm') ||
160 - ($_mw_admin_color == 'mw_classic_lm') ||
161 - ($_mw_admin_color == 'mw_wp23')
162 - ) {
163 -
164 - if ( ('post-new.php' == $pagenow) || ('post.php' == $pagenow) ) {
165 - if ( version_compare( substr($wp_version, 0, 3), '2.7', '<' ) )
166 - add_action('admin_head', '_mw_adminimize_remove_box', 99);
167 -
168 - // check for array empty
169 - if ( !isset($disabled_metaboxes_post['0']) )
170 - $disabled_metaboxes_post['0'] = '';
171 - if ( isset($disabled_metaboxes_post_adm['0']) )
172 - $disabled_metaboxes_post_adm['0'] = '';
173 - if ( version_compare(substr($wp_version, 0, 3), '2.7', '<') ) {
174 - if ( !recursive_in_array('#categorydivsb', $disabled_metaboxes_post_all) )
175 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_category_box');
176 - if ( !recursive_in_array('#tagsdivsb', $disabled_metaboxes_post_all) )
177 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_tag_box');
178 - }
179 - if ( recursive_in_array('media_buttons', $disabled_metaboxes_post_all) )
180 - remove_action('media_buttons', 'media_buttons');
181 - }
182 118
183 - if ( ('page-new.php' == $pagenow) || ('page.php' == $pagenow) ) {
184 -
185 - // check for array empty
186 - if ( !isset($disabled_metaboxes_page['0']) )
187 - $disabled_metaboxes_page['0'] = '';
188 - if ( isset($disabled_metaboxes_page_adm['0']) )
189 - $disabled_metaboxes_page_adm['0'] = '';
190 - if ( recursive_in_array('media_buttons', $disabled_metaboxes_page_all) )
191 - remove_action('media_buttons', 'media_buttons');
192 - }
119 + return FALSE;
120 +}
193 121
194 - }
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() {
195 130
196 - if ( ('post-new.php' == $pagenow) || ('page-new.php' == $pagenow) || ('page.php' == $pagenow) || ('post.php' == $pagenow) ) {
197 -
198 - // set user option in edit-area
199 - add_action('admin_head', '_mw_adminimize_set_user_option_edit');
200 - }
201 -
202 - if ( basename($_SERVER['REQUEST_URI']) == 'adminimize.php') {
203 - wp_enqueue_script('_mw_adminimize', WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/js/adminimize.js', array('jquery'));
204 - }
131 + global $wp_roles;
205 132
206 - // set menu option
207 - add_action('admin_head', '_mw_adminimize_set_menu_option', 1);
133 + $user_roles = array();
208 134
209 - // set metabox option
210 - add_action('admin_head', '_mw_adminimize_set_metabox_option', 1);
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..
140 + }
141 + }
211 142
212 - add_action('in_admin_footer', '_mw_adminimize_admin_footer');
213 -
214 - $adminimizeoptions['mw_adminimize_default_menu'] = $menu;
215 - $adminimizeoptions['mw_adminimize_default_submenu'] = $submenu;
216 - if ( isset($top_menu) )
217 - $adminimizeoptions['mw_adminimize_default_top_menu'] = $top_menu;
218 -}
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 + );
219 148
220 -add_action('init', '_mw_adminimize_textdomain');
221 -if ( is_admin() ) {
222 - add_action('admin_menu', '_mw_adminimize_add_settings_page');
223 - add_action('admin_menu', '_mw_adminimize_remove_dashboard');
224 - add_action('admin_init', '_mw_adminimize_init', 1);
225 - add_action('admin_init', '_mw_adminimize_admin_styles', 1);
149 + return $user_roles;
226 150 }
227 151
228 -if ( function_exists('register_activation_hook') )
229 - register_activation_hook(__FILE__, '_mw_adminimize_install');
230 -if ( function_exists('register_uninstall_hook') )
231 - register_uninstall_hook(__FILE__, '_mw_adminimize_deinstall');
232 -//register_deactivation_hook(__FILE__, '_mw_adminimize_deinstall');
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() {
233 160
161 + global $wp_roles;
234 162
235 -/**
236 - * Uses WordPress filter for image_downsize, kill wp-image-dimension
237 - * code by Andrew Rickmann
238 - * http://www.wp-fun.co.uk/
239 - * @param $value, $id, $size
240 - */
241 -function _mw_adminimize_image_downsize($value = false,$id = 0, $size = "medium") {
163 + $user_roles_names = array();
242 164
243 - if ( !wp_attachment_is_image($id) )
244 - return false;
245 -
246 - $img_url = wp_get_attachment_url($id);
247 - // Mimic functionality in image_downsize function in wp-includes/media.php
248 - if ( $intermediate = image_get_intermediate_size($id, $size) ) {
249 - $img_url = str_replace(basename($img_url), $intermediate['file'], $img_url);
250 - }
251 - elseif ( $size == 'thumbnail' ) {
252 - // fall back to the old thumbnail
253 - if ( $thumb_file = wp_get_attachment_thumb_file() && $info = getimagesize($thumb_file) ) {
254 - $img_url = str_replace(basename($img_url), basename($thumb_file), $img_url);
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.' );
255 171 }
172 +
173 + $user_roles_names[] = $data;
256 174 }
257 - if ( $img_url)
258 - return array($img_url, 0, 0);
259 - return false;
260 -}
261 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 + );
262 187
263 -/**
264 - * list category-box in sidebar
265 - * @uses $post_ID
266 - */
267 -function _mw_adminimize_sidecat_list_category_box() {
268 - global $post_ID;
269 - ?>
270 -
271 - <div class="inside" id="categorydivsb">
272 - <p><strong><?php _e("Categories"); ?></strong></p>
273 - <ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
274 - <?php wp_category_checklist($post_ID); ?>
275 - </ul>
276 - <?php if ( !defined('WP_PLUGIN_DIR') ) { // for wp <2.6 ?>
277 - <div id="category-adder" class="wp-hidden-children">
278 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
279 - <p id="category-add" class="wp-hidden-child">
280 - <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" />
281 - <?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
282 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
283 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
284 - <span id="category-ajax-response"></span>
285 - </p>
286 - </div>
287 - <?php } else { ?>
288 - <div id="category-adder" class="wp-hidden-children">
289 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
290 - <p id="category-add" class="wp-hidden-child">
291 - <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"/>
292 - <br />
293 - <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 ) ); ?>
294 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
295 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', false ); ?>
296 - <span id="category-ajax-response"></span>
297 - </p>
298 - </div>
299 - <?php } ?>
300 - </div>
301 -<?php
188 + return $user_roles_names;
302 189 }
303 190
304 -
305 191 /**
306 - * list tag-box in sidebar
307 - * @uses $post_ID
192 + * return post type
308 193 */
309 -function _mw_adminimize_sidecat_list_tag_box() {
310 - global $post_ID;
194 +function _mw_get_current_post_type() {
311 195
312 - if ( !class_exists('SimpleTagsAdmin') ) {
313 - ?>
314 - <div class="inside" id="tagsdivsb">
315 - <p><strong><?php _e('Tags'); ?></strong></p>
316 - <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>
317 - <div id="tagchecklist"></div>
318 - </div>
319 - <?php
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' ] );
320 210 }
211 +
212 + // we do not know the post type!
213 + return NULL;
321 214 }
322 215
323 -
324 216 /**
325 - * remove default categorydiv
326 - * @echo script
217 + * Check user-option and add new style.
327 218 */
328 -function _mw_adminimize_remove_box() {
329 -
330 - if ( function_exists('remove_meta_box') ) {
331 - if ( !class_exists('SimpleTagsAdmin') )
332 - remove_meta_box('tagsdiv', 'post', 'normal');
333 - remove_meta_box('categorydiv', 'post', 'normal');
219 +function _mw_adminimize_admin_init() {
220 +
221 + global $pagenow, $post_type, $menu, $submenu;
222 +
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' ] );
334 227 } else {
335 - $_mw_adminimize_sidecat_admin_head = "\n" . '<script type="text/javascript">' . "\n";
336 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#categorydiv\').remove(); });' . "\n";
337 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#tagsdiv\').remove(); });' . "\n";
338 - $_mw_adminimize_sidecat_admin_head .= '</script>' . "\n";
228 + $post_id = 0;
229 + }
339 230
340 - print($_mw_adminimize_sidecat_admin_head);
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 );
341 234 }
342 -}
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 + }
343 242
243 + // Get all user rolles.
244 + $user_roles = _mw_adminimize_get_all_user_roles();
344 245
345 -/**
346 - * reorder admin-menu
347 - * @uses $menu
348 - * @param $file
349 - */
350 -function _mw_adminimize_adminmenu($file) {
351 - global $menu;
352 -
353 - $menu[7] = $menu[5];
354 - $menu[5] = $menu[0];
355 - $menu[32] = $menu[40];
356 - $menu[40] = $menu[35];
357 - $menu[35] = $menu[30];
358 - $menu[30] = $menu[15];
359 - unset($menu[0]);
360 - unset($menu[15]);
361 -}
246 + // Get settings.
247 + $adminimizeoptions = _mw_adminimize_get_option_value();
362 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' );
363 267
364 -/**
365 - * add new adminstyle to usersettings
366 - * @param $file
367 - */
368 -function _mw_adminimize_admin_styles($file) {
369 - global $wp_version;
370 -
371 - $_mw_adminimize_path = WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/';
372 -
373 - if ( version_compare( $wp_version, '2.6.999', '>' ) ) {
374 - // MW Adminimize Classic
375 - $styleName = 'Adminimize:' . ' ' . __('Blue');
376 - wp_admin_css_color (
377 - 'mw_classic', $styleName, $_mw_adminimize_path . 'mw_classic27.css',
378 - array('#073447', '#21759b', '#eaf3fa', '#bbd8e7')
268 + foreach ( $user_roles as $role ) {
269 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
270 + 'mw_adminimize_disabled_admin_bar_' . $role . '_items'
379 271 );
380 -
381 - // MW Adminimize Fresh
382 - $styleName = 'Adminimize:' . ' ' . __('Gray');
383 - wp_admin_css_color (
384 - 'mw_fresh', $styleName, $_mw_adminimize_path . 'mw_fresh27.css',
385 - array('#464646', '#6d6d6d', '#f1f1f1', '#dfdfdf')
272 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
273 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
386 274 );
387 -
388 - } else {
389 - // MW Adminimize Classic
390 - $styleName = 'MW Adminimize:' . ' ' . __('Classic');
391 - wp_admin_css_color (
392 - 'mw_classic', $styleName, $_mw_adminimize_path . 'mw_classic.css',
393 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
275 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
276 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
394 277 );
395 -
396 - // MW Adminimize Fresh
397 - $styleName = 'MW Adminimize:' . ' ' . __('Fresh');
398 - wp_admin_css_color (
399 - 'mw_fresh', $styleName, $_mw_adminimize_path . 'mw_fresh.css',
400 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
278 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
279 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
401 280 );
402 -
403 - // MW Adminimize WordPress 2.3
404 - $styleName = 'MW Adminimize:' . ' ' . __('WordPress 2.3');
405 - wp_admin_css_color (
406 - 'mw_wp23', $styleName, $_mw_adminimize_path . 'mw_wp23.css',
407 - array('#000000', '#14568A', '#448ABD', '#83B4D8')
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 + );
285 + }
286 + $disabled_link_option_[ $role ] = _mw_adminimize_get_option_value(
287 + 'mw_adminimize_disabled_link_option_' . $role . '_items'
408 288 );
409 -
410 - // MW Adminimize Colorblind
411 - $styleName = 'MW Adminimize:' . ' ' . __('Maybe i\'m colorblind');
412 - wp_admin_css_color (
413 - 'mw_colorblind', $styleName, $_mw_adminimize_path . 'mw_colorblind.css',
414 - array('#FF9419', '#F0720C', '#710001', '#550007', '#CF4529')
289 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
290 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
415 291 );
416 -
417 - // MW Adminimize Grey
418 - $styleName = 'MW Adminimize:' . ' ' . __('Grey');
419 - wp_admin_css_color (
420 - 'mw_grey', $styleName, $_mw_adminimize_path . 'mw_grey.css',
421 - array('#000000', '#787878', '#F0F0F0', '#D8D8D8', '#909090')
292 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
293 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
422 294 );
295 + $disabled_metaboxes_post_all[] = $disabled_metaboxes_post_[ $role ];
296 + $disabled_metaboxes_page_all[] = $disabled_metaboxes_page_[ $role ];
423 297 }
424 - /**
425 - * style and changes for plugin Admin Drop Down Menu
426 - * by Ozh
427 - * http://planetozh.com/blog/my-projects/wordpress-admin-menu-drop-down-css/
428 - */
429 - if ( function_exists('wp_ozh_adminmenu') ) {
430 -
431 - // MW Adminimize Classic include ozh adminmenu
432 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Classic');
433 - wp_admin_css_color (
434 - 'mw_classic_ozh_am', $styleName, $_mw_adminimize_path . 'mw_classic_ozh_am.css',
435 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
436 - );
437 -
438 - // MW Adminimize Fresh include ozh adminmenu
439 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Fresh');
440 - wp_admin_css_color (
441 - 'mw_fresh_ozh_am', $styleName, $_mw_adminimize_path . 'mw_fresh_ozh_am.css',
442 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
443 - );
444 -
298 +
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;
313 + }
314 +
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 + }
325 +
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 + }
381 + }
382 +
445 383 }
446 -
447 - /**
448 - * style and changes for plugin Lighter Menus
449 - * by corpodibacco
450 - * http://www.italyisfalling.com/lighter-menus
451 - */
452 - if ( function_exists('lm_build') ) {
453 -
454 - // MW Adminimize Classic include Lighter Menus
455 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Classic');
456 - wp_admin_css_color (
457 - 'mw_classic_lm', $styleName, $_mw_adminimize_path . 'mw_classic_lm.css',
458 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
459 - );
460 -
461 - // MW Adminimize Fresh include Lighter Menus
462 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Fresh');
463 - wp_admin_css_color (
464 - 'mw_fresh_lm', $styleName, $_mw_adminimize_path . 'mw_fresh_lm.css',
465 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
466 - );
467 -
384 +
385 + // set menu option
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 );
389 +
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 );
468 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 + }
418 +
419 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $menu;
420 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $submenu;
469 421 }
470 422
423 +/**
424 + * Init always with WP
425 + */
426 +function _mw_adminimize_init() {
471 427
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 + }
435 +
436 +}
437 +
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' );
445 +}
446 +add_action( 'init', '_mw_adminimize_init', 2 );
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' );
451 +
472 452 /**
473 - * remove the dashbord
474 - * @author of basic Austin Matzko
475 - * http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/
453 + * Remove the dashboard
476 454 */
477 455 function _mw_adminimize_remove_dashboard() {
478 - global $menu, $submenu, $user_ID, $top_menu;
479 456
480 - $disabled_menu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_subscriber_items');
481 - $disabled_submenu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_subscriber_items');
482 - $disabled_top_menu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_subscriber_items');
483 - $disabled_menu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_contributor_items');
484 - $disabled_submenu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_contributor_items');
485 - $disabled_top_menu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_contributor_items');
486 - $disabled_menu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_author_items');
487 - $disabled_submenu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_author_items');
488 - $disabled_top_menu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_author_items');
489 - $disabled_menu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_items');
490 - $disabled_submenu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_items');
491 - $disabled_top_menu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_items');
492 - $disabled_menu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_adm_items');
493 - $disabled_submenu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_adm_items');
494 - $disabled_top_menu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_adm_items');
457 + // exclude super admin
458 + if ( _mw_adminimize_exclude_super_admin() ) {
459 + return;
460 + }
495 461
496 - $disabled_menu_all = array();
497 - array_push($disabled_menu_all, $disabled_menu_subscriber);
498 - array_push($disabled_menu_all, $disabled_menu_contributor);
499 - array_push($disabled_menu_all, $disabled_menu_author);
500 - array_push($disabled_menu_all, $disabled_menu);
501 - array_push($disabled_menu_all, $disabled_menu_adm);
502 -
462 + // Leave the settings screen from Adminimize to see all areas on settings.
463 + if ( _mw_adminimize_exclude_settings_page() ) {
464 + return;
465 + }
466 +
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 + );
480 + }
481 +
482 + $disabled_menu_all = array();
503 483 $disabled_submenu_all = array();
504 - array_push($disabled_submenu_all, $disabled_submenu_subscriber);
505 - array_push($disabled_submenu_all, $disabled_submenu_contributor);
506 - array_push($disabled_submenu_all, $disabled_submenu_author);
507 - array_push($disabled_submenu_all, $disabled_submenu);
508 - array_push($disabled_submenu_all, $disabled_submenu_adm);
509 -
510 - $disabled_top_menu_all = array();
511 - array_push($disabled_top_menu_all, $disabled_top_menu_subscriber);
512 - array_push($disabled_top_menu_all, $disabled_top_menu_contributor);
513 - array_push($disabled_top_menu_all, $disabled_top_menu_author);
514 - array_push($disabled_top_menu_all, $disabled_top_menu);
515 - array_push($disabled_top_menu_all, $disabled_top_menu_adm);
516 -
484 +
485 + foreach ( $user_roles as $role ) {
486 + $disabled_menu_all[] = $disabled_menu_[ $role ];
487 + $disabled_submenu_all[] = $disabled_submenu_[ $role ];
488 + }
489 +
517 490 // remove dashboard
518 - if ($disabled_menu_all != '' || $disabled_submenu_all != '' || $disabled_top_menu_all != '') {
491 + if ( $disabled_menu_all !== '' || $disabled_submenu_all !== '' ) {
519 492
520 - if ( current_user_can('subscriber') ) {
521 - if (
522 - recursive_in_array('index.php', $disabled_menu_subscriber) ||
523 - recursive_in_array('index.php', $disabled_submenu_subscriber) ||
524 - recursive_in_array('index.php', $disabled_top_menu_subscriber)
525 - )
526 - $redirect = 'true';
527 - } elseif ( current_user_can('contributor') ) {
528 - if (
529 - recursive_in_array('index.php', $disabled_menu_contributor) ||
530 - recursive_in_array('index.php', $disabled_submenu_contributor) ||
531 - recursive_in_array('index.php', $disabled_top_menu_contributor)
532 - )
533 - $redirect = 'true';
534 - } elseif ( current_user_can('author') ) {
535 - if (
536 - recursive_in_array('index.php', $disabled_menu_author) ||
537 - recursive_in_array('index.php', $disabled_submenu_author) ||
538 - recursive_in_array('index.php', $disabled_top_menu_author)
539 - )
540 - $redirect = 'true';
541 - } elseif ( current_user_can('editor') ) {
542 - if (
543 - recursive_in_array('index.php', $disabled_menu) ||
544 - recursive_in_array('index.php', $disabled_submenu) ||
545 - recursive_in_array('index.php', $disabled_top_menu)
546 - )
547 - $redirect = 'true';
548 - } elseif ( current_user_can('administrator') ) {
549 - if (
550 - recursive_in_array('index.php', $disabled_menu_adm) ||
551 - recursive_in_array('index.php', $disabled_submenu_adm) ||
552 - recursive_in_array('index.php', $disabled_top_menu_adm)
553 - )
554 - $redirect = 'true';
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 + }
555 502 }
556 -
557 - if ( $redirect == 'true' ) {
558 - $_mw_adminimize_db_redirect = _mw_adminimize_getOptionValue('_mw_adminimize_db_redirect');
559 - switch ($_mw_adminimize_db_redirect) {
560 - case 0:
561 - $_mw_adminimize_db_redirect = 'profile.php';
562 - break;
563 - case 1:
564 - $_mw_adminimize_db_redirect = 'edit.php';
565 - break;
566 - case 2:
567 - $_mw_adminimize_db_redirect = 'edit-pages.php';
568 - break;
569 - case 3:
570 - $_mw_adminimize_db_redirect = 'post-new.php';
571 - break;
572 - case 4:
573 - $_mw_adminimize_db_redirect = 'page-new.php';
574 - break;
575 - case 5:
576 - $_mw_adminimize_db_redirect = 'edit-comments.php';
577 - break;
578 - case 6:
579 - $_mw_adminimize_db_redirect = htmlspecialchars( stripslashes( _mw_adminimize_getOptionValue('_mw_adminimize_db_redirect_txt') ) );
580 - break;
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;
581 532 }
582 533
583 - $the_user = new WP_User($user_ID);
584 - reset($menu); $page = key($menu);
585 -
586 - while ( (__('Dashboard') != $menu[$page][0]) && next($menu) || (__('Dashboard') != $menu[$page][1]) && next($menu) )
587 - $page = key($menu);
588 -
589 - if (__('Dashboard') == $menu[$page][0] || __('Dashboard') == $menu[$page][1])
590 - unset($menu[$page]);
591 - reset($menu); $page = key($menu);
592 -
593 - while ( !$the_user->has_cap($menu[$page][1]) && next($menu) )
594 - $page = key($menu);
595 -
596 - if ( preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI']) ) {
597 - if ( function_exists('admin_url') ) {
598 - wp_redirect( admin_url($_mw_adminimize_db_redirect) );
599 - } else {
600 - wp_redirect( get_option('siteurl') . '/wp-admin/' . $_mw_adminimize_db_redirect );
601 - }
534 + $the_user = new WP_User( $user_ID );
535 + reset( $menu );
536 + $page = key( $menu );
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 );
602 544 }
545 +
546 + if ( in_array( $dashboard_core_string, $dashboard, FALSE ) ) {
547 + unset( $menu[ $page ] );
548 + }
549 + reset( $menu );
550 + $page = key( $menu );
551 +
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 + }
603 559 }
560 +
604 561 }
605 562 }
606 563
607 -
608 564 /**
609 - * remove the flash_uploader
565 + * Set menu options from database.
610 566 */
611 -function _mw_adminimize_disable_flash_uploader() {
612 - return false;
613 -}
567 +function _mw_adminimize_set_user_info() {
614 568
569 + if ( _mw_adminimize_exclude_settings_page() ) {
570 + return;
571 + }
615 572
616 -/**
617 - * set user options from database in edit-area
618 - */
619 -function _mw_adminimize_set_user_option_edit() {
620 -
621 - $_mw_adminimize_path = WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/';
622 -
623 - $_mw_adminimize_sidecat_admin_head = '';
624 - $_mw_adminimize_sidebar_wight = _mw_adminimize_getOptionValue('_mw_adminimize_sidebar_wight');
625 - switch ($_mw_adminimize_sidebar_wight) {
626 - case 300:
627 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
628 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_300_sidebar.css';
629 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
630 - break;
631 - case 400:
632 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
633 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_400_sidebar.css';
634 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
635 - break;
636 - case 20:
637 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
638 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_20p_sidebar.css';
639 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
640 - break;
641 - case 30:
642 - $_mw_adminimize_sidecat_admin_head .= '<link rel="stylesheet" href="' . "\n";
643 - $_mw_adminimize_sidecat_admin_head .= $_mw_adminimize_path . 'mw_30p_sidebar.css';
644 - $_mw_adminimize_sidecat_admin_head .= '" type="text/css" media="all" />' . "\n";
645 - break;
573 + // exclude super admin
574 + if ( _mw_adminimize_exclude_super_admin() ) {
575 + return;
646 576 }
647 577
648 - print($_mw_adminimize_sidecat_admin_head);
578 + global $user_identity;
579 +
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 + );
590 + }
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' );
595 +
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;
649 658 }
650 659
651 -
652 660 /**
653 - * set menu options from database
661 + * Set menu for settings
654 662 */
655 663 function _mw_adminimize_set_menu_option() {
656 - global $pagenow, $menu, $submenu, $user_identity, $top_menu, $wp_version;
657 -
658 - $disabled_menu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_subscriber_items');
659 - $disabled_submenu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_subscriber_items');
660 - $disabled_top_menu_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_subscriber_items');
661 - $disabled_menu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_contributor_items');
662 - $disabled_submenu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_contributor_items');
663 - $disabled_top_menu_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_contributor_items');
664 - $disabled_menu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_author_items');
665 - $disabled_submenu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_author_items');
666 - $disabled_top_menu_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_author_items');
667 - $disabled_menu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_items');
668 - $disabled_submenu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_items');
669 - $disabled_top_menu = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_items');
670 - $disabled_menu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_adm_items');
671 - $disabled_submenu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_adm_items');
672 - $disabled_top_menu_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_top_menu_adm_items');
673 -
674 - $_mw_adminimize_admin_head = "\n";
675 - $_mw_adminimize_favorite_actions = _mw_adminimize_getOptionValue('_mw_adminimize_favorite_actions');
676 - $_mw_adminimize_screen_options = _mw_adminimize_getOptionValue('_mw_adminimize_screen_options');
677 - $_mw_adminimize_user_info = _mw_adminimize_getOptionValue('_mw_adminimize_user_info');
678 - $_mw_adminimize_ui_redirect = _mw_adminimize_getOptionValue('_mw_adminimize_ui_redirect');
679 664
680 - switch ($_mw_adminimize_favorite_actions) {
681 - case 1:
682 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
683 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#favorite-actions\').remove(); });' . "\n";
684 - $_mw_adminimize_admin_head .= '</script>' . "\n";
685 - break;
665 + // exclude super admin
666 + if ( _mw_adminimize_exclude_super_admin() ) {
667 + return NULL;
686 668 }
687 -
688 - switch ($_mw_adminimize_screen_options) {
689 - case 1:
690 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
691 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#screen-options\').remove(); });' . "\n";
692 - $_mw_adminimize_admin_head .= '</script>' . "\n";
693 - break;
694 - }
695 -
696 - switch ($_mw_adminimize_user_info) {
697 - case 1:
698 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
699 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove(); });' . "\n";
700 - $_mw_adminimize_admin_head .= '</script>' . "\n";
701 - break;
702 - case 2:
703 - if ( version_compare(substr($wp_version, 0, 3), '2.7', '>=') ) {
704 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info27.css" type="text/css" />' . "\n";
705 - } else {
706 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info.css" type="text/css" />' . "\n";
707 - }
708 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
709 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove();';
710 - if ($_mw_adminimize_ui_redirect == '1') {
711 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . wp_nonce_url( ('/wp-login.php?action=logout&amp;redirect_to=') . get_option('siteurl') , 'log-out' ) . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
712 - } else {
713 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . wp_nonce_url( ('/wp-login.php?action=logout') , 'log-out' ) . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
714 - }
715 - $_mw_adminimize_admin_head .= '</script>' . "\n";
716 - break;
717 - case 3:
718 - if ( version_compare(substr($wp_version, 0, 3), '2.7', '>=') ) {
719 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info27.css" type="text/css" />' . "\n";
720 - } else {
721 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info.css" type="text/css" />' . "\n";
722 - }
723 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
724 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove();';
725 - if ($_mw_adminimize_ui_redirect == '1') {
726 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . ('/wp-admin/profile.php') . '">' . $user_identity . '</a> | <a href="' . get_option('siteurl') . wp_nonce_url( ('/wp-login.php?action=logout&amp;redirect_to=') . get_option('siteurl'), 'log-out' ) . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
727 - } else {
728 - $_mw_adminimize_admin_head .= 'jQuery(\'div#wpcontent\').after(\'<div id="small_user_info"><p><a href="' . get_option('siteurl') . ('/wp-admin/profile.php') . '">' . $user_identity . '</a> | <a href="' . get_option('siteurl') . wp_nonce_url( ('/wp-login.php?action=logout'), 'log-out' ) . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a></p></div>\') });' . "\n";
729 - }
730 - $_mw_adminimize_admin_head .= '</script>' . "\n";
731 - break;
669 +
670 + // Leave the settings screen from Adminimize to see all areas on settings.
671 + if ( _mw_adminimize_exclude_settings_page() ) {
672 + return;
732 673 }
733 674
734 - $_mw_adminimize_dashmenu = _mw_adminimize_getOptionValue('_mw_adminimize_dashmenu');
735 - switch ($_mw_adminimize_dashmenu) {
736 - case 1:
737 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
738 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#dashmenu\').remove(); });' . "\n";
739 - $_mw_adminimize_admin_head .= '</script>' . "\n";
740 - break;
675 + global $menu, $submenu;
676 +
677 + if ( ! isset( $menu ) || empty( $menu ) ) {
678 + return;
741 679 }
742 - $_mw_adminimize_footer = _mw_adminimize_getOptionValue('_mw_adminimize_footer');
743 - switch ($_mw_adminimize_footer) {
744 - case 1:
745 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
746 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#footer\').remove(); });' . "\n";
747 - $_mw_adminimize_admin_head .= '</script>' . "\n";
748 - break;
680 +
681 + $user_roles = _mw_adminimize_get_all_user_roles();
682 + $disabled_menu_ = '';
683 + $disabled_submenu_ = '';
684 +
685 + foreach ( $user_roles as $role ) {
686 + $disabled_menu_[ $role ] = _mw_adminimize_get_option_value(
687 + 'mw_adminimize_disabled_menu_' . $role . '_items'
688 + );
689 + $disabled_submenu_[ $role ] = _mw_adminimize_get_option_value(
690 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
691 + );
749 692 }
750 693
751 - // timestamp open
752 - $_mw_adminimize_timestamp = _mw_adminimize_getOptionValue('_mw_adminimize_timestamp');
753 - switch ($_mw_adminimize_timestamp) {
754 - case 1:
755 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
756 - $_mw_adminimize_admin_head .= "\t" . 'addLoadEvent(function(){jQuery(\'.edit-timestamp\').click();});' . "\n";
757 - $_mw_adminimize_admin_head .= '</script>' . "\n";
758 - break;
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 + }
759 710 }
760 711
761 - $_mw_adminimize_admin_head .= '<script type="text/javascript">
762 - /* <![CDATA[ */
763 - adminimizeL10n = {
764 - all: "' . __('All', 'adminimize') . '", none: "' . __('None', 'adminimize') . '"
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';
765 715 }
766 - /* ]]> */
767 - </script>';
768 716
769 - // set menu
770 - if ($disabled_menu != '') {
771 -
772 - // set admin-menu
773 - if ( current_user_can('administrator') ) {
774 - $mw_adminimize_menu = $disabled_menu_adm;
775 - $mw_adminimize_submenu = $disabled_submenu_adm;
776 - $mw_adminimize_top_menu = $disabled_top_menu_adm;
777 - } elseif ( current_user_can('editor') ) {
778 - $mw_adminimize_menu = $disabled_menu;
779 - $mw_adminimize_submenu = $disabled_submenu;
780 - $mw_adminimize_top_menu = $disabled_top_menu;
781 - } elseif ( current_user_can('author') ) {
782 - $mw_adminimize_menu = $disabled_menu_author;
783 - $mw_adminimize_submenu = $disabled_submenu_author;
784 - $mw_adminimize_top_menu = $disabled_top_menu_author;
785 - } elseif ( current_user_can('contributor') ) {
786 - $mw_adminimize_menu = $disabled_menu_contributor;
787 - $mw_adminimize_submenu = $disabled_submenu_contributor;
788 - $mw_adminimize_top_menu = $disabled_top_menu_contributor;
789 - } elseif ( current_user_can('subscriber') ) {
790 - $mw_adminimize_menu = $disabled_menu_subscriber;
791 - $mw_adminimize_submenu = $disabled_submenu_subscriber;
792 - $mw_adminimize_top_menu = $disabled_top_menu_subscriber;
717 + foreach ( $menu as $index => $item ) {
718 +
719 + if ( 'index.php' === $item ) {
720 + continue;
793 721 }
794 -
795 - foreach ($menu as $index => $item) {
796 - if ($item == 'index.php')
797 - continue;
798 -
799 - if ( isset($mw_adminimize_menu) && in_array($item[2], $mw_adminimize_menu) )
800 - unset($menu[$index]);
801 -
802 - if ( isset($submenu) && !empty($submenu[$item[2]]) ) {
803 - foreach ($submenu[$item[2]] as $subindex => $subitem) {
804 - if ( isset($mw_adminimize_submenu) && in_array($subitem[2], $mw_adminimize_submenu))
805 - unset($submenu[$item[2]][$subindex]);
806 - }
722 +
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 ] );
807 730 }
808 -
809 - //top_menu, new in 2.7
810 - if ( isset($top_menu) && !empty($top_menu[$item[2]]) ) {
811 - foreach ($top_menu[$item[2]] as $subindex => $subitem) {
812 - if ( isset($mw_adminimize_top_menu) && in_array($subitem[2], $mw_adminimize_top_menu))
813 - unset($top_menu[$item[2]][$subindex]);
731 +
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 + }
814 744 }
815 745 }
816 746 }
817 -
818 747 }
819 -
820 - print($_mw_adminimize_admin_head);
748 +
821 749 }
822 750
823 -
824 751 /**
825 - * set metabox options from database
752 + * set global options in backend in all areas
826 753 */
827 -function _mw_adminimize_set_metabox_option() {
828 - global $pagenow;
829 -
830 - $_mw_adminimize_admin_head = "\n";
831 -
832 - // post
833 - if ( ('post-new.php' == $pagenow) || ('post.php' == $pagenow) ) {
834 - remove_action('admin_head', 'index_js');
754 +function _mw_adminimize_set_global_option() {
835 755
836 - $disabled_metaboxes_post_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_subscriber_items');
837 - $disabled_metaboxes_post_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_contributor_items');
838 - $disabled_metaboxes_post_author = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_author_items');
839 - $disabled_metaboxes_post = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_items');
840 - $disabled_metaboxes_post_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_adm_items');
841 -
842 - if ( !isset($disabled_metaboxes_post_adm['0']) )
843 - $disabled_metaboxes_post_adm['0'] = '';
844 - if ( !isset($disabled_metaboxes_post['0']) )
845 - $disabled_metaboxes_post['0'] = '';
846 - if ( !isset($disabled_metaboxes_post_author['0']) )
847 - $disabled_metaboxes_post_author['0'] = '';
848 - if ( !isset($disabled_metaboxes_post_contributor['0']) )
849 - $disabled_metaboxes_post_contributor['0'] = '';
850 - if ( !isset($disabled_metaboxes_post_subscriber['0']) )
851 - $disabled_metaboxes_post_subscriber['0'] = '';
852 - if ( current_user_can('administrator') ) {
853 - $metaboxes = implode(',', $disabled_metaboxes_post_adm); // for admins
854 - } elseif ( current_user_can('editor') ) {
855 - $metaboxes = implode(',', $disabled_metaboxes_post); // editor
856 - } elseif ( current_user_can('author') ) {
857 - $metaboxes = implode(',', $disabled_metaboxes_post_author); // author
858 - } elseif ( current_user_can('contributor') ) {
859 - $metaboxes = implode(',', $disabled_metaboxes_post_contributor); // contributor
860 - } elseif ( current_user_can('subscriber') ) {
861 - $metaboxes = implode(',', $disabled_metaboxes_post_subscriber); // subscriber
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' ] = '';
862 780 }
863 -
864 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
865 781 }
866 -
867 - // page
868 - if ( ('page-new.php' == $pagenow) || ('page.php' == $pagenow) ) {
869 - remove_action('admin_head', 'index_js');
870 -
871 - $disabled_metaboxes_page_subscriber = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_subscriber_items');
872 - $disabled_metaboxes_page_contributor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_contributor_items');
873 - $disabled_metaboxes_page_editor = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_editor_items');
874 - $disabled_metaboxes_page = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_items');
875 - $disabled_metaboxes_page_adm = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_adm_items');
876 -
877 - if ( !isset($disabled_metaboxes_page_subscriber['0']) )
878 - $disabled_metaboxes_page_subscriber['0'] = '';
879 - if ( !isset($disabled_metaboxes_page_contributor['0']) )
880 - $disabled_metaboxes_page_contributor['0'] = '';
881 - if ( !isset($disabled_metaboxes_page_author['0']) )
882 - $disabled_metaboxes_page_author['0'] = '';
883 - if ( !isset($disabled_metaboxes_page['0']) )
884 - $disabled_metaboxes_page['0'] = '';
885 - if ( !isset($disabled_metaboxes_page_adm['0']) )
886 - $disabled_metaboxes_page_adm['0'] = '';
887 782
888 - if ( current_user_can('administrator') ) {
889 - $metaboxes = implode(',', $disabled_metaboxes_page_adm); // admin
890 - } elseif ( current_user_can('editor') ) {
891 - $metaboxes = implode(',', $disabled_metaboxes_page); // editor
892 - } elseif ( current_user_can('author') ) {
893 - $metaboxes = implode(',', $disabled_metaboxes_page_author); // author
894 - } elseif ( current_user_can('contributor') ) {
895 - $metaboxes = implode(',', $disabled_metaboxes_page_contributor); // contributor
896 - } elseif ( current_user_can('subscriber') ) {
897 - $metaboxes = implode(',', $disabled_metaboxes_page_subscriber); // subscriber
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 + }
898 794 }
899 -
900 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
901 795 }
902 -
903 - // hide colorscheme
904 - if ( ('profile.php' == $pagenow) && (_mw_adminimize_getOptionValue('mw_adminimize_disabled_colorscheme') == '1') ) {
905 - $_mw_adminimize_admin_head .= '<style type="text/css">#your-profile .form-table fieldset {display: none !important}</style>' . "\n";
796 + if ( isset( $global_options ) && 0 != strpos( $global_options, '#your-profile .form-table fieldset' ) ) {
797 + $_wp_admin_css_colors = 0;
906 798 }
907 -
908 - print($_mw_adminimize_admin_head);
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 + }
909 805 }
910 806
807 +/**
808 + * set metabox options from database an area post
809 + */
810 +function _mw_adminimize_set_metabox_post_option() {
911 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 + }
855 +}
856 +
912 857 /**
913 - * small user-info
914 - * @uses $post_ID
858 + * set metabox options from database an area page
915 859 */
916 -function _mw_adminimize_small_user_info() {
917 -?>
918 - <div id="small_user_info">
919 - <p><a href="<?php echo wp_nonce_url( site_url('wp-login.php?action=logout'), 'log-out' ) ?>" title="<?php _e('Log Out') ?>"><?php _e('Log Out'); ?></a></p>
920 - </div>
921 -<?php
860 +function _mw_adminimize_set_metabox_page_option() {
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 + }
922 904 }
923 905
924 -
925 906 /**
926 - * include options-page in wp-admin
907 + * set metabox options from database an area post
927 908 */
928 -require_once('adminimize_page.php');
909 +function _mw_adminimize_set_metabox_cp_option() {
929 910
911 + // exclude super admin
912 + if ( _mw_adminimize_exclude_super_admin() ) {
913 + return NULL;
914 + }
930 915
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 + }
974 +}
975 +
931 976 /**
932 - * credit in wp-footer
977 + * set link options in area Links of Backend
933 978 */
934 -function _mw_adminimize_admin_footer() {
935 - $plugin_data = get_plugin_data( __FILE__ );
936 - $plugin_data['Title'] = $plugin_data['Name'];
937 - if ( !empty($plugin_data['PluginURI']) && !empty($plugin_data['Name']) )
938 - $plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '" title="'.__( 'Visit plugin homepage' ).'">' . $plugin_data['Name'] . '</a>';
939 -
940 - if ( basename($_SERVER['REQUEST_URI']) == 'adminimize.php') {
941 - printf('%1$s ' . __('plugin') . ' | ' . __('Version') . ' <a href="http://bueltge.de/wordpress-admin-theme-adminimize/674/#historie" title="' . __('History', 'adminimize') . '">%2$s</a> | ' . __('Author') . ' %3$s<br />', $plugin_data['Title'], $plugin_data['Version'], $plugin_data['Author']);
979 +function _mw_adminimize_set_link_option() {
980 +
981 + // exclude super admin
982 + if ( _mw_adminimize_exclude_super_admin() ) {
983 + return NULL;
942 984 }
943 - if ( _mw_adminimize_getOptionValue('_mw_adminimize_advice') == 1 && basename($_SERVER['REQUEST_URI']) != 'adminimize.php' ) {
944 - printf('%1$s ' . __('plugin activate', 'adminimize') . ' | ' . stripslashes( _mw_adminimize_getOptionValue('_mw_adminimize_advice_txt') ) . '<br />', $plugin_data['Title']);
985 +
986 + // Leave the settings screen from Adminimize to see all areas on settings.
987 + if ( _mw_adminimize_exclude_settings_page() ) {
988 + return;
945 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' ] = '';
1003 + }
1004 + }
1005 +
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 + }
1018 + }
1019 +
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;
1026 + }
946 1027 }
947 1028
948 -
949 1029 /**
950 - * Add action link(s) to plugins page
951 - * Thanks Dion Hulse -- http://dd32.id.au/wordpress-plugins/?configure-link
1030 + * remove objects on wp nav menu
952 1031 */
953 -function _mw_adminimize_filter_plugin_actions($links, $file){
954 - static $this_plugin;
1032 +function _mw_adminimize_set_nav_menu_option() {
955 1033
956 - if( !$this_plugin ) $this_plugin = plugin_basename(__FILE__);
1034 + // exclude super admin
1035 + if ( _mw_adminimize_exclude_super_admin() ) {
1036 + return NULL;
1037 + }
957 1038
958 - if( $file == $this_plugin ){
959 - $settings_link = '<a href="options-general.php?page=adminimize/adminimize.php">' . __('Settings') . '</a>';
960 - $links = array_merge( array($settings_link), $links); // before other links
1039 + // Leave the settings screen from Adminimize to see all areas on settings.
1040 + if ( _mw_adminimize_exclude_settings_page() ) {
1041 + return;
961 1042 }
962 - return $links;
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' ] = '';
1056 + }
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 ] );
1069 + }
1070 + }
1071 + }
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 + }
963 1081 }
964 1082
965 -
966 1083 /**
967 - * Images/ Icons in base64-encoding
968 - * @use function _mw_adminimize_get_resource_url() for display
1084 + * Remove areas in Widget Settings
969 1085 */
970 -if( isset($_GET['resource']) && !empty($_GET['resource'])) {
971 - # base64 encoding performed by base64img.php from http://php.holtsmark.no
972 - $resources = array(
973 - 'adminimize.gif' =>
974 - 'R0lGODlhCwALAKIEAPb29tTU1Kurq5SUlP///wAAAAAAAAAAAC'.
975 - 'H5BAEAAAQALAAAAAALAAsAAAMlSErTuw1Ix4a8s4mYgxZbE4wf'.
976 - 'OIzkAJqop64nWm7tULHu0+xLAgA7'.
977 - '');
978 -
979 - if(array_key_exists($_GET['resource'], $resources)) {
1086 +function _mw_adminimize_set_widget_option() {
980 1087
981 - $content = base64_decode($resources[ $_GET['resource'] ]);
1088 + // exclude super admin
1089 + if ( _mw_adminimize_exclude_super_admin() ) {
1090 + return NULL;
1091 + }
982 1092
983 - $lastMod = filemtime(__FILE__);
984 - $client = ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false );
985 - // Checking if the client is validating his cache and if it is current.
986 - if (isset($client) && (strtotime($client) == $lastMod)) {
987 - // Client's cache IS current, so we just respond '304 Not Modified'.
988 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 304);
989 - exit;
990 - } else {
991 - // Image not cached or cache outdated, we respond '200 OK' and output the image.
992 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', true, 200);
993 - header('Content-Length: '.strlen($content));
994 - header('Content-Type: image/' . substr(strrchr($_GET['resource'], '.'), 1) );
995 - echo $content;
996 - exit;
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' ] = '';
997 1110 }
998 1111 }
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 + }
1124 + }
1125 + }
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 + }
999 1135 }
1000 1136
1137 +/**
1138 + * small user-info
1139 + */
1140 +function _mw_adminimize_small_user_info() {
1001 1141
1142 + ?>
1143 + <div id="small_user_info">
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>
1151 + </div>
1152 + <?php
1153 +}
1154 +
1155 +// Include message class.
1156 +require_once 'inc-setup/messages.php';
1157 +// include helping functions
1158 +require_once 'inc-setup/helping_hands.php';
1159 +
1160 +// inc. settings page
1161 +require_once 'adminimize_page.php';
1162 +
1163 +// dashboard options
1164 +require_once 'inc-setup/dashboard.php';
1165 +
1166 +// widget options
1167 +require_once 'inc-setup/widget.php';
1168 +require_once 'inc-setup/admin-footer.php';
1169 +
1170 +// global settings
1171 +// @TODO Testing, not ready for productive
1172 +//require_once( 'inc-options/settings_notice.php' );
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 +
1002 1188 /**
1003 - * Display Images/ Icons in base64-encoding
1004 - * @return $resourceID
1189 + * Add action link(s) to plugins page
1190 + *
1191 + * @param $links , $file
1192 + * @param $file
1193 + *
1194 + * @return $links
1005 1195 */
1006 -function _mw_adminimize_get_resource_url($resourceID) {
1007 -
1008 - return trailingslashit( get_bloginfo('url') ) . '?resource=' . $resourceID;
1196 +function _mw_adminimize_filter_plugin_meta( $links, $file ) {
1197 +
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 + }
1205 +
1206 + return $links;
1009 1207 }
1010 1208
1011 -
1012 1209 /**
1013 1210 * settings in plugin-admin-page
1014 1211 */
1015 1212 function _mw_adminimize_add_settings_page() {
1016 - global $wp_version;
1017 1213
1018 - if( current_user_can('switch_themes') && function_exists('add_submenu_page') ) {
1019 -
1020 - $menutitle = '';
1021 - if ( version_compare( $wp_version, '2.6.999', '>' ) ) {
1022 - $menutitle = '<img src="' . _mw_adminimize_get_resource_url('adminimize.gif') . '" alt="" />';
1023 - }
1024 - $menutitle .= ' ' . __('Adminimize', 'adminimize');
1025 -
1026 - add_submenu_page('options-general.php', __('Adminimize Options', 'adminimize'), $menutitle, 8, __FILE__, '_mw_adminimize_options');
1027 - add_filter('plugin_action_links', '_mw_adminimize_filter_plugin_actions', 10, 2);
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 );
1028 1223 }
1224 + add_action( 'load-' . $pagehook, '_mw_adminimize_on_load_page' );
1029 1225 }
1030 1226
1227 +function _mw_adminimize_on_load_page() {
1031 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 +
1032 1244 /**
1033 1245 * Set theme for users
1246 + * Kill with version 1.7.18
1034 1247 */
1035 1248 function _mw_adminimize_set_theme() {
1036 1249
1037 - if ( !current_user_can('edit_users') )
1038 - wp_die(__('Cheatin&#8217; uh?'));
1250 + if ( ! current_user_can( 'edit_users' ) ) {
1251 + wp_die( esc_attr__( 'Cheatin&#8217; uh?' ) );
1252 + }
1039 1253
1040 - $user_ids = $_POST[mw_adminimize_theme_items];
1041 - $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' ] ) );
1042 1256
1043 - if ( !$user_ids )
1044 - return false;
1257 + if ( ! $user_ids ) {
1258 + return FALSE;
1259 + }
1045 1260
1046 - foreach( $user_ids as $user_id) {
1047 - 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 );
1048 1263 }
1264 +
1265 + return TRUE;
1049 1266 }
1050 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 ) {
1051 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 +
1052 1292 /**
1053 - * read otpions
1293 + * Update options.
1294 + *
1295 + * @param array $options
1054 1296 */
1055 -function _mw_adminimize_getOptionValue($key) {
1297 +function _mw_adminimize_update_option( $options ) {
1056 1298
1057 - $adminimizeoptions = get_option('mw_adminimize');
1058 - return ($adminimizeoptions[$key]);
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 + }
1059 1308 }
1060 1309
1061 -
1062 1310 /**
1063 1311 * Update options in database
1064 1312 */
1065 1313 function _mw_adminimize_update() {
1066 - global $menu, $submenu, $adminimizeoptions;
1067 1314
1068 - if (isset($_POST['_mw_adminimize_favorite_actions'])) {
1069 - $adminimizeoptions['_mw_adminimize_favorite_actions'] = strip_tags(stripslashes($_POST['_mw_adminimize_favorite_actions']));
1070 - } else {
1071 - $adminimizeoptions['_mw_adminimize_favorite_actions'] = 0;
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' ];
1328 + } else {
1329 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = array();
1330 + }
1072 1331 }
1073 -
1074 - if (isset($_POST['_mw_adminimize_screen_options'])) {
1075 - $adminimizeoptions['_mw_adminimize_screen_options'] = strip_tags(stripslashes($_POST['_mw_adminimize_screen_options']));
1076 - } else {
1077 - $adminimizeoptions['_mw_adminimize_screen_options'] = 0;
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'
1336 + );
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 + }
1078 1345 }
1079 1346
1080 - if (isset($_POST['_mw_adminimize_menu_order'])) {
1081 - $adminimizeoptions['_mw_adminimize_menu_order'] = strip_tags(stripslashes($_POST['_mw_adminimize_menu_order']));
1347 + if ( isset( $_POST[ '_mw_adminimize_user_info' ] ) ) {
1348 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = (int) $_POST[ '_mw_adminimize_user_info' ];
1082 1349 } else {
1083 - $adminimizeoptions['_mw_adminimize_menu_order'] = 0;
1350 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = 0;
1084 1351 }
1085 -
1086 - if (isset($_POST['_mw_adminimize_user_info'])) {
1087 - $adminimizeoptions['_mw_adminimize_user_info'] = strip_tags(stripslashes($_POST['_mw_adminimize_user_info']));
1352 +
1353 + if ( isset( $_POST[ '_mw_adminimize_footer' ] ) ) {
1354 + $adminimizeoptions[ '_mw_adminimize_footer' ] = (int) $_POST[ '_mw_adminimize_footer' ];
1088 1355 } else {
1089 - $adminimizeoptions['_mw_adminimize_user_info'] = 0;
1356 + $adminimizeoptions[ '_mw_adminimize_footer' ] = 0;
1090 1357 }
1091 -
1092 - if (isset($_POST['_mw_adminimize_dashmenu'])) {
1093 - $adminimizeoptions['_mw_adminimize_dashmenu'] = strip_tags(stripslashes($_POST['_mw_adminimize_dashmenu']));
1358 +
1359 + if ( isset( $_POST[ '_mw_adminimize_header' ] ) ) {
1360 + $adminimizeoptions[ '_mw_adminimize_header' ] = (int) $_POST[ '_mw_adminimize_header' ];
1094 1361 } else {
1095 - $adminimizeoptions['_mw_adminimize_dashmenu'] = 0;
1362 + $adminimizeoptions[ '_mw_adminimize_header' ] = 0;
1096 1363 }
1097 -
1098 - if (isset($_POST['_mw_adminimize_sidebar_wight'])) {
1099 - $adminimizeoptions['_mw_adminimize_sidebar_wight'] = strip_tags(stripslashes($_POST['_mw_adminimize_sidebar_wight']));
1364 +
1365 + if ( isset( $_POST[ '_mw_adminimize_exclude_super_admin' ] ) ) {
1366 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = (int) $_POST[ '_mw_adminimize_exclude_super_admin' ];
1100 1367 } else {
1101 - $adminimizeoptions['_mw_adminimize_sidebar_wight'] = 0;
1368 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = 0;
1102 1369 }
1103 -
1104 - if (isset($_POST['_mw_adminimize_footer'])) {
1105 - $adminimizeoptions['_mw_adminimize_footer'] = strip_tags(stripslashes($_POST['_mw_adminimize_footer']));
1370 +
1371 + if ( isset( $_POST[ '_mw_adminimize_tb_window' ] ) ) {
1372 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = (int) $_POST[ '_mw_adminimize_tb_window' ];
1106 1373 } else {
1107 - $adminimizeoptions['_mw_adminimize_footer'] = 0;
1374 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = 0;
1108 1375 }
1109 -
1110 - if (isset($_POST['_mw_adminimize_writescroll'])) {
1111 - $adminimizeoptions['_mw_adminimize_writescroll'] = strip_tags(stripslashes($_POST['_mw_adminimize_writescroll']));
1376 +
1377 + if ( isset( $_POST[ '_mw_adminimize_cat_full' ] ) ) {
1378 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = (int) $_POST[ '_mw_adminimize_cat_full' ];
1112 1379 } else {
1113 - $adminimizeoptions['_mw_adminimize_writescroll'] = 0;
1380 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = 0;
1114 1381 }
1115 -
1116 - if (isset($_POST['_mw_adminimize_tb_window'])) {
1117 - $adminimizeoptions['_mw_adminimize_tb_window'] = strip_tags(stripslashes($_POST['_mw_adminimize_tb_window']));
1382 +
1383 + if ( isset( $_POST[ '_mw_adminimize_db_redirect' ] ) ) {
1384 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = (int) $_POST[ '_mw_adminimize_db_redirect' ];
1118 1385 } else {
1119 - $adminimizeoptions['_mw_adminimize_tb_window'] = 0;
1386 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = 0;
1120 1387 }
1121 -
1122 - if (isset($_POST['_mw_adminimize_db_redirect'])) {
1123 - $adminimizeoptions['_mw_adminimize_db_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_db_redirect']));
1388 +
1389 + if ( isset( $_POST[ '_mw_adminimize_ui_redirect' ] ) ) {
1390 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = (int) $_POST[ '_mw_adminimize_ui_redirect' ];
1124 1391 } else {
1125 - $adminimizeoptions['_mw_adminimize_db_redirect'] = 0;
1392 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = 0;
1126 1393 }
1127 -
1128 - if (isset($_POST['_mw_adminimize_ui_redirect'])) {
1129 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_ui_redirect']));
1394 +
1395 + if ( isset( $_POST[ '_mw_adminimize_advice' ] ) ) {
1396 + $adminimizeoptions[ '_mw_adminimize_advice' ] = (int) $_POST[ '_mw_adminimize_advice' ];
1130 1397 } else {
1131 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = 0;
1398 + $adminimizeoptions[ '_mw_adminimize_advice' ] = 0;
1132 1399 }
1133 -
1134 - if (isset($_POST['_mw_adminimize_advice'])) {
1135 - $adminimizeoptions['_mw_adminimize_advice'] = strip_tags(stripslashes($_POST['_mw_adminimize_advice']));
1400 +
1401 + if ( isset( $_POST[ '_mw_adminimize_advice_txt' ] ) ) {
1402 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = htmlspecialchars(
1403 + stripslashes( $_POST[ '_mw_adminimize_advice_txt' ] )
1404 + );
1136 1405 } else {
1137 - $adminimizeoptions['_mw_adminimize_advice'] = 0;
1406 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = '';
1138 1407 }
1139 -
1140 - if (isset($_POST['_mw_adminimize_advice_txt'])) {
1141 - $adminimizeoptions['_mw_adminimize_advice_txt'] = stripslashes($_POST['_mw_adminimize_advice_txt']);
1408 +
1409 + if ( isset( $_POST[ '_mw_adminimize_timestamp' ] ) ) {
1410 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = (int) $_POST[ '_mw_adminimize_timestamp' ];
1142 1411 } else {
1143 - $adminimizeoptions['_mw_adminimize_advice_txt'] = 0;
1412 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = 0;
1144 1413 }
1145 -
1146 - if (isset($_POST['_mw_adminimize_timestamp'])) {
1147 - $adminimizeoptions['_mw_adminimize_timestamp'] = strip_tags(stripslashes($_POST['_mw_adminimize_timestamp']));
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' ] );
1148 1417 } else {
1149 - $adminimizeoptions['_mw_adminimize_timestamp'] = 0;
1418 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = '';
1150 1419 }
1151 -
1152 - if (isset($_POST['_mw_adminimize_db_redirect_txt'])) {
1153 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = stripslashes($_POST['_mw_adminimize_db_redirect_txt']);
1154 - } else {
1155 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = 0;
1156 - }
1157 -
1420 +
1158 1421 // menu update
1159 - if (isset($_POST['mw_adminimize_disabled_menu_subscriber_items'])) {
1160 - $adminimizeoptions['mw_adminimize_disabled_menu_subscriber_items'] = $_POST['mw_adminimize_disabled_menu_subscriber_items'];
1161 - } else {
1162 - $adminimizeoptions['mw_adminimize_disabled_menu_subscriber_items'] = array();
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 + }
1163 1436 }
1164 -
1165 - if (isset($_POST['mw_adminimize_disabled_submenu_subscriber_items'])) {
1166 - $adminimizeoptions['mw_adminimize_disabled_submenu_subscriber_items'] = $_POST['mw_adminimize_disabled_submenu_subscriber_items'];
1167 - } else {
1168 - $adminimizeoptions['mw_adminimize_disabled_submenu_subscriber_items'] = array();
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 + }
1169 1502 }
1170 -
1171 - if (isset($_POST['mw_adminimize_disabled_top_menu_subscriber_items'])) {
1172 - $adminimizeoptions['mw_adminimize_disabled_top_menu_subscriber_items'] = $_POST['mw_adminimize_disabled_top_menu_subscriber_items'];
1503 +
1504 + // own options
1505 + if ( isset( $_POST[ '_mw_adminimize_own_values' ] ) ) {
1506 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = stripslashes( $_POST[ '_mw_adminimize_own_values' ] );
1173 1507 } else {
1174 - $adminimizeoptions['mw_adminimize_disabled_top_menu_subscriber_items'] = array();
1508 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = '';
1175 1509 }
1176 -
1177 - if (isset($_POST['mw_adminimize_disabled_menu_contributor_items'])) {
1178 - $adminimizeoptions['mw_adminimize_disabled_menu_contributor_items'] = $_POST['mw_adminimize_disabled_menu_contributor_items'];
1510 +
1511 + if ( isset( $_POST[ '_mw_adminimize_own_options' ] ) ) {
1512 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = stripslashes( $_POST[ '_mw_adminimize_own_options' ] );
1179 1513 } else {
1180 - $adminimizeoptions['mw_adminimize_disabled_menu_contributor_items'] = array();
1514 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = '';
1181 1515 }
1182 -
1183 - if (isset($_POST['mw_adminimize_disabled_submenu_contributor_items'])) {
1184 - $adminimizeoptions['mw_adminimize_disabled_submenu_contributor_items'] = $_POST['mw_adminimize_disabled_submenu_contributor_items'];
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 + );
1185 1522 } else {
1186 - $adminimizeoptions['mw_adminimize_disabled_submenu_contributor_items'] = array();
1523 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = '';
1187 1524 }
1188 -
1189 - if (isset($_POST['mw_adminimize_disabled_top_menu_contributor_items'])) {
1190 - $adminimizeoptions['mw_adminimize_disabled_top_menu_contributor_items'] = $_POST['mw_adminimize_disabled_top_menu_contributor_items'];
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 + );
1191 1530 } else {
1192 - $adminimizeoptions['mw_adminimize_disabled_top_menu_contributor_items'] = array();
1531 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = '';
1193 1532 }
1194 -
1195 - if (isset($_POST['mw_adminimize_disabled_menu_author_items'])) {
1196 - $adminimizeoptions['mw_adminimize_disabled_menu_author_items'] = $_POST['mw_adminimize_disabled_menu_author_items'];
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 + );
1197 1539 } else {
1198 - $adminimizeoptions['mw_adminimize_disabled_menu_author_items'] = array();
1540 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = '';
1199 1541 }
1200 -
1201 - if (isset($_POST['mw_adminimize_disabled_submenu_author_items'])) {
1202 - $adminimizeoptions['mw_adminimize_disabled_submenu_author_items'] = $_POST['mw_adminimize_disabled_submenu_author_items'];
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 + );
1203 1547 } else {
1204 - $adminimizeoptions['mw_adminimize_disabled_submenu_author_items'] = array();
1548 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = '';
1205 1549 }
1206 -
1207 - if (isset($_POST['mw_adminimize_disabled_top_menu_author_items'])) {
1208 - $adminimizeoptions['mw_adminimize_disabled_top_menu_author_items'] = $_POST['mw_adminimize_disabled_top_menu_author_items'];
1209 - } else {
1210 - $adminimizeoptions['mw_adminimize_disabled_top_menu_author_items'] = array();
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 + }
1211 1568 }
1212 1569
1213 - if (isset($_POST['mw_adminimize_disabled_menu_items'])) {
1214 - $adminimizeoptions['mw_adminimize_disabled_menu_items'] = $_POST['mw_adminimize_disabled_menu_items'];
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 + );
1215 1575 } else {
1216 - $adminimizeoptions['mw_adminimize_disabled_menu_items'] = array();
1576 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = '';
1217 1577 }
1218 -
1219 - if (isset($_POST['mw_adminimize_disabled_submenu_items'])) {
1220 - $adminimizeoptions['mw_adminimize_disabled_submenu_items'] = $_POST['mw_adminimize_disabled_submenu_items'];
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 + );
1221 1583 } else {
1222 - $adminimizeoptions['mw_adminimize_disabled_submenu_items'] = array();
1584 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = '';
1223 1585 }
1224 -
1225 - if (isset($_POST['mw_adminimize_disabled_top_menu_items'])) {
1226 - $adminimizeoptions['mw_adminimize_disabled_top_menu_items'] = $_POST['mw_adminimize_disabled_top_menu_items'];
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 + );
1227 1592 } else {
1228 - $adminimizeoptions['mw_adminimize_disabled_top_menu_items'] = array();
1593 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = '';
1229 1594 }
1230 1595
1231 - if (isset($_POST['mw_adminimize_disabled_menu_adm_items'])) {
1232 - $adminimizeoptions['mw_adminimize_disabled_menu_adm_items'] = $_POST['mw_adminimize_disabled_menu_adm_items'];
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 + );
1233 1600 } else {
1234 - $adminimizeoptions['mw_adminimize_disabled_menu_adm_items'] = array();
1601 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = '';
1235 1602 }
1236 -
1237 - if (isset($_POST['mw_adminimize_disabled_submenu_adm_items'])) {
1238 - $adminimizeoptions['mw_adminimize_disabled_submenu_adm_items'] = $_POST['mw_adminimize_disabled_submenu_adm_items'];
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 + );
1239 1609 } else {
1240 - $adminimizeoptions['mw_adminimize_disabled_submenu_adm_items'] = array();
1610 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = '';
1241 1611 }
1242 -
1243 - if (isset($_POST['mw_adminimize_disabled_top_menu_adm_items'])) {
1244 - $adminimizeoptions['mw_adminimize_disabled_top_menu_adm_items'] = $_POST['mw_adminimize_disabled_top_menu_adm_items'];
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 + );
1245 1617 } else {
1246 - $adminimizeoptions['mw_adminimize_disabled_top_menu_adm_items'] = array();
1618 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = '';
1247 1619 }
1248 -
1249 - // metaboxes update
1250 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_adm_items'])) {
1251 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_adm_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_adm_items'];
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 + );
1252 1626 } else {
1253 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_adm_items'] = array();
1627 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = '';
1254 1628 }
1255 -
1256 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_adm_items'])) {
1257 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_adm_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_adm_items'];
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 + );
1258 1634 } else {
1259 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_adm_items'] = array();
1635 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = '';
1260 1636 }
1261 -
1262 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_items'])) {
1263 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_items'];
1264 - } else {
1265 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_items'] = array();
1637 +
1638 + $adminimizeoptions[ 'mw_adminimize_dashboard_widgets' ] = _mw_adminimize_get_option_value(
1639 + 'mw_adminimize_dashboard_widgets'
1640 + );
1641 +
1642 + if ( isset( $GLOBALS[ 'menu' ] ) ) {
1643 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $GLOBALS[ 'menu' ];
1266 1644 }
1267 -
1268 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_items'])) {
1269 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_items'];
1270 - } else {
1271 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_items'] = array();
1645 + if ( isset( $GLOBALS[ 'submenu' ] ) ) {
1646 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $GLOBALS[ 'submenu' ];
1272 1647 }
1273 -
1274 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_author_items'])) {
1275 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_author_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_author_items'];
1276 - } else {
1277 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_author_items'] = array();
1278 - }
1279 -
1280 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_author_items'])) {
1281 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_author_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_author_items'];
1282 - } else {
1283 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_author_items'] = array();
1284 - }
1285 -
1286 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_contributor_items'])) {
1287 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_contributor_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_contributor_items'];
1288 - } else {
1289 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_contributor_items'] = array();
1290 - }
1291 -
1292 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_contributor_items'])) {
1293 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_contributor_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_contributor_items'];
1294 - } else {
1295 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_contributor_items'] = array();
1296 - }
1297 -
1298 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_subscriber_items'])) {
1299 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_subscriber_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_subscriber_items'];
1300 - } else {
1301 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_subscriber_items'] = array();
1302 - }
1303 -
1304 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_subscriber_items'])) {
1305 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_subscriber_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_subscriber_items'];
1306 - } else {
1307 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_subscriber_items'] = array();
1308 - }
1309 -
1310 - // color scheme
1311 - if (isset($_POST['mw_adminimize_disabled_colorscheme'])) {
1312 - $adminimizeoptions['mw_adminimize_disabled_colorscheme'] = $_POST['mw_adminimize_disabled_colorscheme'];
1313 - } else {
1314 - $adminimizeoptions['mw_adminimize_disabled_colorscheme'] = array();
1315 - }
1316 -
1317 - update_option('mw_adminimize', $adminimizeoptions);
1318 - $adminimizeoptions = get_option('mw_adminimize');
1319 -
1648 +
1649 + // update
1650 + _mw_adminimize_update_option( $adminimizeoptions );
1651 +
1320 1652 $myErrors = new _mw_adminimize_message_class();
1321 - $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>';
1322 1656 echo $myErrors;
1323 1657 }
1324 1658
1325 -
1326 1659 /**
1327 1660 * Delete options in database
1328 1661 */
1329 1662 function _mw_adminimize_deinstall() {
1330 1663
1331 - delete_option('mw_adminimize');
1664 + delete_site_option( 'mw_adminimize' );
1665 + delete_option( 'mw_adminimize' );
1332 1666 }
1333 1667
1334 -
1335 1668 /**
1336 1669 * Install options in database
1337 1670 */
1338 1671 function _mw_adminimize_install() {
1339 - global $menu, $submenu, $top_menu;
1340 1672
1673 + if ( ! is_admin() ) {
1674 + return NULL;
1675 + }
1676 +
1677 + global $menu, $submenu;
1678 +
1679 + $user_roles = _mw_adminimize_get_all_user_roles();
1341 1680 $adminimizeoptions = array();
1342 -
1343 - $adminimizeoptions['mw_adminimize_disabled_menu_subscriber_items'] = array();
1344 - $adminimizeoptions['mw_adminimize_disabled_submenu_subscriber_items'] = array();
1345 - $adminimizeoptions['mw_adminimize_disabled_top_menu_subscriber_items'] = array();
1346 - $adminimizeoptions['mw_adminimize_disabled_menu_contributor_items'] = array();
1347 - $adminimizeoptions['mw_adminimize_disabled_submenu_contributor_items'] = array();
1348 - $adminimizeoptions['mw_adminimize_disabled_top_menu_contributor_items'] = array();
1349 - $adminimizeoptions['mw_adminimize_disabled_menu_author_items'] = array();
1350 - $adminimizeoptions['mw_adminimize_disabled_submenu_author_items'] = array();
1351 - $adminimizeoptions['mw_adminimize_disabled_top_menu_author_items'] = array();
1352 - $adminimizeoptions['mw_adminimize_disabled_menu_items'] = array();
1353 - $adminimizeoptions['mw_adminimize_disabled_submenu_items'] = array();
1354 - $adminimizeoptions['mw_adminimize_disabled_top_menu_items'] = array();
1355 - $adminimizeoptions['mw_adminimize_disabled_menu_adm_items'] = array();
1356 - $adminimizeoptions['mw_adminimize_disabled_submenu_adm_items'] = array();
1357 - $adminimizeoptions['mw_adminimize_disabled_top_menu_adm_items'] = array();
1358 -
1359 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_subscriber_items'] = array();
1360 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_subscriber_items'] = array();
1361 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_contributor_items'] = array();
1362 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_contributor_items'] = array();
1363 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_author_items'] = array();
1364 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_author_items'] = array();
1365 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_items'] = array();
1366 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_items'] = array();
1367 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_adm_items'] = array();
1368 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_adm_items'] = array();
1369 -
1370 - $adminimizeoptions['mw_adminimize_default_menu'] = $menu;
1371 - $adminimizeoptions['mw_adminimize_default_submenu'] = $submenu;
1372 - if ( isset($top_menu) )
1373 - $adminimizeoptions['mw_adminimize_default_top_menu'] = $top_menu;
1374 -
1375 - add_option('mw_adminimize', $adminimizeoptions);
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 + }
1376 1706 }
1377 -?>
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 +}