PluginProbe
Adminimize / 1.11.9
Adminimize v1.11.9
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 +1547 -1089 1.61.11.9 View file →
@@ -1,1377 +1,1835 @@
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: WP MEDIA SAS
9 + * Author URI: https://wp-media.me/
10 + * Version: 1.11.9
11 + * License: GPLv2+
12 + *
13 + * Php Version 5.6
14 + *
15 + * @package WordPress
16 + * @author Frank Bültge <frank@bueltge.de>
17 + * @license http://opensource.org/licenses/gpl-license.php GNU Public License
18 + * @version 2022-12-09
19 + */
2 20
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 -*/
21 +/**
22 + * The stylesheet and the initial idea is from Eric A. Meyer http://meyerweb.com/
23 + * I have written a plugin with many options on the basis idea
24 + * of differently user-right and a user-friendly range in admin-area via reduce areas.
25 + * :( grmpf i have so much wishes and hints form users, there use the plugin and
26 + * it is not easy to development this on my free time.
27 + * Also I hate the source, old and hard to maintain, no OOP.
28 + */
12 29
30 +if ( ! function_exists( 'add_action' ) ) {
31 + echo "Hi there! I'm just a part of plugin, not much I can do when called directly.";
32 + exit;
33 +}
34 +
35 +// plugin definitions
36 +define( 'FB_ADMINIMIZE_BASENAME', plugin_basename( __FILE__ ) );
37 +define( 'FB_ADMINIMIZE_BASEFOLDER', plugin_basename( __DIR__ ) );
38 +
13 39 /**
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.
40 + * Return data from the plugin.
17 41 *
18 - * The javascript for de/activate checkboxes ist by Oliver Schl�be, http://www.schloebe.de
19 - * - many thanks
42 + * @param string $value
43 + *
44 + * @return mixed
20 45 */
46 +function _mw_adminimize_get_plugin_data( $value = 'Version' ) {
21 47
48 + if ( ! function_exists( 'get_plugin_data' ) ) {
49 + require_once ABSPATH . '/wp-admin/includes/plugin.php';
50 + }
22 51
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' );
52 + $plugin_data = get_plugin_data( __FILE__ );
32 53
33 -function _mw_adminimize_textdomain() {
34 -
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 - }
41 - }
54 + return $plugin_data[ $value ];
42 55 }
43 56
57 +/**
58 + * Load language files.
59 + */
60 +function _mw_adminimize_textdomain() {
44 61
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 - }
62 + load_plugin_textdomain(
63 + _mw_adminimize_get_plugin_data( 'TextDomain' ),
64 + FALSE,
65 + dirname( FB_ADMINIMIZE_BASENAME ) . _mw_adminimize_get_plugin_data( 'DomainPath' )
66 + );
54 67 }
55 68
56 -
57 69 /**
58 - * some basics for message
70 + * Exclude the Super Admin of Multisite.
71 + *
72 + * @return bool
59 73 */
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();
74 +function _mw_adminimize_exclude_super_admin() {
75 +
76 + if ( ! function_exists( 'is_super_admin' ) ) {
77 + return FALSE;
65 78 }
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;
79 +
80 + if ( ! is_super_admin() ) {
81 + return FALSE;
78 82 }
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));
83 +
84 + if ( 1 === (int) _mw_adminimize_get_option_value( '_mw_adminimize_exclude_super_admin' ) ) {
85 + return TRUE;
88 86 }
87 +
88 + return FALSE;
89 89 }
90 90
91 -
92 91 /**
93 - * check user-option and add new style
94 - * @uses $pagenow
92 + * Get the status, if is on the settings page.
93 + *
94 + * @return bool
95 95 */
96 -function _mw_adminimize_init() {
97 - global $pagenow, $menu, $submenu, $adminimizeoptions, $top_menu, $wp_version;
96 +function _mw_adminimize_exclude_settings_page() {
98 97
99 - $adminimizeoptions = get_option('mw_adminimize');
98 + if ( ! is_admin() ) {
99 + return false;
100 + }
100 101
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');
102 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
103 + return false;
104 + }
111 105
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);
106 + $page = '';
107 + if ( isset( $_GET['page'] ) ) {
108 + $page = esc_attr( $_GET['page'] );
109 + }
118 110
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');
111 + if ( function_exists( 'get_current_screen' ) ) {
112 + $screen_tmp = get_current_screen();
127 113
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;
114 + if ( isset( $screen_tmp->id ) && null !== $screen_tmp->id ) {
115 + $page = $screen_tmp->id;
135 116 }
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);
145 117 }
146 118
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);
119 + // Don't filter on settings page
120 + return FALSE !== strpos( $page, 'adminimize' );
121 +}
122 +
123 +/**
124 + * Get status, if the plugin active network wide.
125 + *
126 + * @return bool
127 + */
128 +function _mw_adminimize_is_active_on_multisite() {
129 +
130 + if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
131 + require_once ABSPATH . '/wp-admin/includes/plugin.php';
151 132 }
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 133
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 - }
134 + /**
135 + * Allow different adminimize options per site on multisite.
136 + *
137 + * @since 1.11.6
138 + *
139 + * @param bool
140 + */
141 + $force_single_site_usage = apply_filters( 'adminimize_mu_force_options_per_site', false );
193 142
143 + if ( is_multisite()
144 + && is_plugin_active_for_network( FB_ADMINIMIZE_BASENAME )
145 + && ! $force_single_site_usage ) {
146 + return TRUE;
194 147 }
195 148
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 - }
149 + return FALSE;
150 +}
205 151
206 - // set menu option
207 - add_action('admin_head', '_mw_adminimize_set_menu_option', 1);
152 +/**
153 + * 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
158 + */
159 +function _mw_adminimize_get_all_user_roles() {
208 160
209 - // set metabox option
210 - add_action('admin_head', '_mw_adminimize_set_metabox_option', 1);
161 + /** @var $wp_roles WP_Roles */
162 + global $wp_roles;
211 163
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 -}
164 + $user_roles = array();
219 165
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);
226 -}
166 + if ( null !== $wp_roles->roles && is_array( $wp_roles->roles ) ) {
167 + foreach ( $wp_roles->roles as $role => $data ) {
168 + $user_roles[] = $role;
169 + // The $data var contains caps, maybe for later use.
170 + }
171 + }
227 172
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');
173 + // Exclude the new bbPress roles.
174 + if ( ! _mw_adminimize_get_option_value( 'mw_adminimize_support_bbpress' ) ) {
175 + $user_roles = array_diff(
176 + $user_roles,
177 + array( 'bbp_keymaster', 'bbp_moderator', 'bbp_participant', 'bbp_spectator', 'bbp_blocked' )
178 + );
179 + }
233 180
181 + /**
182 + * Use this filter to add or remove a role in Adminimize options.
183 + *
184 + * @since 1.11.6
185 + *
186 + * @param array
187 + */
188 + return apply_filters( 'adminimize_user_roles_filter', $user_roles );
189 +}
234 190
235 191 /**
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
192 + * _mw_adminimize_get_all_user_roles_names() - Returns an array with all user roles_names in it.
193 + * Inclusive self defined roles (for example with the 'Role Manager' plugin).
194 + *
195 + * @uses $wp_roles
196 + * @return array $user_roles_names
240 197 */
241 -function _mw_adminimize_image_downsize($value = false,$id = 0, $size = "medium") {
198 +function _mw_adminimize_get_all_user_roles_names() {
242 199
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);
200 + /** @var $wp_roles WP_Roles */
201 + global $wp_roles;
202 + $user_roles_names = array();
203 +
204 + foreach ( $wp_roles->role_names as $role_name => $data ) {
205 +
206 + $data = translate_user_role( $data );
207 + $user_roles_names[] = $data;
250 208 }
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);
255 - }
209 +
210 + // exclude the new bbPress roles
211 + if ( ! _mw_adminimize_get_option_value( 'mw_adminimize_support_bbpress' ) ) {
212 + $user_roles_names = array_diff(
213 + $user_roles_names,
214 + array(
215 + esc_attr__( 'Keymaster', 'bbpress' ),
216 + esc_attr__( 'Moderator', 'bbpress' ),
217 + esc_attr__( 'Participant', 'bbpress' ),
218 + esc_attr__( 'Spectator', 'bbpress' ),
219 + esc_attr__( 'Blocked', 'bbpress' ),
220 + )
221 + );
256 222 }
257 - if ( $img_url)
258 - return array($img_url, 0, 0);
259 - return false;
223 +
224 + /**
225 + * Use this filter to add or remove a role-name in Adminimize options.
226 + *
227 + * @since 1.11.6
228 + *
229 + * @param array
230 + */
231 + return apply_filters( 'adminimize_user_roles_names_filter', $user_roles_names );
260 232 }
261 233
262 -
263 234 /**
264 - * list category-box in sidebar
265 - * @uses $post_ID
235 + * Get post type.
236 + *
237 + * @return null|string String of the post type.
266 238 */
267 -function _mw_adminimize_sidecat_list_category_box() {
268 - global $post_ID;
269 - ?>
239 +function _mw_adminimize_get_current_post_type() {
270 240
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
302 -}
241 + global $post, $typenow, $current_screen;
303 242
243 + // We have a post so we can just get the post type from that.
244 + if ( $post && $post->post_type ) {
245 + return $post->post_type;
246 + }
304 247
305 -/**
306 - * list tag-box in sidebar
307 - * @uses $post_ID
308 - */
309 -function _mw_adminimize_sidecat_list_tag_box() {
310 - global $post_ID;
248 + // Check the global $typenow - set in admin.php
249 + if ( $typenow ) {
250 + return $typenow;
251 + }
311 252
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
253 + // Check the global $current_screen object - set in screen.php
254 + if ( $current_screen && $current_screen->post_type ) {
255 + return $current_screen->post_type;
320 256 }
257 +
258 + // lastly check the post_type querystring
259 + if ( isset( $_REQUEST['post_type'] ) ) {
260 + return sanitize_key( $_REQUEST[ 'post_type' ] );
261 + }
262 +
263 + // we do not know the post type!
264 + return NULL;
321 265 }
322 266
323 -
324 267 /**
325 - * remove default categorydiv
326 - * @echo script
268 + * Check user-option and add new style.
327 269 */
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');
334 - } 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";
270 +function _mw_adminimize_admin_init() {
339 271
340 - print($_mw_adminimize_sidecat_admin_head);
272 + global $pagenow, $post_type, $menu, $submenu;
273 +
274 + $post_id = 0;
275 + if ( isset( $_GET[ 'post' ] ) && ! is_array( $_GET[ 'post' ] ) ) {
276 + $post_id = (int) esc_attr( $_GET[ 'post' ] );
277 + } elseif ( isset( $_POST[ 'post_ID' ] ) ) {
278 + $post_id = (int) esc_attr( $_POST[ 'post_ID' ] );
341 279 }
342 -}
343 280
281 + $current_post_type = $post_type;
282 + if ( ! isset( $current_post_type ) || empty( $current_post_type ) ) {
283 + $current_post_type = get_post_type( $post_id );
284 + }
285 + if ( ! isset( $current_post_type ) || empty( $current_post_type ) ) {
286 + $current_post_type = _mw_adminimize_get_current_post_type();
287 + }
288 + if ( ! $current_post_type ) { // set hard to post
289 + $current_post_type = 'post';
290 + }
344 291
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 -}
292 + // Debug helper
293 + if ( class_exists( 'DebugListener' ) ) {
294 + $listener = new DebugListener();
295 + add_action( 'adminimize.log', [$listener, 'listen'], 10, 2 );
296 + add_action( 'wp_footer', array( $listener, 'dump' ), PHP_INT_MAX );
297 + }
362 298
299 + // Get all user roles.
300 + $user_roles = _mw_adminimize_get_all_user_roles();
363 301
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/';
302 + // Get settings.
303 + $adminimizeoptions = _mw_adminimize_get_option_value();
372 304
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')
305 + // pages for post type Post
306 + $def_post_pages = array( 'edit.php', 'post.php', 'post-new.php' );
307 + $def_post_types = array( 'post' );
308 + $disabled_metaboxes_post_all = array();
309 + // pages for post type Page
310 + $def_page_pages = array_merge( $def_post_pages, array( 'page-new.php', 'page.php' ) );
311 + $def_page_types = array( 'page' );
312 + $disabled_metaboxes_page_all = array();
313 + // pages for custom post types
314 + $def_custom_pages = $def_post_pages;
315 + $args = array( 'public' => TRUE, '_builtin' => FALSE );
316 + $def_custom_types = get_post_types( $args );
317 + // pages for link pages
318 + $link_pages = array( 'link.php', 'link-manager.php', 'link-add.php', 'edit-link-categories.php' );
319 + // pages for nav menu
320 + $nav_menu_pages = array( 'nav-menus.php' );
321 + // widget pages
322 + $widget_pages = array( 'widgets.php' );
323 +
324 + foreach ( $user_roles as $role ) {
325 + $disabled_admin_bar_[ $role ] = _mw_adminimize_get_option_value(
326 + 'mw_adminimize_disabled_admin_bar_' . $role . '_items'
379 327 );
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')
328 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
329 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
386 330 );
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')
331 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
332 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
394 333 );
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')
334 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
335 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
401 336 );
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')
337 + foreach ( $def_custom_types as $post_type ) {
338 + $disabled_metaboxes_[ $post_type . '_' . $role ] = _mw_adminimize_get_option_value(
339 + 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items'
340 + );
341 + }
342 + $disabled_link_option_[ $role ] = _mw_adminimize_get_option_value(
343 + 'mw_adminimize_disabled_link_option_' . $role . '_items'
408 344 );
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')
345 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
346 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
415 347 );
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')
348 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
349 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
422 350 );
351 + $disabled_metaboxes_post_all[] = $disabled_metaboxes_post_[ $role ];
352 + $disabled_metaboxes_page_all[] = $disabled_metaboxes_page_[ $role ];
423 353 }
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 -
354 +
355 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
356 +
357 + // Backend options
358 + // exclude super admin
359 + if ( ! _mw_adminimize_exclude_super_admin() && ! _mw_adminimize_exclude_settings_page() ) {
360 + $_mw_adminimize_header = (int) _mw_adminimize_get_option_value( '_mw_adminimize_header' );
361 + if ( 1 === $_mw_adminimize_header ) {
362 + wp_enqueue_script(
363 + '_mw_adminimize_remove_header',
364 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/remove_header' . $suffix . '.js',
365 + [ 'jquery' ]
366 + );
367 + }
368 +
369 + // Post-page options.
370 + if ( in_array( $pagenow, $def_post_pages, TRUE ) ) {
371 +
372 + $_mw_adminimize_tb_window = (int) _mw_adminimize_get_option_value( '_mw_adminimize_tb_window' );
373 + switch ( $_mw_adminimize_tb_window ) {
374 + case 1:
375 + wp_deregister_script( 'media-upload' );
376 + wp_enqueue_script(
377 + 'media-upload',
378 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/tb_window' . $suffix . '.js',
379 + array( 'thickbox' )
380 + );
381 + break;
382 + }
383 + $_mw_adminimize_timestamp = (int) _mw_adminimize_get_option_value( '_mw_adminimize_timestamp' );
384 + switch ( $_mw_adminimize_timestamp ) {
385 + case 1:
386 + wp_enqueue_script(
387 + '_mw_adminimize_timestamp',
388 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/timestamp' . $suffix . '.js',
389 + array( 'jquery' )
390 + );
391 + break;
392 + }
393 +
394 + // Category options.
395 + $_mw_adminimize_cat_full = (int) _mw_adminimize_get_option_value( '_mw_adminimize_cat_full' );
396 + switch ( $_mw_adminimize_cat_full ) {
397 + case 1:
398 + wp_enqueue_style(
399 + 'adminimize-full-category',
400 + WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/css/mw_cat_full' . $suffix . '.css'
401 + );
402 + break;
403 + }
404 +
405 + // Set default editor tinymce
406 + if ( _mw_adminimize_recursive_in_array(
407 + '#editor-toolbar #edButtonHTML, #quicktags, #content-html',
408 + $disabled_metaboxes_page_all
409 + )
410 + || _mw_adminimize_recursive_in_array(
411 + '#editor-toolbar #edButtonHTML, #quicktags, #content-html',
412 + $disabled_metaboxes_post_all
413 + )
414 + ) {
415 + add_filter( 'wp_default_editor', '_mw_admininimize_return_tinmyce' );
416 + /**
417 + * Return string tinymce.
418 + * Necessary for php 5.2 usage :(; not possible to use an anonymous function.
419 + *
420 + * @return string
421 + */
422 + function _mw_admininimize_return_tinmyce() {
423 + return 'tinymce';
424 + }
425 + }
426 +
427 + // Remove media buttons
428 + if ( _mw_adminimize_recursive_in_array( 'media_buttons', $disabled_metaboxes_page_all )
429 + || _mw_adminimize_recursive_in_array( 'media_buttons', $disabled_metaboxes_post_all )
430 + ) {
431 + remove_action( 'media_buttons', 'media_buttons' );
432 + }
433 + }
445 434 }
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 -
435 +
436 + // set meta-box post option
437 + if ( in_array( $pagenow, $def_post_pages, TRUE ) && in_array( $current_post_type, $def_post_types, TRUE ) ) {
438 + add_action( 'admin_head', '_mw_adminimize_set_metabox_post_option', 1 );
468 439 }
440 + // set meta-box page option
441 + if ( in_array( $pagenow, $def_page_pages, TRUE ) && in_array( $current_post_type, $def_page_types, TRUE ) ) {
442 + add_action( 'admin_head', '_mw_adminimize_set_metabox_page_option', 1 );
443 + }
444 + // set custom post type options
445 + if ( function_exists( 'get_post_types' ) && in_array( $pagenow, $def_custom_pages, TRUE )
446 + && in_array( $current_post_type, $def_custom_types, TRUE )
447 + ) {
448 + add_action( 'admin_head', '_mw_adminimize_set_metabox_cp_option', 1 );
449 + }
450 + // set link option
451 + if ( in_array( $pagenow, $link_pages, TRUE ) ) {
452 + add_action( 'admin_head', '_mw_adminimize_set_link_option', 1 );
453 + }
454 + // set wp nav menu options
455 + if ( in_array( $pagenow, $nav_menu_pages, TRUE ) ) {
456 + add_action( 'admin_head', '_mw_adminimize_set_nav_menu_option', 1 );
457 + }
458 + // set widget options
459 + if ( in_array( $pagenow, $widget_pages, TRUE ) ) {
460 + add_action( 'admin_head', '_mw_adminimize_set_widget_option', 1 );
461 + }
469 462 }
470 463
464 +// Change menu via settings of Adminimize.
465 +//add_filter( 'custom_menu_order', '__return_true' );
466 +add_filter( 'admin_menu', '_mw_adminimize_set_menu_option', 99999 );
471 467
468 +// global_options
469 +add_action( 'admin_head', '_mw_adminimize_set_global_option', 1 );
470 +// on admin init
471 +if ( is_admin() ) {
472 + add_action( 'admin_init', '_mw_adminimize_admin_init' );
473 + add_action( 'admin_menu', '_mw_adminimize_add_settings_page' );
474 + add_action( 'admin_menu', '_mw_adminimize_remove_dashboard' );
475 +}
476 +
477 +register_activation_hook( __FILE__, '_mw_adminimize_install' );
478 +register_uninstall_hook( __FILE__, '_mw_adminimize_uninstall' );
479 +
472 480 /**
473 - * remove the dashbord
474 - * @author of basic Austin Matzko
475 - * http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/
481 + * Remove the dashboard
476 482 */
477 483 function _mw_adminimize_remove_dashboard() {
478 - global $menu, $submenu, $user_ID, $top_menu;
479 484
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');
485 + // exclude super admin
486 + if ( _mw_adminimize_exclude_super_admin() ) {
487 + return;
488 + }
495 489
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 -
490 + // Leave the settings screen from Adminimize to see all areas on settings.
491 + if ( _mw_adminimize_exclude_settings_page() ) {
492 + return;
493 + }
494 +
495 + global $menu, $user_ID;
496 +
497 + $disabled_menu_ = array();
498 + $disabled_submenu_ = array();
499 + $user_roles = _mw_adminimize_get_all_user_roles();
500 +
501 + foreach ( $user_roles as $role ) {
502 + $disabled_menu_[ $role ] = (array) _mw_adminimize_get_option_value(
503 + 'mw_adminimize_disabled_menu_' . $role . '_items'
504 + );
505 + $disabled_submenu_[ $role ] = (array) _mw_adminimize_get_option_value(
506 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
507 + );
508 + }
509 +
510 + $disabled_menu_all = array();
503 511 $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 -
512 +
513 + foreach ( $user_roles as $role ) {
514 + $disabled_menu_all[] = $disabled_menu_[ $role ];
515 + $disabled_submenu_all[] = $disabled_submenu_[ $role ];
516 + }
517 +
517 518 // remove dashboard
518 - if ($disabled_menu_all != '' || $disabled_submenu_all != '' || $disabled_top_menu_all != '') {
519 + if ( $disabled_menu_all !== '' || $disabled_submenu_all !== '' ) {
519 520
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';
521 + $redirect = FALSE;
522 + foreach ( $user_roles as $role ) {
523 + if ( _mw_adminimize_current_user_has_role( $role ) ) {
524 + if ( _mw_adminimize_recursive_in_array( 'index.php', $disabled_menu_[ $role ] )
525 + || _mw_adminimize_recursive_in_array( 'index.php', $disabled_submenu_[ $role ] )
526 + ) {
527 + $redirect = TRUE;
528 + }
529 + }
555 530 }
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;
531 +
532 + // Redirect option, if Dashboard is inactive
533 + if ( $redirect ) {
534 + $_mw_adminimize_db_redirect = (int) _mw_adminimize_get_option_value(
535 + '_mw_adminimize_db_redirect'
536 + );
537 + $_mw_adminimize_db_redirect_admin_url = get_option( 'siteurl' ) . '/wp-admin/';
538 + switch ( $_mw_adminimize_db_redirect ) {
539 + case 0:
540 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php';
541 + break;
542 + case 1:
543 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php';
544 + break;
545 + case 2:
546 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page';
547 + break;
548 + case 3:
549 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php';
550 + break;
551 + case 4:
552 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php';
553 + break;
554 + case 5:
555 + $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php';
556 + break;
557 + case 6:
558 + $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value( '_mw_adminimize_db_redirect_txt' );
559 + break;
581 560 }
582 561
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 );
562 + $the_user = new WP_User( $user_ID );
563 + reset( $menu );
564 + $page = key( $menu );
565 +
566 + $dashboard_core_string = esc_attr__( 'Dashboard' );
567 + $dashboard = array( $menu[ $page ][ 0 ], $menu[ $page ][ 1 ] );
568 + while (
569 + ! in_array( $dashboard_core_string, $dashboard, TRUE ) && next( $menu )
570 + ) {
571 + $page = key( $menu );
572 + }
573 +
574 + if ( in_array( $dashboard_core_string, $dashboard, TRUE ) ) {
575 + unset( $menu[ $page ] );
576 + }
577 + reset( $menu );
578 + $page = key( $menu );
579 +
580 + while ( ! $the_user->has_cap( $menu[ $page ][ 1 ] ) && next( $menu ) ) {
581 + $page = key( $menu );
582 + }
583 +
584 + if ( preg_match( '#wp-admin/?(index.php)?$#', $_SERVER[ 'REQUEST_URI' ] ) ) {
585 + wp_safe_redirect( $_mw_adminimize_db_redirect );
586 + }
587 + }
588 + }
589 +}
590 +
591 +/**
592 + * Set menu for settings
593 + */
594 +function _mw_adminimize_set_menu_option() {
595 +
596 + // exclude super admin
597 + if ( _mw_adminimize_exclude_super_admin() ) {
598 + return;
599 + }
600 +
601 + // Leave the settings screen from Adminimize to see all areas on settings.
602 + if ( _mw_adminimize_exclude_settings_page() ) {
603 + return;
604 + }
605 +
606 + global $menu, $submenu;
607 + $wp_menu = (array) _mw_adminimize_get_option_value( 'mw_adminimize_default_menu' );
608 + $wp_submenu = (array) _mw_adminimize_get_option_value( 'mw_adminimize_default_submenu' );
609 +
610 + // Object to array
611 + if ( is_object( $wp_submenu ) ) {
612 + $wp_submenu = get_object_vars( $wp_submenu );
613 + }
614 +
615 + if ( ! isset( $wp_menu ) || empty( $wp_menu ) ) {
616 + $wp_menu = $menu;
617 + }
618 + if ( ! isset( $wp_submenu ) || empty( $wp_submenu ) ) {
619 + $wp_submenu = $submenu;
620 + }
621 + if ( ! isset( $menu ) || empty( $menu ) ) {
622 + return;
623 + }
624 +
625 + _mw_adminimize_debug( $wp_menu, 'Adminimize, WordPress Menu:' );
626 + _mw_adminimize_debug( $wp_submenu, 'Adminimize, WordPress Sub-Menu:' );
627 +
628 + $disabled_menu_ = array();
629 + $disabled_submenu_ = array();
630 + $user = wp_get_current_user();
631 + $user_roles = $user->roles;
632 + _mw_adminimize_debug( $user, 'Adminimize, Current User:' );
633 +
634 + foreach ( $user_roles as $role ) {
635 + $disabled_menu_[ $role ] = (array) _mw_adminimize_get_option_value(
636 + 'mw_adminimize_disabled_menu_' . $role . '_items'
637 + );
638 + $disabled_submenu_[ $role ] = (array) _mw_adminimize_get_option_value(
639 + 'mw_adminimize_disabled_submenu_' . $role . '_items'
640 + );
641 + }
642 +
643 + $mw_adminimize_menu = array();
644 + $mw_adminimize_submenu = array();
645 +
646 + // Set admin-menu.
647 + foreach ( $user_roles as $role ) {
648 + if ( in_array( $role, $user->roles, TRUE )
649 + && _mw_adminimize_current_user_has_role( $role )
650 + ) {
651 + // Create array about all items with all affected roles.
652 + foreach ( (array) $disabled_menu_[ $role ] as $menu_item ) {
653 + $mw_adminimize_menu[] = $menu_item;
654 + }
655 + foreach ( (array) $disabled_submenu_[ $role ] as $submenu_item ) {
656 + $mw_adminimize_submenu[] = $submenu_item;
657 + }
658 + }
659 + }
660 +
661 + // Support Multiple Roles for users.
662 + // Leave only the items, there are active on each roles of the users.
663 + if ( _mw_adminimize_get_option_value( 'mw_adminimize_multiple_roles' ) && 1 < count( $user->roles ) ) {
664 + $mw_adminimize_menu = _mw_adminimize_get_intersection( $disabled_menu_ );
665 + $mw_adminimize_submenu = _mw_adminimize_get_intersection( $disabled_submenu_ );
666 + } else {
667 + // Alternative filter the array to remove duplicates, much faster.
668 + $mw_adminimize_menu = array_unique( $mw_adminimize_menu );
669 + $mw_adminimize_submenu = array_unique( $mw_adminimize_submenu );
670 + }
671 + _mw_adminimize_debug( $mw_adminimize_menu, 'Adminimize, Menu Slugs to hide after Filter.' );
672 + _mw_adminimize_debug( $mw_adminimize_submenu, 'Adminimize, Sub-Menu Slugs to hide after Filter.' );
673 +
674 + foreach ( $wp_menu as $key => $item ) {
675 +
676 + _mw_adminimize_debug( $item, 'Adminimize, Each Menu Item Array to check for hiding.' );
677 +
678 + // Menu
679 + if ( isset( $item[ 2 ] ) ) {
680 + $menu_slug = $item[ 2 ];
681 + // Check, if the Menu item in the current user role settings?
682 + if ( in_array( $menu_slug, $mw_adminimize_menu, false )
683 + ) {
684 + remove_menu_page( $menu_slug );
685 + // Prevent access to the page with the slug, there was inactive.
686 + _mw_adminimize_check_page_access( $menu_slug );
687 + }
688 +
689 + // Sub Menu Settings.
690 + if ( isset( $wp_submenu ) && ! empty( $wp_submenu[ $menu_slug ] ) ) {
691 + foreach ( (array) $wp_submenu[ $menu_slug ] as $subindex => $subitem ) {
692 +
693 + // @see https://github.com/bueltge/adminimize/issues/149
694 + if ( is_object( $subitem ) ) {
695 + $subitem = json_decode( json_encode( $subitem ), true );
696 + }
697 +
698 + // Check, if is Sub Menu item in the user role settings?
699 + if (
700 + isset( $mw_adminimize_submenu )
701 + && _mw_adminimize_in_arrays(
702 + array( $subitem[ 2 ], $menu_slug . '__' . $subindex ),
703 + $mw_adminimize_submenu
704 + )
705 + ) {
706 + remove_submenu_page( $menu_slug, $subitem[ 2 ] );
707 + // Prevent access to the page with the slug, there was inactive.
708 + _mw_adminimize_check_page_access( $subitem[ 2 ] );
709 + }
601 710 }
602 711 }
603 712 }
604 713 }
714 +
605 715 }
606 716
717 +/**
718 + * Set global options in backend in all areas.
719 + */
720 +function _mw_adminimize_set_global_option() {
607 721
722 + // exclude super admin
723 + if ( _mw_adminimize_exclude_super_admin() ) {
724 + return NULL;
725 + }
726 +
727 + // Leave the settings screen from Adminimize to see all areas on settings.
728 + if ( _mw_adminimize_exclude_settings_page() ) {
729 + return;
730 + }
731 +
732 + $user_roles = _mw_adminimize_get_all_user_roles();
733 + $_mw_adminimize_admin_head = '';
734 + $disabled_global_option = array();
735 + $disabled_global_option_ = array();
736 + $user = wp_get_current_user();
737 +
738 + // Get settings for each role.
739 + foreach ( $user_roles as $role ) {
740 + $disabled_global_option_[ $role ] = (array) _mw_adminimize_get_option_value(
741 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
742 + );
743 + }
744 +
745 + // Write global options in an var.
746 + foreach ( $user_roles as $role ) {
747 + if ( in_array( $role, $user->roles, TRUE ) && _mw_adminimize_current_user_has_role( $role ) ) {
748 +
749 + // Create array about all items with all affected roles, important for multiple roles.
750 + foreach ( (array) $disabled_global_option_[ $role ] as $global_item ) {
751 + $disabled_global_option[] = $global_item;
752 + }
753 + }
754 + }
755 +
756 + // Support Multiple Roles for users.
757 + if ( _mw_adminimize_get_option_value( 'mw_adminimize_multiple_roles' ) && 1 < count( $user->roles ) ) {
758 + $disabled_global_option = _mw_adminimize_get_duplicate( $disabled_global_option );
759 + }
760 + $global_options = implode( ', ', $disabled_global_option );
761 +
762 + if ( 0 === strpos( $global_options, '#your-profile .form-table fieldset' ) ) {
763 + global $_wp_admin_css_colors;
764 + $_wp_admin_css_colors = 0;
765 + }
766 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize global options -->' . "\n";
767 + $_mw_adminimize_admin_head .= '<style type="text/css">' . $global_options . ' {display:none !important;}</style>' . "\n";
768 +
769 + // List options if the debug option is active.
770 + _mw_adminimize_debug($global_options, 'Adminimize: List active global options:');
771 +
772 + if ( '' !== $global_options ) {
773 + echo $_mw_adminimize_admin_head;
774 + }
775 +}
776 +
608 777 /**
609 - * remove the flash_uploader
778 + * Set metabox options from database an area post.
610 779 */
611 -function _mw_adminimize_disable_flash_uploader() {
612 - return false;
780 +function _mw_adminimize_set_metabox_post_option() {
781 +
782 + // exclude super admin
783 + if ( _mw_adminimize_exclude_super_admin() ) {
784 + return;
785 + }
786 +
787 + // Leave the settings screen from Adminimize to see all areas on settings.
788 + if ( _mw_adminimize_exclude_settings_page() ) {
789 + return;
790 + }
791 +
792 + $user_roles = _mw_adminimize_get_all_user_roles();
793 + $_mw_adminimize_admin_head = '';
794 + // It's better to declare $metaboxes as an array for better manipulation later.
795 + $metaboxes = array();
796 +
797 + foreach ( $user_roles as $role ) {
798 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
799 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
800 + );
801 +
802 + if ( ! isset( $disabled_metaboxes_post_[ $role ]['0'] ) ) {
803 + $disabled_metaboxes_post_[ $role ]['0'] = '';
804 +
805 + /**
806 + * @todo Think why keep going if $role does not even have boxes to hide? We may as well jump to the next $role.
807 + */
808 + continue;
809 + }
810 +
811 + /**
812 + * @todo Think why call a function as we can use a global variable already declared by WordPress.
813 + * @var WP_User $user Instance of WP_User.
814 + * @since 1.7.8
815 + * @version 1.11.4
816 + */
817 + $user = $GLOBALS['current_user'];
818 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, true ) ) {
819 + if ( _mw_adminimize_current_user_has_role( $role ) && isset( $disabled_metaboxes_post_[ $role ] )
820 + && is_array(
821 + $disabled_metaboxes_post_[ $role ]
822 + )
823 + ) {
824 + // The previous way $metaboxes was being filled it could be at some point non empty and empty afterwards.
825 + // For instance, if a $role has items to be hidden and the user has this $role, $metaboxes will be filled.
826 + // But in next loop $metaboxes may receive '' as the next $role might not have items to hide and the user might has the next $role.
827 + $metaboxes[] = implode( ',', $disabled_metaboxes_post_[ $role ] );
828 + }
829 + }
830 + }
831 +
832 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize metabox post options -->' . "\n";
833 + // And below we implode $metaboxes because it's an array now.
834 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
835 + implode( ',', $metaboxes ) . ' {display:none !important;}</style>' . "\n";
836 +
837 + if ( ! empty( $metaboxes ) ) {
838 + echo $_mw_adminimize_admin_head;
839 + }
613 840 }
614 841
615 -
616 842 /**
617 - * set user options from database in edit-area
843 + * Set metabox options from database an area page.
618 844 */
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;
845 +function _mw_adminimize_set_metabox_page_option() {
846 +
847 + // exclude super admin
848 + if ( _mw_adminimize_exclude_super_admin() ) {
849 + return NULL;
646 850 }
647 851
648 - print($_mw_adminimize_sidecat_admin_head);
852 + // Leave the settings screen from Adminimize to see all areas on settings.
853 + if ( _mw_adminimize_exclude_settings_page() ) {
854 + return;
855 + }
856 +
857 + $user_roles = _mw_adminimize_get_all_user_roles();
858 + $_mw_adminimize_admin_head = '';
859 + $metaboxes = '';
860 +
861 + foreach ( $user_roles as $role ) {
862 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
863 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
864 + );
865 +
866 + if ( ! isset( $disabled_metaboxes_page_[ $role ][ '0' ] ) ) {
867 + $disabled_metaboxes_page_[ $role ][ '0' ] = '';
868 + }
869 +
870 + // New since version 1.7.8.
871 + $user = wp_get_current_user();
872 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, TRUE ) ) {
873 + if ( _mw_adminimize_current_user_has_role( $role )
874 + && isset( $disabled_metaboxes_page_[ $role ] )
875 + && is_array( $disabled_metaboxes_page_[ $role ] )
876 + ) {
877 + $metaboxes = implode( ',', $disabled_metaboxes_page_[ $role ] );
878 + }
879 + }
880 + }
881 +
882 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize metabox page options -->' . "\n";
883 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
884 + $metaboxes . ' {display:none !important;}</style>' . "\n";
885 +
886 + if ( ! empty( $metaboxes ) ) {
887 + echo $_mw_adminimize_admin_head;
888 + }
649 889 }
650 890
651 -
652 891 /**
653 - * set menu options from database
892 + * Set metabox options from database an area post.
654 893 */
655 -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');
894 +function _mw_adminimize_set_metabox_cp_option() {
679 895
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;
896 + // exclude super admin
897 + if ( _mw_adminimize_exclude_super_admin() ) {
898 + return NULL;
686 899 }
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";
900 +
901 + // Leave the settings screen from Adminimize to see all areas on settings.
902 + if ( _mw_adminimize_exclude_settings_page() ) {
903 + return;
904 + }
905 +
906 + $post_id = 0;
907 + if ( isset( $_GET[ 'post' ] ) ) {
908 + $post_id = (int) $_GET[ 'post' ];
909 + } elseif ( isset( $_POST[ 'post_ID' ] ) ) {
910 + $post_id = (int) $_POST[ 'post_ID' ];
911 + }
912 +
913 + $current_post_type = $GLOBALS[ 'post_type' ];
914 + if ( ! isset( $current_post_type ) ) {
915 + $current_post_type = get_post_type( $post_id );
916 + }
917 +
918 + if ( ! isset( $current_post_type ) || ! $current_post_type ) {
919 + $current_post_type = str_replace( 'post_type=', '', esc_attr( $_SERVER[ 'QUERY_STRING' ] ) );
920 + }
921 +
922 + // set hard to post
923 + if ( ! $current_post_type ) {
924 + $current_post_type = 'post';
925 + }
926 +
927 + $user_roles = _mw_adminimize_get_all_user_roles();
928 + $_mw_adminimize_admin_head = '';
929 + $metaboxes = array();
930 +
931 + foreach ( $user_roles as $role ) {
932 + $disabled_metaboxes_[ $current_post_type . '_' . $role ] = _mw_adminimize_get_option_value(
933 + 'mw_adminimize_disabled_metaboxes_' . $current_post_type . '_' . $role . '_items'
934 + );
935 +
936 + if ( ! isset( $disabled_metaboxes_[ $current_post_type . '_' . $role ]['0'] ) ) {
937 + $disabled_metaboxes_[ $current_post_type . '_' . $role ]['0'] = '';
938 +
939 + continue;
707 940 }
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";
941 +
942 + $user = $GLOBALS['current_user'];
943 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, true ) ) {
944 + if ( _mw_adminimize_current_user_has_role( $role )
945 + && isset( $disabled_metaboxes_[ $current_post_type . '_' . $role ] )
946 + && is_array( $disabled_metaboxes_[ $current_post_type . '_' . $role ] )
947 + ) {
948 + $metaboxes[] = implode( ',', $disabled_metaboxes_[ $current_post_type . '_' . $role ] );
949 + }
714 950 }
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";
951 + }
952 +
953 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize post options -->' . "\n";
954 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
955 + implode( ',', $metaboxes ) . ' {display:none !important;}</style>' . "\n";
956 +
957 + if ( ! empty( $metaboxes ) ) {
958 + echo $_mw_adminimize_admin_head;
959 + }
960 +}
961 +
962 +/**
963 + * Set link options in area links of back end.
964 + */
965 +function _mw_adminimize_set_link_option() {
966 +
967 + // exclude super admin
968 + if ( _mw_adminimize_exclude_super_admin() ) {
969 + return NULL;
970 + }
971 +
972 + // Leave the settings screen from Adminimize to see all areas on settings.
973 + if ( _mw_adminimize_exclude_settings_page() ) {
974 + return;
975 + }
976 +
977 + $user_roles = _mw_adminimize_get_all_user_roles();
978 + $_mw_adminimize_admin_head = '';
979 +
980 + foreach ( $user_roles as $role ) {
981 + $disabled_link_option_[ $role ] = _mw_adminimize_get_option_value(
982 + 'mw_adminimize_disabled_link_option_' . $role . '_items'
983 + );
984 + }
985 +
986 + foreach ( $user_roles as $role ) {
987 + if ( ! isset( $disabled_link_option_[ $role ][ '0' ] ) ) {
988 + $disabled_link_option_[ $role ][ '0' ] = '';
722 989 }
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";
990 + }
991 +
992 + $link_options = '';
993 + foreach ( $user_roles as $role ) {
994 + $user = wp_get_current_user();
995 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, TRUE ) ) {
996 + if ( _mw_adminimize_current_user_has_role( $role )
997 + && isset( $disabled_link_option_[ $role ] )
998 + && is_array( $disabled_link_option_[ $role ] )
999 + ) {
1000 + $link_options = implode( ',', $disabled_link_option_[ $role ] );
1001 + }
729 1002 }
730 - $_mw_adminimize_admin_head .= '</script>' . "\n";
731 - break;
732 1003 }
733 1004
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;
1005 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize links options -->' . "\n";
1006 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1007 + $link_options . ' {display:none !important;}</style>' . "\n";
1008 +
1009 + if ( ! empty( $link_options ) ) {
1010 + echo $_mw_adminimize_admin_head;
741 1011 }
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;
1012 +}
1013 +
1014 +/**
1015 + * Remove objects on wp nav menu.
1016 + */
1017 +function _mw_adminimize_set_nav_menu_option() {
1018 +
1019 + // exclude super admin
1020 + if ( _mw_adminimize_exclude_super_admin() ) {
1021 + return NULL;
749 1022 }
750 1023
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;
1024 + // Leave the settings screen from Adminimize to see all areas on settings.
1025 + if ( _mw_adminimize_exclude_settings_page() ) {
1026 + return;
759 1027 }
760 1028
761 - $_mw_adminimize_admin_head .= '<script type="text/javascript">
762 - /* <![CDATA[ */
763 - adminimizeL10n = {
764 - all: "' . __('All', 'adminimize') . '", none: "' . __('None', 'adminimize') . '"
1029 + $user_roles = _mw_adminimize_get_all_user_roles();
1030 + $_mw_adminimize_admin_head = '';
1031 +
1032 + foreach ( $user_roles as $role ) {
1033 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
1034 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
1035 + );
765 1036 }
766 - /* ]]> */
767 - </script>';
768 1037
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;
1038 + foreach ( $user_roles as $role ) {
1039 + if ( ! isset( $disabled_nav_menu_option_[ $role ][ '0' ] ) ) {
1040 + $disabled_nav_menu_option_[ $role ][ '0' ] = '';
793 1041 }
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 - }
1042 + }
1043 +
1044 + $nav_menu_options = '';
1045 + foreach ( $user_roles as $role ) {
1046 + $user = wp_get_current_user();
1047 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, TRUE ) ) {
1048 + if ( _mw_adminimize_current_user_has_role( $role )
1049 + && isset( $disabled_nav_menu_option_[ $role ] )
1050 + && is_array( $disabled_nav_menu_option_[ $role ] )
1051 + ) {
1052 + $nav_menu_options = implode( ',', $disabled_nav_menu_option_[ $role ] );
807 1053 }
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]);
814 - }
815 - }
816 1054 }
817 -
818 1055 }
819 -
820 - print($_mw_adminimize_admin_head);
1056 +
1057 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize WP Nav Menu options -->' . "\n";
1058 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1059 + $nav_menu_options . ' {display: none !important;}</style>' . "\n";
1060 +
1061 + if ( $nav_menu_options ) {
1062 + echo $_mw_adminimize_admin_head;
1063 + }
821 1064 }
822 1065
823 -
824 1066 /**
825 - * set metabox options from database
1067 + * Remove areas in Widget Settings
826 1068 */
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');
1069 +function _mw_adminimize_set_widget_option() {
835 1070
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
1071 + // exclude super admin
1072 + if ( _mw_adminimize_exclude_super_admin() ) {
1073 + return NULL;
1074 + }
1075 +
1076 + // Leave the settings screen from Adminimize to see all areas on settings.
1077 + if ( _mw_adminimize_exclude_settings_page() ) {
1078 + return;
1079 + }
1080 +
1081 + $user_roles = _mw_adminimize_get_all_user_roles();
1082 + $_mw_adminimize_admin_head = '';
1083 +
1084 + foreach ( $user_roles as $role ) {
1085 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
1086 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
1087 + );
1088 + }
1089 +
1090 + foreach ( $user_roles as $role ) {
1091 + if ( ! isset( $disabled_widget_option_[ $role ][ '0' ] ) ) {
1092 + $disabled_widget_option_[ $role ][ '0' ] = '';
862 1093 }
863 -
864 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
865 1094 }
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 1095
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
1096 + $widget_options = '';
1097 + foreach ( $user_roles as $role ) {
1098 + $user = wp_get_current_user();
1099 + if ( is_array( $user->roles ) && in_array( $role, $user->roles, TRUE ) ) {
1100 + if ( _mw_adminimize_current_user_has_role( $role )
1101 + && isset( $disabled_widget_option_[ $role ] )
1102 + && is_array( $disabled_widget_option_[ $role ] )
1103 + ) {
1104 + $widget_options = implode( ',', $disabled_widget_option_[ $role ] );
1105 + }
898 1106 }
899 -
900 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important}</style>' . "\n";
901 1107 }
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";
1108 +
1109 + $_mw_adminimize_admin_head .= '<!-- Set Adminimize Widget options -->' . "\n";
1110 + $_mw_adminimize_admin_head .= '<style type="text/css">' .
1111 + $widget_options . ' {display: none !important;}</style>' . "\n";
1112 +
1113 + if ( $widget_options ) {
1114 + echo $_mw_adminimize_admin_head;
906 1115 }
907 -
908 - print($_mw_adminimize_admin_head);
909 1116 }
910 1117
911 -
912 1118 /**
913 - * small user-info
914 - * @uses $post_ID
1119 + * Print small user-info.
915 1120 */
916 1121 function _mw_adminimize_small_user_info() {
917 -?>
1122 +
1123 + ?>
918 1124 <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>
1125 + <p>
1126 + <a href="<?php echo wp_nonce_url(
1127 + site_url( 'wp-login.php?action=logout' ),
1128 + 'log-out'
1129 + ) ?>"
1130 + title="<?php esc_attr_e( 'Log Out' ) ?>"><?php esc_attr_e( 'Log Out' ); ?></a>
1131 + </p>
920 1132 </div>
921 -<?php
1133 + <?php
922 1134 }
923 1135
1136 +// include helping functions
1137 +require_once 'inc-setup/DebugListener.php';
1138 +require_once 'inc-setup/helping_hands.php';
924 1139
925 -/**
926 - * include options-page in wp-admin
927 - */
928 -require_once('adminimize_page.php');
1140 +// Include message class.
1141 +require_once 'inc-setup/messages.php';
929 1142
1143 +// inc. settings page
1144 +require_once 'adminimize_page.php';
930 1145
931 -/**
932 - * credit in wp-footer
933 - */
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']);
942 - }
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']);
945 - }
946 -}
1146 +// dashboard options
1147 +require_once 'inc-setup/dashboard.php';
947 1148
1149 +// widget options
1150 +require_once 'inc-setup/widget.php';
1151 +require_once 'inc-setup/footer.php';
1152 +require_once 'inc-setup/admin-footer.php';
948 1153
1154 +// remove admin bar
1155 +require_once 'inc-setup/remove-admin-bar.php';
1156 +
1157 +// admin bar helper, setup
1158 +// work always in frontend
1159 +require_once 'inc-setup/admin-bar-items.php';
1160 +
1161 +// meta boxes helper, setup
1162 +// @TODO Meta Boxes: not ready for productive systems.
1163 +//require_once( 'inc-setup/meta-boxes.php' );
1164 +
1165 +// Remove Admin Notices.
1166 +require_once 'inc-setup/remove-admin-notices.php';
1167 +
1168 +// Add Ex-Import functions.
1169 +require_once 'inc-setup/export.php';
1170 +require_once 'inc-setup/import.php';
1171 +
949 1172 /**
950 1173 * Add action link(s) to plugins page
951 - * Thanks Dion Hulse -- http://dd32.id.au/wordpress-plugins/?configure-link
1174 + *
1175 + * @param array $links
1176 + * @param string $file
1177 + *
1178 + * @return array $links
952 1179 */
953 -function _mw_adminimize_filter_plugin_actions($links, $file){
954 - static $this_plugin;
1180 +function _mw_adminimize_filter_plugin_meta( $links, $file ) {
955 1181
956 - if( !$this_plugin ) $this_plugin = plugin_basename(__FILE__);
1182 + /* create link */
1183 + if ( FB_ADMINIMIZE_BASENAME === $file ) {
1184 + array_unshift(
1185 + $links,
1186 + sprintf(
1187 + '<a href="options-general.php?page=adminimize-options">%s</a>',
1188 + esc_attr__( 'Settings' )
1189 + )
1190 + );
1191 + }
957 1192
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
961 - }
962 1193 return $links;
963 1194 }
964 1195
965 -
966 1196 /**
967 - * Images/ Icons in base64-encoding
968 - * @use function _mw_adminimize_get_resource_url() for display
1197 + * Add settings in plugin-admin-page.
969 1198 */
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)) {
1199 +function _mw_adminimize_add_settings_page() {
980 1200
981 - $content = base64_decode($resources[ $_GET['resource'] ]);
1201 + $pagehook = add_options_page(
1202 + esc_attr__( 'Adminimize Options', 'adminimize' ),
1203 + esc_attr__( 'Adminimize', 'adminimize' ),
1204 + 'manage_options',
1205 + 'adminimize-options',
1206 + '_mw_adminimize_options'
1207 + );
982 1208
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;
997 - }
1209 + if ( ! is_network_admin() ) {
1210 + add_filter( 'plugin_action_links', '_mw_adminimize_filter_plugin_meta', 10, 2 );
998 1211 }
1212 + add_action( 'load-' . $pagehook, '_mw_adminimize_on_load_page' );
999 1213 }
1000 1214
1001 -
1002 1215 /**
1003 - * Display Images/ Icons in base64-encoding
1004 - * @return $resourceID
1216 + * Enqueue script and styles for the settings page.
1005 1217 */
1006 -function _mw_adminimize_get_resource_url($resourceID) {
1007 -
1008 - return trailingslashit( get_bloginfo('url') ) . '?resource=' . $resourceID;
1218 +function _mw_adminimize_on_load_page() {
1219 +
1220 + // Load translation files on options page.
1221 + _mw_adminimize_textdomain();
1222 +
1223 + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
1224 +
1225 + wp_enqueue_style( 'select2-style', plugins_url( 'css/select2' . $suffix . '.css', __FILE__ ), [], false );
1226 + wp_register_style( 'adminimize-style', plugins_url( 'css/style' . $suffix . '.css', __FILE__ ) );
1227 + wp_enqueue_style( 'adminimize-style' );
1228 +
1229 + wp_enqueue_script( 'select2-script', plugins_url( 'js/select2' . $suffix . '.js', __FILE__ ), array( 'jquery' ),'',false );
1230 + wp_register_script(
1231 + 'adminimize-settings-script',
1232 + plugins_url( 'js/adminimize' . $suffix . '.js', __FILE__ ),
1233 + array( 'jquery' ),
1234 + '',
1235 + TRUE
1236 + );
1237 + wp_enqueue_script( 'adminimize-settings-script' );
1009 1238 }
1010 1239
1011 -
1012 1240 /**
1013 - * settings in plugin-admin-page
1241 + * Get setting value for each options key.
1242 + *
1243 + * @param string|bool $key
1244 + *
1245 + * @return string
1014 1246 */
1015 -function _mw_adminimize_add_settings_page() {
1016 - global $wp_version;
1247 +function _mw_adminimize_get_option_value( $key = false ) {
1017 1248
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="" />';
1249 + $adminimizeoptions = false;
1250 + if ( ! _mw_adminimize_exclude_settings_page() ) {
1251 + $adminimizeoptions = wp_cache_get( 'mw_adminimize' );
1252 + }
1253 +
1254 + if ( false === $adminimizeoptions ) {
1255 + // check for use on multisite.
1256 + if ( _mw_adminimize_is_active_on_multisite() ) {
1257 + $adminimizeoptions = (array) get_site_option( 'mw_adminimize', array() );
1258 + } else {
1259 + $adminimizeoptions = (array) get_option( 'mw_adminimize', array() );
1023 1260 }
1024 - $menutitle .= ' ' . __('Adminimize', 'adminimize');
1261 + wp_cache_set( 'mw_adminimize', $adminimizeoptions );
1262 + }
1025 1263
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);
1264 + if ( ! $key ) {
1265 + return $adminimizeoptions;
1028 1266 }
1267 +
1268 + return array_key_exists( $key, $adminimizeoptions ) ? $adminimizeoptions[ $key ] : null;
1029 1269 }
1030 1270
1031 -
1032 1271 /**
1033 - * Set theme for users
1272 + * Update options.
1273 + *
1274 + * @param array $options
1275 + *
1276 + * @return bool
1034 1277 */
1035 -function _mw_adminimize_set_theme() {
1278 +function _mw_adminimize_update_option( $options ) {
1036 1279
1037 - if ( !current_user_can('edit_users') )
1038 - wp_die(__('Cheatin&#8217; uh?'));
1280 + if ( ! current_user_can( 'manage_options' ) ) {
1281 + return FALSE;
1282 + }
1039 1283
1040 - $user_ids = $_POST[mw_adminimize_theme_items];
1041 - $admin_color = htmlspecialchars( stripslashes( $_POST[_mw_adminimize_set_theme] ) );
1284 + if ( _mw_adminimize_is_roles_options_import( $options ) ){
1285 + $options = _mw_adminimize_roles_complete_options( $options );
1286 + }
1042 1287
1043 - if ( !$user_ids )
1044 - return false;
1288 + // Remove slashes always.
1289 + foreach ( $options as $key => $value ) {
1290 + $options[ $key ] = stripslashes_deep( $value );
1291 + }
1045 1292
1046 - foreach( $user_ids as $user_id) {
1047 - update_usermeta($user_id, 'admin_color', $admin_color);
1293 + // Kill the cache for the settings page.
1294 + wp_cache_delete( 'mw_adminimize' );
1295 + if ( _mw_adminimize_is_active_on_multisite() ) {
1296 + update_site_option( 'mw_adminimize', $options );
1297 + } else {
1298 + update_option( 'mw_adminimize', $options );
1048 1299 }
1049 -}
1300 + wp_cache_add( 'mw_adminimize', $options );
1050 1301
1051 -
1052 -/**
1053 - * read otpions
1054 - */
1055 -function _mw_adminimize_getOptionValue($key) {
1056 -
1057 - $adminimizeoptions = get_option('mw_adminimize');
1058 - return ($adminimizeoptions[$key]);
1302 + return TRUE;
1059 1303 }
1060 1304
1061 -
1062 1305 /**
1063 1306 * Update options in database
1064 1307 */
1065 1308 function _mw_adminimize_update() {
1066 - global $menu, $submenu, $adminimizeoptions;
1067 1309
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;
1310 + $user_roles = _mw_adminimize_get_all_user_roles();
1311 + $args = array( 'public' => TRUE, '_builtin' => FALSE );
1312 + $post_types = get_post_types( $args );
1313 +
1314 + // Admin Bar Back end settings
1315 + $adminimizeoptions[ 'mw_adminimize_admin_bar_nodes' ] = _mw_adminimize_get_option_value(
1316 + 'mw_adminimize_admin_bar_nodes'
1317 + );
1318 + // admin bar back end options
1319 + foreach ( $user_roles as $role ) {
1320 + // admin bar back end options
1321 + if ( isset( $_POST[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] ) ) {
1322 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = $_POST[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ];
1323 + } else {
1324 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = array();
1325 + }
1072 1326 }
1073 -
1074 - if (isset($_POST['_mw_adminimize_screen_options'])) {
1075 - $adminimizeoptions['_mw_adminimize_screen_options'] = strip_tags(stripslashes($_POST['_mw_adminimize_screen_options']));
1327 +
1328 + // Plugin Self Settings.
1329 + if ( isset( $_POST[ 'mw_adminimize_debug' ] ) ) {
1330 + $adminimizeoptions[ 'mw_adminimize_debug' ] = (int) $_POST[ 'mw_adminimize_debug' ];
1076 1331 } else {
1077 - $adminimizeoptions['_mw_adminimize_screen_options'] = 0;
1332 + $adminimizeoptions[ 'mw_adminimize_debug' ] = 0;
1078 1333 }
1079 1334
1080 - if (isset($_POST['_mw_adminimize_menu_order'])) {
1081 - $adminimizeoptions['_mw_adminimize_menu_order'] = strip_tags(stripslashes($_POST['_mw_adminimize_menu_order']));
1335 + if ( isset( $_POST[ 'mw_adminimize_multiple_roles' ] ) ) {
1336 + $adminimizeoptions[ 'mw_adminimize_multiple_roles' ] = (int) $_POST[ 'mw_adminimize_multiple_roles' ];
1082 1337 } else {
1083 - $adminimizeoptions['_mw_adminimize_menu_order'] = 0;
1338 + $adminimizeoptions[ 'mw_adminimize_multiple_roles' ] = 0;
1084 1339 }
1085 -
1086 - if (isset($_POST['_mw_adminimize_user_info'])) {
1087 - $adminimizeoptions['_mw_adminimize_user_info'] = strip_tags(stripslashes($_POST['_mw_adminimize_user_info']));
1340 +
1341 + if ( isset( $_POST[ 'mw_adminimize_support_bbpress' ] ) ) {
1342 + $adminimizeoptions[ 'mw_adminimize_support_bbpress' ] = (int) $_POST[ 'mw_adminimize_support_bbpress' ];
1088 1343 } else {
1089 - $adminimizeoptions['_mw_adminimize_user_info'] = 0;
1344 + $adminimizeoptions[ 'mw_adminimize_support_bbpress' ] = 0;
1090 1345 }
1091 -
1092 - if (isset($_POST['_mw_adminimize_dashmenu'])) {
1093 - $adminimizeoptions['_mw_adminimize_dashmenu'] = strip_tags(stripslashes($_POST['_mw_adminimize_dashmenu']));
1346 +
1347 + if ( isset( $_POST[ 'mw_adminimize_prevent_page_access' ] ) ) {
1348 + $adminimizeoptions[ 'mw_adminimize_prevent_page_access' ] = (int) $_POST[ 'mw_adminimize_prevent_page_access' ];
1094 1349 } else {
1095 - $adminimizeoptions['_mw_adminimize_dashmenu'] = 0;
1350 + $adminimizeoptions[ 'mw_adminimize_prevent_page_access' ] = 0;
1096 1351 }
1097 -
1098 - if (isset($_POST['_mw_adminimize_sidebar_wight'])) {
1099 - $adminimizeoptions['_mw_adminimize_sidebar_wight'] = strip_tags(stripslashes($_POST['_mw_adminimize_sidebar_wight']));
1100 - } else {
1101 - $adminimizeoptions['_mw_adminimize_sidebar_wight'] = 0;
1352 +
1353 + // Admin Bar Front end settings
1354 + $adminimizeoptions[ 'mw_adminimize_admin_bar_frontend_nodes' ] = _mw_adminimize_get_option_value(
1355 + 'mw_adminimize_admin_bar_frontend_nodes'
1356 + );
1357 + // admin bar front end options
1358 + foreach ( $user_roles as $role ) {
1359 + // admin bar front-end options
1360 + if ( isset( $_POST[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] ) ) {
1361 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] = $_POST[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ];
1362 + } else {
1363 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_frontend_' . $role . '_items' ] = array();
1364 + }
1102 1365 }
1103 -
1104 - if (isset($_POST['_mw_adminimize_footer'])) {
1105 - $adminimizeoptions['_mw_adminimize_footer'] = strip_tags(stripslashes($_POST['_mw_adminimize_footer']));
1366 +
1367 + if ( isset( $_POST[ '_mw_adminimize_user_info' ] ) ) {
1368 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = (int) $_POST[ '_mw_adminimize_user_info' ];
1106 1369 } else {
1107 - $adminimizeoptions['_mw_adminimize_footer'] = 0;
1370 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = 0;
1108 1371 }
1109 -
1110 - if (isset($_POST['_mw_adminimize_writescroll'])) {
1111 - $adminimizeoptions['_mw_adminimize_writescroll'] = strip_tags(stripslashes($_POST['_mw_adminimize_writescroll']));
1372 +
1373 + if ( isset( $_POST[ '_mw_adminimize_footer' ] ) ) {
1374 + $adminimizeoptions[ '_mw_adminimize_footer' ] = (int) $_POST[ '_mw_adminimize_footer' ];
1112 1375 } else {
1113 - $adminimizeoptions['_mw_adminimize_writescroll'] = 0;
1376 + $adminimizeoptions[ '_mw_adminimize_footer' ] = 0;
1114 1377 }
1115 -
1116 - if (isset($_POST['_mw_adminimize_tb_window'])) {
1117 - $adminimizeoptions['_mw_adminimize_tb_window'] = strip_tags(stripslashes($_POST['_mw_adminimize_tb_window']));
1378 +
1379 + if ( isset( $_POST[ '_mw_adminimize_header' ] ) ) {
1380 + $adminimizeoptions[ '_mw_adminimize_header' ] = (int) $_POST[ '_mw_adminimize_header' ];
1118 1381 } else {
1119 - $adminimizeoptions['_mw_adminimize_tb_window'] = 0;
1382 + $adminimizeoptions[ '_mw_adminimize_header' ] = 0;
1120 1383 }
1121 -
1122 - if (isset($_POST['_mw_adminimize_db_redirect'])) {
1123 - $adminimizeoptions['_mw_adminimize_db_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_db_redirect']));
1384 +
1385 + if ( isset( $_POST[ '_mw_adminimize_exclude_super_admin' ] ) ) {
1386 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = (int) $_POST[ '_mw_adminimize_exclude_super_admin' ];
1124 1387 } else {
1125 - $adminimizeoptions['_mw_adminimize_db_redirect'] = 0;
1388 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = 0;
1126 1389 }
1127 -
1128 - if (isset($_POST['_mw_adminimize_ui_redirect'])) {
1129 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_ui_redirect']));
1390 +
1391 + if ( isset( $_POST[ '_mw_adminimize_tb_window' ] ) ) {
1392 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = (int) $_POST[ '_mw_adminimize_tb_window' ];
1130 1393 } else {
1131 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = 0;
1394 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = 0;
1132 1395 }
1133 -
1134 - if (isset($_POST['_mw_adminimize_advice'])) {
1135 - $adminimizeoptions['_mw_adminimize_advice'] = strip_tags(stripslashes($_POST['_mw_adminimize_advice']));
1396 +
1397 + if ( isset( $_POST[ '_mw_adminimize_cat_full' ] ) ) {
1398 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = (int) $_POST[ '_mw_adminimize_cat_full' ];
1136 1399 } else {
1137 - $adminimizeoptions['_mw_adminimize_advice'] = 0;
1400 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = 0;
1138 1401 }
1139 -
1140 - if (isset($_POST['_mw_adminimize_advice_txt'])) {
1141 - $adminimizeoptions['_mw_adminimize_advice_txt'] = stripslashes($_POST['_mw_adminimize_advice_txt']);
1402 +
1403 + if ( isset( $_POST[ '_mw_adminimize_db_redirect' ] ) ) {
1404 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = (int) $_POST[ '_mw_adminimize_db_redirect' ];
1142 1405 } else {
1143 - $adminimizeoptions['_mw_adminimize_advice_txt'] = 0;
1406 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = 0;
1144 1407 }
1145 -
1146 - if (isset($_POST['_mw_adminimize_timestamp'])) {
1147 - $adminimizeoptions['_mw_adminimize_timestamp'] = strip_tags(stripslashes($_POST['_mw_adminimize_timestamp']));
1408 +
1409 + if ( isset( $_POST[ '_mw_adminimize_ui_redirect' ] ) ) {
1410 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = (int) $_POST[ '_mw_adminimize_ui_redirect' ];
1148 1411 } else {
1149 - $adminimizeoptions['_mw_adminimize_timestamp'] = 0;
1412 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = 0;
1150 1413 }
1151 -
1152 - if (isset($_POST['_mw_adminimize_db_redirect_txt'])) {
1153 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = stripslashes($_POST['_mw_adminimize_db_redirect_txt']);
1414 +
1415 + if ( isset( $_POST[ '_mw_adminimize_advice' ] ) ) {
1416 + $adminimizeoptions[ '_mw_adminimize_advice' ] = (int) $_POST[ '_mw_adminimize_advice' ];
1154 1417 } else {
1155 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = 0;
1418 + $adminimizeoptions[ '_mw_adminimize_advice' ] = 0;
1156 1419 }
1157 -
1158 - // 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'];
1420 +
1421 + if ( isset( $_POST[ '_mw_adminimize_advice_txt' ] ) ) {
1422 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = wp_kses(
1423 + $_POST[ '_mw_adminimize_advice_txt' ],
1424 + array(
1425 + 'a' => array(
1426 + 'href' => array(),
1427 + 'title' => array()
1428 + ),
1429 + 'br' => array(),
1430 + 'em' => array(),
1431 + 'strong' => array(),
1432 + )
1433 + );
1161 1434 } else {
1162 - $adminimizeoptions['mw_adminimize_disabled_menu_subscriber_items'] = array();
1435 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = '';
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'];
1437 +
1438 + if ( isset( $_POST[ '_mw_adminimize_timestamp' ] ) ) {
1439 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = (int) $_POST[ '_mw_adminimize_timestamp' ];
1167 1440 } else {
1168 - $adminimizeoptions['mw_adminimize_disabled_submenu_subscriber_items'] = array();
1441 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = 0;
1169 1442 }
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'];
1443 +
1444 + if ( isset( $_POST[ '_mw_adminimize_db_redirect_txt' ] ) ) {
1445 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = esc_url( $_POST[ '_mw_adminimize_db_redirect_txt' ] );
1173 1446 } else {
1174 - $adminimizeoptions['mw_adminimize_disabled_top_menu_subscriber_items'] = array();
1447 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = '';
1175 1448 }
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'];
1179 - } else {
1180 - $adminimizeoptions['mw_adminimize_disabled_menu_contributor_items'] = array();
1449 +
1450 + // menu update
1451 + foreach ( $user_roles as $role ) {
1452 + if ( isset( $_POST[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] ) ) {
1453 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] =
1454 + $_POST[ 'mw_adminimize_disabled_menu_' . $role . '_items' ];
1455 + } else {
1456 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] = array();
1457 + }
1458 +
1459 + if ( isset( $_POST[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] ) ) {
1460 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] =
1461 + $_POST[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ];
1462 + } else {
1463 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] = array();
1464 + }
1181 1465 }
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'];
1466 +
1467 + // @ToDo After release of WP 4.7, switch to sanitize_textarea_field()
1468 +
1469 + // own menu slug
1470 + if ( isset( $_POST[ '_mw_adminimize_own_menu_slug' ] ) ) {
1471 + $adminimizeoptions[ '_mw_adminimize_own_menu_slug' ] = stripslashes(
1472 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_menu_slug' ] )
1473 + );
1185 1474 } else {
1186 - $adminimizeoptions['mw_adminimize_disabled_submenu_contributor_items'] = array();
1475 + $adminimizeoptions[ '_mw_adminimize_own_menu_slug' ] = '';
1187 1476 }
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'];
1477 + // own custom menu slug
1478 + if ( isset( $_POST[ '_mw_adminimize_own_menu_custom_slug' ] ) ) {
1479 + $adminimizeoptions[ '_mw_adminimize_own_menu_custom_slug' ] = stripslashes(
1480 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_menu_custom_slug' ] )
1481 + );
1191 1482 } else {
1192 - $adminimizeoptions['mw_adminimize_disabled_top_menu_contributor_items'] = array();
1483 + $adminimizeoptions[ '_mw_adminimize_own_menu_custom_slug' ] = '';
1193 1484 }
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'];
1197 - } else {
1198 - $adminimizeoptions['mw_adminimize_disabled_menu_author_items'] = array();
1485 +
1486 + // global_options, metaboxes update
1487 + foreach ( $user_roles as $role ) {
1488 +
1489 + // global options
1490 + if ( isset( $_POST[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] ) ) {
1491 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] =
1492 + $_POST[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ];
1493 + } else {
1494 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] = array();
1495 + }
1496 +
1497 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] ) ) {
1498 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] =
1499 + $_POST[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ];
1500 + } else {
1501 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] = array();
1502 + }
1503 +
1504 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] ) ) {
1505 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] =
1506 + $_POST[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ];
1507 + } else {
1508 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] = array();
1509 + }
1510 +
1511 + foreach ( $post_types as $post_type ) {
1512 + if ( isset( $_POST[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] ) ) {
1513 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] =
1514 + $_POST[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ];
1515 + } else {
1516 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] = array();
1517 + }
1518 + }
1519 +
1520 + if ( isset( $_POST[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] ) ) {
1521 + $adminimizeoptions[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] =
1522 + $_POST[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ];
1523 + } else {
1524 + $adminimizeoptions[ 'mw_adminimize_disabled_link_option_' . $role . '_items' ] = array();
1525 + }
1526 +
1527 + // wp nav menu options
1528 + if ( isset( $_POST[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] ) ) {
1529 + $adminimizeoptions[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] =
1530 + $_POST[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ];
1531 + } else {
1532 + $adminimizeoptions[ 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items' ] = array();
1533 + }
1534 +
1535 + // widget options
1536 + if ( isset( $_POST[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] ) ) {
1537 + $adminimizeoptions[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] =
1538 + $_POST[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ];
1539 + } else {
1540 + $adminimizeoptions[ 'mw_adminimize_disabled_widget_option_' . $role . '_items' ] = array();
1541 + }
1542 +
1543 + // wp dashboard option
1544 + if ( isset( $_POST[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] ) ) {
1545 + $adminimizeoptions[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] =
1546 + $_POST[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ];
1547 + } else {
1548 + $adminimizeoptions[ 'mw_adminimize_disabled_dashboard_option_' . $role . '_items' ] = array();
1549 + }
1199 1550 }
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'];
1551 +
1552 + // own options
1553 + if ( isset( $_POST[ '_mw_adminimize_own_values' ] ) ) {
1554 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = stripslashes(
1555 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_values' ] )
1556 + );
1203 1557 } else {
1204 - $adminimizeoptions['mw_adminimize_disabled_submenu_author_items'] = array();
1558 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = '';
1205 1559 }
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'];
1560 +
1561 + if ( isset( $_POST[ '_mw_adminimize_own_options' ] ) ) {
1562 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = stripslashes(
1563 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_options' ] )
1564 + );
1209 1565 } else {
1210 - $adminimizeoptions['mw_adminimize_disabled_top_menu_author_items'] = array();
1566 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = '';
1211 1567 }
1212 1568
1213 - if (isset($_POST['mw_adminimize_disabled_menu_items'])) {
1214 - $adminimizeoptions['mw_adminimize_disabled_menu_items'] = $_POST['mw_adminimize_disabled_menu_items'];
1569 + // own post options
1570 + if ( isset( $_POST[ '_mw_adminimize_own_post_values' ] ) ) {
1571 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = stripslashes(
1572 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_post_values' ] )
1573 + );
1215 1574 } else {
1216 - $adminimizeoptions['mw_adminimize_disabled_menu_items'] = array();
1575 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = '';
1217 1576 }
1218 -
1219 - if (isset($_POST['mw_adminimize_disabled_submenu_items'])) {
1220 - $adminimizeoptions['mw_adminimize_disabled_submenu_items'] = $_POST['mw_adminimize_disabled_submenu_items'];
1577 +
1578 + if ( isset( $_POST[ '_mw_adminimize_own_post_options' ] ) ) {
1579 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = stripslashes(
1580 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_post_options' ] )
1581 + );
1221 1582 } else {
1222 - $adminimizeoptions['mw_adminimize_disabled_submenu_items'] = array();
1583 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = '';
1223 1584 }
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'];
1585 +
1586 + // own page options
1587 + if ( isset( $_POST[ '_mw_adminimize_own_page_values' ] ) ) {
1588 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = stripslashes(
1589 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_page_values' ] )
1590 + );
1227 1591 } else {
1228 - $adminimizeoptions['mw_adminimize_disabled_top_menu_items'] = array();
1592 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = '';
1229 1593 }
1230 1594
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'];
1595 + if ( isset( $_POST[ '_mw_adminimize_own_page_options' ] ) ) {
1596 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = stripslashes(
1597 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_page_options' ] )
1598 + );
1233 1599 } else {
1234 - $adminimizeoptions['mw_adminimize_disabled_menu_adm_items'] = array();
1600 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = '';
1235 1601 }
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'];
1239 - } else {
1240 - $adminimizeoptions['mw_adminimize_disabled_submenu_adm_items'] = array();
1602 +
1603 + // own custom post options
1604 + foreach ( $post_types as $post_type ) {
1605 + if ( isset( $_POST[ '_mw_adminimize_own_values_' . $post_type ] ) ) {
1606 + $adminimizeoptions[ '_mw_adminimize_own_values_' . $post_type ] = stripslashes(
1607 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_values_' . $post_type ] )
1608 + );
1609 + } else {
1610 + $adminimizeoptions[ '_mw_adminimize_own_values_' . $post_type ] = '';
1611 + }
1612 +
1613 + if ( isset( $_POST[ '_mw_adminimize_own_options_' . $post_type ] ) ) {
1614 + $adminimizeoptions[ '_mw_adminimize_own_options_' . $post_type ] = stripslashes(
1615 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_options_' . $post_type ] )
1616 + );
1617 + } else {
1618 + $adminimizeoptions[ '_mw_adminimize_own_options_' . $post_type ] = '';
1619 + }
1241 1620 }
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'];
1621 +
1622 + // own link options
1623 + if ( isset( $_POST[ '_mw_adminimize_own_link_values' ] ) ) {
1624 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = stripslashes(
1625 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_link_values' ] )
1626 + );
1245 1627 } else {
1246 - $adminimizeoptions['mw_adminimize_disabled_top_menu_adm_items'] = array();
1628 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = '';
1247 1629 }
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'];
1630 +
1631 + if ( isset( $_POST[ '_mw_adminimize_own_link_options' ] ) ) {
1632 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = stripslashes(
1633 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_link_options' ] )
1634 + );
1252 1635 } else {
1253 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_adm_items'] = array();
1636 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = '';
1254 1637 }
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'];
1638 +
1639 + // wp nav menu options
1640 + if ( isset( $_POST[ '_mw_adminimize_own_nav_menu_values' ] ) ) {
1641 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = stripslashes(
1642 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_nav_menu_values' ] )
1643 + );
1258 1644 } else {
1259 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_adm_items'] = array();
1645 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = '';
1260 1646 }
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'];
1647 +
1648 + if ( isset( $_POST[ '_mw_adminimize_own_nav_menu_options' ] ) ) {
1649 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = stripslashes(
1650 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_nav_menu_options' ] )
1651 + );
1264 1652 } else {
1265 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_items'] = array();
1653 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = '';
1266 1654 }
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'];
1655 +
1656 + // widget options
1657 + if ( isset( $_POST[ '_mw_adminimize_own_widget_values' ] ) ) {
1658 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = stripslashes(
1659 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_widget_values' ] )
1660 + );
1270 1661 } else {
1271 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_items'] = array();
1662 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = '';
1272 1663 }
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'];
1664 +
1665 + if ( isset( $_POST[ '_mw_adminimize_own_widget_options' ] ) ) {
1666 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = stripslashes(
1667 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_widget_options' ] )
1668 + );
1276 1669 } else {
1277 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_author_items'] = array();
1670 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = '';
1278 1671 }
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'];
1672 +
1673 + // own dashboard options
1674 + if ( isset( $_POST[ '_mw_adminimize_own_dashboard_values' ] ) ) {
1675 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = stripslashes(
1676 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_dashboard_values' ] )
1677 + );
1282 1678 } else {
1283 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_author_items'] = array();
1679 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = '';
1284 1680 }
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'];
1681 +
1682 + if ( isset( $_POST[ '_mw_adminimize_own_dashboard_options' ] ) ) {
1683 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = stripslashes(
1684 + wp_strip_all_tags( $_POST[ '_mw_adminimize_own_dashboard_options' ] )
1685 + );
1288 1686 } else {
1289 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_contributor_items'] = array();
1687 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = '';
1290 1688 }
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();
1689 +
1690 + $adminimizeoptions[ 'mw_adminimize_dashboard_widgets' ] = _mw_adminimize_get_option_value(
1691 + 'mw_adminimize_dashboard_widgets'
1692 + );
1693 +
1694 + if ( isset( $GLOBALS[ 'menu' ] ) ) {
1695 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $GLOBALS[ 'menu' ];
1296 1696 }
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();
1697 + if ( isset( $GLOBALS[ 'submenu' ] ) ) {
1698 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $GLOBALS[ 'submenu' ];
1302 1699 }
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'];
1700 +
1701 + /**
1702 + * Filter the adminimize options.
1703 + *
1704 + * Make the options filterable, so we can modify what is saved before it's sent to the db
1705 + *
1706 + * @since 1.11.6
1707 + *
1708 + * @param array $adminimizeoptions the original options.
1709 + * @param array $user_roles Array of the user roles.
1710 + * @param array $_POST Post data.
1711 + */
1712 + $adminimizeoptions = apply_filters( 'mw_adminimize_options_before_update', $adminimizeoptions, $user_roles, $_POST );
1713 +
1714 + // update
1715 + $update_status = _mw_adminimize_update_option( $adminimizeoptions );
1716 +
1717 + $myErrors = new _mw_adminimize_message_class();
1718 + if ( $update_status ) {
1719 + $message = $myErrors->get_error(
1720 + '_mw_adminimize_update'
1721 + );
1306 1722 } else {
1307 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_subscriber_items'] = array();
1723 + $message = $myErrors->get_error(
1724 + '_mw_adminimize_access_denied'
1725 + );
1308 1726 }
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 -
1320 - $myErrors = new _mw_adminimize_message_class();
1321 - $myErrors = '<div id="message" class="updated fade"><p>' . $myErrors->get_error('_mw_adminimize_update') . '</p></div>';
1322 - echo $myErrors;
1727 + echo '<div id="message" class="notice notice-success"><p>' . $message . '</p></div>';
1728 +
1729 + return TRUE;
1323 1730 }
1324 1731
1325 -
1326 1732 /**
1327 1733 * Delete options in database
1328 1734 */
1329 -function _mw_adminimize_deinstall() {
1735 +function _mw_adminimize_uninstall() {
1330 1736
1331 - delete_option('mw_adminimize');
1737 + wp_cache_delete( 'mw_adminimize' );
1738 + delete_site_option( 'mw_adminimize' );
1739 + delete_option( 'mw_adminimize' );
1332 1740 }
1333 1741
1334 -
1335 1742 /**
1336 1743 * Install options in database
1337 1744 */
1338 1745 function _mw_adminimize_install() {
1339 - global $menu, $submenu, $top_menu;
1340 1746
1747 + if ( ! is_admin() ) {
1748 + return;
1749 + }
1750 +
1751 + // If is AJAX Call.
1752 + if ( defined('DOING_AJAX') && DOING_AJAX ) {
1753 + return;
1754 + }
1755 +
1756 + global $menu, $submenu;
1757 +
1758 + $user_roles = _mw_adminimize_get_all_user_roles();
1341 1759 $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);
1760 +
1761 + foreach ( $user_roles as $role ) {
1762 + $adminimizeoptions[ 'mw_adminimize_disabled_menu_' . $role . '_items' ] = array();
1763 + $adminimizeoptions[ 'mw_adminimize_disabled_submenu_' . $role . '_items' ] = array();
1764 + $adminimizeoptions[ 'mw_adminimize_disabled_admin_bar_' . $role . '_items' ] = array();
1765 + $adminimizeoptions[ 'mw_adminimize_disabled_global_option_' . $role . '_items' ] = array();
1766 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items' ] = array();
1767 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items' ] = array();
1768 + $args = array(
1769 + 'public' => TRUE,
1770 + '_builtin' => FALSE,
1771 + );
1772 + foreach ( get_post_types( $args ) as $post_type ) {
1773 + $adminimizeoptions[ 'mw_adminimize_disabled_metaboxes_' . $post_type . '_' . $role . '_items' ] = array();
1774 + }
1775 + }
1776 +
1777 + $adminimizeoptions[ 'mw_adminimize_default_menu' ] = $menu;
1778 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $submenu;
1779 +
1780 + if ( _mw_adminimize_is_active_on_multisite() ) {
1781 + add_site_option( 'mw_adminimize', $adminimizeoptions );
1782 + } else {
1783 + add_option( 'mw_adminimize', $adminimizeoptions );
1784 + }
1785 + wp_cache_add( 'mw_adminimize', $adminimizeoptions );
1376 1786 }
1377 -?>
1787 +
1788 +/**
1789 + * Make sure adminimize option is complete when a role json file is imported
1790 + *
1791 + * @param array $roles_options
1792 + *
1793 + * @return array
1794 + */
1795 +function _mw_adminimize_roles_complete_options( $roles_options ){
1796 +
1797 + $adminimizeoption = _mw_adminimize_get_option_value();
1798 +
1799 + foreach ( $roles_options as $role_option_name => $role_option_value ){
1800 + $adminimizeoption[$role_option_name] = $role_option_value;
1801 + }
1802 +
1803 + return $adminimizeoption;
1804 +}
1805 +
1806 +/**
1807 + * Check if options comes from roles adminimize settings export
1808 + *
1809 + * @param array $options
1810 + *
1811 + * @return bool
1812 + */
1813 +function _mw_adminimize_is_roles_options_import( $options ){
1814 + global $wp_roles;
1815 +
1816 + $roles_options = [];
1817 + foreach ( $wp_roles->role_names as $role_slug => $role_name ){
1818 +
1819 + $role_options = array_filter(
1820 + $options, function ( $option_key ) use ( $role_slug ) {
1821 + return stripos( $option_key, '_' . $role_slug ) !== false;
1822 + }, ARRAY_FILTER_USE_KEY
1823 + );
1824 +
1825 + if ( empty( $roles_options ) ){
1826 + $roles_options = $role_options;
1827 + } else {
1828 + $roles_options = array_merge( $roles_options, $role_options );
1829 + }
1830 + }
1831 +
1832 + if ( count( $options ) === count( $roles_options ) ){
1833 + return true;
1834 + }
1835 +}