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 +1835 -1543 1.7.141.11.9 View file →
@@ -1,1543 +1,1835 @@
1 -<?php
2 -/**
3 - * @package Adminimize
4 - * @author Frank B&uuml;ltge
5 - */
6 -
7 -/*
8 -Plugin Name: Adminimize
9 -Plugin URI: http://bueltge.de/wordpress-admin-theme-adminimize/674/
10 -Text Domain: adminimize
11 -Domain Path: /languages
12 -Description: Visually compresses the administratrive 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 alle 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.
13 -Author: Frank B&uuml;ltge
14 -Author URI: http://bueltge.de/
15 -Version: 1.7.14
16 -License: GPL
17 -*/
18 -
19 -/**
20 - * The stylesheet and the initial idea is from Eric A. Meyer, http://meyerweb.com/
21 - * and i have written a plugin with many options on the basis
22 - * of differently user-right and a user-friendly range in admin-area.
23 - */
24 -
25 -
26 -global $wp_version;
27 -if ( !function_exists ('add_action') || version_compare($wp_version, "2.5alpha", "<") ) {
28 - if ( function_exists ('add_action') )
29 - $exit_msg = 'The plugin <em><a href="http://bueltge.de/wordpress-admin-theme-adminimize/674/">Adminimize</a></em> requires WordPress 2.5 or newer. <a href="http://codex.wordpress.org/Upgrading_WordPress">Please update WordPress</a> or delete the plugin.';
30 - else
31 - $exit_msg = '';
32 -
33 - header('Status: 403 Forbidden');
34 - header('HTTP/1.1 403 Forbidden');
35 - exit($exit_msg);
36 -}
37 -
38 -if ( function_exists('add_action') ) {
39 -
40 - // Pre-2.6 compatibility
41 - if ( !defined( 'WP_CONTENT_URL' ) )
42 - define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' );
43 - if ( !defined( 'WP_CONTENT_DIR' ) )
44 - define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
45 - if ( !defined( 'WP_PLUGIN_URL' ) )
46 - define( 'WP_PLUGIN_URL', WP_CONTENT_URL. '/plugins' );
47 - if ( !defined( 'WP_PLUGIN_DIR' ) )
48 - define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
49 -
50 - // plugin definitions
51 - define( 'FB_ADMINIMIZE_BASENAME', plugin_basename( __FILE__ ) );
52 - define( 'FB_ADMINIMIZE_BASEFOLDER', plugin_basename( dirname( __FILE__ ) ) );
53 - define( 'FB_ADMINIMIZE_TEXTDOMAIN', 'adminimize' );
54 -}
55 -
56 -function _mw_adminimize_textdomain() {
57 -
58 - load_plugin_textdomain( FB_ADMINIMIZE_TEXTDOMAIN, FALSE, dirname( FB_ADMINIMIZE_BASENAME ) . '/languages');
59 -}
60 -
61 -
62 -function _mw_adminimize_register_styles() {
63 -
64 - wp_register_style( 'adminimize-style', plugins_url( 'css/style.css', __FILE__ ) );
65 -}
66 -
67 -
68 -function recursive_in_array($needle, $haystack) {
69 -
70 - if ( '' != $haystack ) {
71 - foreach ($haystack as $stalk) {
72 - if ( $needle == $stalk || ( is_array($stalk) && recursive_in_array($needle, $stalk) ) ) {
73 - return TRUE;
74 - }
75 - }
76 - return FALSE;
77 - }
78 -}
79 -
80 -
81 -/**
82 - * some basics for message
83 - */
84 -class _mw_adminimize_message_class {
85 -
86 - /**
87 - * constructor
88 - */
89 - function _mw_adminimize_message_class() {
90 - $this->localizionName = FB_ADMINIMIZE_TEXTDOMAIN;
91 - $this->errors = new WP_Error();
92 - $this->initialize_errors();
93 - }
94 -
95 - /**
96 - * get_error - Returns an error message based on the passed code
97 - * Parameters - $code (the error code as a string)
98 - * @return Returns an error message
99 - */
100 - function get_error($code = '') {
101 - $errorMessage = $this->errors->get_error_message($code);
102 - if ($errorMessage == NULL) {
103 - return __("Unknown error.", $this->localizionName);
104 - }
105 - return $errorMessage;
106 - }
107 -
108 - /**
109 - * Initializes all the error messages
110 - */
111 - function initialize_errors() {
112 - $this->errors->add('_mw_adminimize_update', __('The updates were saved.', $this->localizionName));
113 - $this->errors->add('_mw_adminimize_access_denied', __('You have not enough rights to edit entries in the database.', $this->localizionName));
114 - $this->errors->add('_mw_adminimize_import', __('All entries in the database were imported.', $this->localizionName));
115 - $this->errors->add('_mw_adminimize_deinstall', __('All entries in the database were deleted.', $this->localizionName));
116 - $this->errors->add('_mw_adminimize_deinstall_yes', __('Set the checkbox on deinstall-button.', $this->localizionName));
117 - $this->errors->add('_mw_adminimize_get_option', __('Can\'t load menu and submenu.', $this->localizionName));
118 - $this->errors->add('_mw_adminimize_set_theme', __('Backend-Theme was activated!', $this->localizionName));
119 - $this->errors->add('_mw_adminimize_load_theme', __('Load user data to themes was successful.', $this->localizionName));
120 - }
121 -}
122 -
123 -
124 -/**
125 - * get_all_user_roles() - Returns an array with all user roles(names) in it.
126 - * Inclusive self defined roles (for example with the 'Role Manager' plugin).
127 - * code by Vincent Weber, www.webRtistik.nl
128 - * @uses $wp_roles
129 - * @return $user_roles
130 - */
131 -function get_all_user_roles() {
132 - global $wp_roles;
133 -
134 - $user_roles = array();
135 -
136 - if ( isset($wp_roles->roles) && is_array($wp_roles->roles) ) {
137 - foreach ($wp_roles->roles as $role => $data) {
138 - array_push($user_roles, $role);
139 - //$data contains caps, maybe for later use..
140 - }
141 - }
142 -
143 - return $user_roles;
144 -}
145 -
146 -
147 -/**
148 - * get_all_user_roles_names() - Returns an array with all user roles_names in it.
149 - * Inclusive self defined roles (for example with the 'Role Manager' plugin).
150 - * @uses $wp_roles
151 - * @return $user_roles_names
152 - */
153 -function get_all_user_roles_names() {
154 - global $wp_roles;
155 -
156 - $user_roles_names = array();
157 -
158 - foreach ($wp_roles->role_names as $role_name => $data) {
159 - if ( function_exists('translate_user_role') )
160 - $data = translate_user_role( $data );
161 - else
162 - $data = translate_with_context( $data );
163 -
164 - array_push($user_roles_names, $data );
165 - }
166 -
167 - return $user_roles_names;
168 -}
169 -
170 -/**
171 - * Control Flash Uploader
172 - *
173 - * @return boolean
174 - */
175 -function _mw_adminimize_control_flashloader() {
176 -
177 - $_mw_adminimize_control_flashloader = _mw_adminimize_getOptionValue('_mw_adminimize_control_flashloader');
178 -
179 - if ($_mw_adminimize_control_flashloader == '1') {
180 - return FALSE;
181 - } else {
182 - return TRUE;
183 - }
184 -}
185 -
186 -
187 -/**
188 - * check user-option and add new style
189 - * @uses $pagenow
190 - */
191 -function _mw_adminimize_init() {
192 - global $pagenow, $menu, $submenu, $adminimizeoptions, $wp_version;
193 -
194 - // exclude super admin
195 - if ( defined('WP_DEBUG') && !WP_DEBUG ) {
196 - if ( is_super_admin() )
197 - return NULL;
198 - }
199 -
200 - if ( function_exists('get_post_type_object') ) {
201 - if ( isset($_GET['post']) )
202 - $post_id = (int) $_GET['post'];
203 - elseif ( isset($_POST['post_ID']) )
204 - $post_id = (int) $_POST['post_ID'];
205 - else
206 - $post_id = 0;
207 - $post_ID = $post_id;
208 - $post = NULL;
209 - $post_type_object = NULL;
210 - $post_type = NULL;
211 - if ( $post_id ) {
212 - $post = get_post($post_id);
213 - if ( $post ) {
214 - $post_type_object = get_post_type_object($post->post_type);
215 - if ( $post_type_object ) {
216 - $post_type = $post->post_type;
217 - $current_screen->post_type = $post->post_type;
218 - $current_screen->id = $current_screen->post_type;
219 - }
220 - }
221 - } elseif ( isset($_POST['post_type']) ) {
222 - $post_type_object = get_post_type_object($_POST['post_type']);
223 - if ( $post_type_object ) {
224 - $post_type = $post_type_object->name;
225 - $current_screen->post_type = $post_type;
226 - $current_screen->id = $current_screen->post_type;
227 - }
228 - }
229 - } else {
230 - $post_type = '';
231 - }
232 -
233 - $user_roles = get_all_user_roles();
234 -
235 - $adminimizeoptions = get_option('mw_adminimize');
236 -
237 - foreach ($user_roles as $role) {
238 - $disabled_global_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_global_option_'. $role .'_items');
239 - $disabled_metaboxes_post_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_'. $role .'_items');
240 - $disabled_metaboxes_page_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_'. $role .'_items');
241 - $disabled_link_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_link_option_'. $role .'_items');
242 - $disabled_nav_menu_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_nav_menu_option_'. $role .'_items');
243 - }
244 -
245 - $disabled_metaboxes_post_all = array();
246 - $disabled_metaboxes_page_all = array();
247 -
248 - foreach ($user_roles as $role) {
249 - array_push($disabled_metaboxes_post_all, $disabled_metaboxes_post_[$role]);
250 - array_push($disabled_metaboxes_page_all, $disabled_metaboxes_page_[$role]);
251 - }
252 -
253 - $_mw_admin_color = get_user_option('admin_color');
254 -
255 - //global options
256 - $_mw_adminimize_footer = _mw_adminimize_getOptionValue('_mw_adminimize_footer');
257 - switch ($_mw_adminimize_footer) {
258 - case 1:
259 - wp_enqueue_script( '_mw_adminimize_remove_footer', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/remove_footer.js', array('jquery') );
260 - break;
261 - }
262 -
263 - $_mw_adminimize_header = _mw_adminimize_getOptionValue('_mw_adminimize_header');
264 - switch ($_mw_adminimize_header) {
265 - case 1:
266 - wp_enqueue_script( '_mw_adminimize_remove_header', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/remove_header.js', array('jquery') );
267 - break;
268 - }
269 -
270 - //post-page options
271 - $post_page_pages = array('post-new.php', 'post.php', 'page-new.php', 'page.php');
272 - if ( in_array( $pagenow, $post_page_pages ) ) {
273 -
274 - $_mw_adminimize_writescroll = _mw_adminimize_getOptionValue('_mw_adminimize_writescroll');
275 - switch ($_mw_adminimize_writescroll) {
276 - case 1:
277 - wp_enqueue_script( '_mw_adminimize_writescroll', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/writescroll.js', array('jquery') );
278 - break;
279 - }
280 - $_mw_adminimize_tb_window = _mw_adminimize_getOptionValue('_mw_adminimize_tb_window');
281 - switch ($_mw_adminimize_tb_window) {
282 - case 1:
283 - wp_deregister_script('media-upload');
284 - wp_enqueue_script('media-upload', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/tb_window.js', array('thickbox'));
285 - break;
286 - }
287 - $_mw_adminimize_timestamp = _mw_adminimize_getOptionValue('_mw_adminimize_timestamp');
288 - switch ($_mw_adminimize_timestamp) {
289 - case 1:
290 - wp_enqueue_script( '_mw_adminimize_timestamp', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/js/timestamp.js', array('jquery') );
291 - break;
292 - }
293 -
294 - //category options
295 - $_mw_adminimize_cat_full = _mw_adminimize_getOptionValue('_mw_adminimize_cat_full');
296 - switch ($_mw_adminimize_cat_full) {
297 - case 1:
298 - wp_enqueue_style( 'adminimize-ful-category', WP_PLUGIN_URL . '/' . FB_ADMINIMIZE_BASEFOLDER . '/css/mw_cat_full.css' );
299 - break;
300 - }
301 -
302 - // set default editor tinymce
303 - if ( recursive_in_array('#editor-toolbar #edButtonHTML, #quicktags', $disabled_metaboxes_page_all)
304 - || recursive_in_array('#editor-toolbar #edButtonHTML, #quicktags', $disabled_metaboxes_post_all) )
305 - add_filter( 'wp_default_editor', create_function('', 'return "tinymce";') );
306 -
307 - // remove media bottons
308 - if ( recursive_in_array('media_buttons', $disabled_metaboxes_page_all)
309 - || recursive_in_array('media_buttons', $disabled_metaboxes_post_all) )
310 - remove_action('media_buttons', 'media_buttons');
311 -
312 - //add_filter('image_downsize', '_mw_adminimize_image_downsize', 1, 3);
313 - }
314 -
315 - $_mw_adminimize_control_flashloader = _mw_adminimize_getOptionValue('_mw_adminimize_control_flashloader');
316 - switch ($_mw_adminimize_control_flashloader) {
317 - case 1:
318 - add_filter( 'flash_uploader', '_mw_adminimize_control_flashloader', 1 );
319 - break;
320 - }
321 -
322 - if ( ($_mw_admin_color == 'mw_fresh') ||
323 - ($_mw_admin_color == 'mw_classic') ||
324 - ($_mw_admin_color == 'mw_colorblind') ||
325 - ($_mw_admin_color == 'mw_grey') ||
326 - ($_mw_admin_color == 'mw_fresh_ozh_am') ||
327 - ($_mw_admin_color == 'mw_classic_ozh_am') ||
328 - ($_mw_admin_color == 'mw_fresh_lm') ||
329 - ($_mw_admin_color == 'mw_classic_lm') ||
330 - ($_mw_admin_color == 'mw_wp23')
331 - ) {
332 -
333 - // only posts
334 - if (
335 - ( 'post-new.php' == $pagenow ) ||
336 - ( 'post.php' == $pagenow ) ||
337 - ( 'post' == $post_type )
338 - ) {
339 - if ( version_compare( substr($wp_version, 0, 3), '2.7', '<' ) )
340 - add_action('admin_head', '_mw_adminimize_remove_box', 99);
341 -
342 - // check for array empty
343 - if ( !isset($disabled_metaboxes_post_['editor']['0']) )
344 - $disabled_metaboxes_post_['editor']['0'] = '';
345 - if ( isset($disabled_metaboxes_post_['administrator']['0']) )
346 - $disabled_metaboxes_post_['administrator']['0'] = '';
347 - if ( version_compare(substr($wp_version, 0, 3), '2.7', '<') ) {
348 - if ( !recursive_in_array('#categorydivsb', $disabled_metaboxes_post_all) )
349 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_category_box');
350 - if ( !recursive_in_array('#tagsdivsb', $disabled_metaboxes_post_all) )
351 - add_action('submitpost_box', '_mw_adminimize_sidecat_list_tag_box');
352 - }
353 - }
354 -
355 - // only pages
356 - if (
357 - ( 'page-new.php' == $pagenow ) ||
358 - ( 'page.php' == $pagenow ) ||
359 - ( 'post_type=page' == esc_attr($_SERVER['QUERY_STRING']) ) ||
360 - ( 'page' == $post_type )
361 - ) {
362 -
363 - // check for array empty
364 - if ( !isset($disabled_metaboxes_page_['editor']['0']) )
365 - $disabled_metaboxes_page_['editor']['0'] = '';
366 - if ( isset($disabled_metaboxes_page_['administrator']['0']) )
367 - $disabled_metaboxes_page_['administrator']['0'] = '';
368 - }
369 -
370 - }
371 -
372 - // set menu option
373 - add_action('admin_head', '_mw_adminimize_set_menu_option', 1);
374 -
375 - // global_options
376 - add_action('admin_head', '_mw_adminimize_set_global_option', 1);
377 -
378 - // set metabox post option
379 - $post_pages = array('post-new.php', 'post.php', 'post');
380 - if ( in_array( $pagenow, $post_pages ) || in_array($post_type, $post_pages) ) {
381 - if ( ( esc_attr($_SERVER['QUERY_STRING']) != 'post_type=page' ) && ($post_type != 'page') )
382 - add_action('admin_head', '_mw_adminimize_set_metabox_post_option', 1);
383 - }
384 -
385 - // set metabox page option
386 - $page_pages = array( 'page-new.php', 'page.php', 'post_type=page', 'page' );
387 - if ( in_array( $pagenow, $page_pages ) || in_array($post_type, $page_pages) || in_array( esc_attr($_SERVER['QUERY_STRING']), $page_pages) )
388 - add_action('admin_head', '_mw_adminimize_set_metabox_page_option', 1);
389 -
390 - // set link option
391 - $link_pages = array('link-manager.php', 'link-add.php', 'edit-link-categories.php');
392 - if ( in_array( $pagenow, $link_pages ) )
393 - add_action('admin_head', '_mw_adminimize_set_link_option', 1);
394 -
395 - // set wp nav menu options
396 - $nav_menu_pages = array('nav-menus.php');
397 - if ( in_array( $pagenow, $nav_menu_pages ) )
398 - add_action('admin_head', '_mw_adminimize_set_nav_menu_option', 1);
399 -
400 - add_action('in_admin_footer', '_mw_adminimize_admin_footer');
401 -
402 - $adminimizeoptions['mw_adminimize_default_menu'] = $menu;
403 - $adminimizeoptions['mw_adminimize_default_submenu'] = $submenu;
404 -}
405 -
406 -// on init of WordPress
407 -add_action( 'init', '_mw_adminimize_textdomain' );
408 -add_action( 'init', '_mw_adminimize_register_styles' );
409 -
410 -// on admin init
411 -add_action( 'admin_menu', '_mw_adminimize_add_settings_page' );
412 -add_action( 'admin_menu', '_mw_adminimize_remove_dashboard' );
413 -add_action( 'admin_init', '_mw_adminimize_init', 1 );
414 -add_action( 'admin_init', '_mw_adminimize_admin_styles', 1 );
415 -
416 -register_activation_hook( __FILE__, '_mw_adminimize_install' );
417 -register_uninstall_hook( __FILE__, '_mw_adminimize_deinstall' );
418 -//register_deactivation_hook(__FILE__, '_mw_adminimize_deinstall');
419 -
420 -
421 -/**
422 - * Uses WordPress filter for image_downsize, kill wp-image-dimension
423 - * code by Andrew Rickmann
424 - * http://www.wp-fun.co.uk/
425 - * @param $value, $id, $size
426 - */
427 -function _mw_adminimize_image_downsize($value = FALSE, $id = 0, $size = "medium") {
428 -
429 - if ( !wp_attachment_is_image($id) )
430 - return FALSE;
431 -
432 - $img_url = wp_get_attachment_url($id);
433 -
434 - // Mimic functionality in image_downsize function in wp-includes/media.php
435 - if ( $intermediate = image_get_intermediate_size($id, $size) ) {
436 - $img_url = str_replace( basename($img_url), $intermediate['file'], $img_url );
437 - } elseif ( $size == 'thumbnail' ) {
438 - // fall back to the old thumbnail
439 - if ( $thumb_file = wp_get_attachment_thumb_file() && $info = getimagesize($thumb_file) ) {
440 - $img_url = str_replace( basename($img_url), basename($thumb_file), $img_url );
441 - }
442 - }
443 -
444 - if ( $img_url)
445 - return array($img_url, 0, 0);
446 -
447 - return FALSE;
448 -}
449 -
450 -
451 -/**
452 - * list category-box in sidebar
453 - * @uses $post_ID
454 - */
455 -function _mw_adminimize_sidecat_list_category_box() {
456 - global $post_ID;
457 - ?>
458 -
459 - <div class="inside" id="categorydivsb">
460 - <p><strong><?php _e("Categories"); ?></strong></p>
461 - <ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
462 - <?php wp_category_checklist($post_ID); ?>
463 - </ul>
464 - <?php if ( !defined('WP_PLUGIN_DIR') ) { // for wp <2.6 ?>
465 - <div id="category-adder" class="wp-hidden-children">
466 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
467 - <p id="category-add" class="wp-hidden-child">
468 - <input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php _e( 'New category name' ); ?>" tabindex="3" />
469 - <?php wp_dropdown_categories( array( 'hide_empty' => 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?>
470 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
471 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', FALSE ); ?>
472 - <span id="category-ajax-response"></span>
473 - </p>
474 - </div>
475 - <?php } else { ?>
476 - <div id="category-adder" class="wp-hidden-children">
477 - <h4><a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3"><?php _e( '+ Add New Category' ); ?></a></h4>
478 - <p id="category-add" class="wp-hidden-child">
479 - <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"/>
480 - <br />
481 - <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 ) ); ?>
482 - <input type="button" id="category-add-sumbit" class="add:categorychecklist:category-add button" value="<?php _e( 'Add' ); ?>" tabindex="3" />
483 - <?php wp_nonce_field( 'add-category', '_ajax_nonce', FALSE ); ?>
484 - <span id="category-ajax-response"></span>
485 - </p>
486 - </div>
487 - <?php } ?>
488 - </div>
489 -<?php
490 -}
491 -
492 -
493 -/**
494 - * list tag-box in sidebar
495 - * @uses $post_ID
496 - */
497 -function _mw_adminimize_sidecat_list_tag_box() {
498 - global $post_ID;
499 -
500 - if ( !class_exists('SimpleTagsAdmin') ) {
501 - ?>
502 - <div class="inside" id="tagsdivsb">
503 - <p><strong><?php _e('Tags'); ?></strong></p>
504 - <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>
505 - <div id="tagchecklist"></div>
506 - </div>
507 - <?php
508 - }
509 -}
510 -
511 -
512 -/**
513 - * remove default categorydiv
514 - * @echo script
515 - */
516 -function _mw_adminimize_remove_box() {
517 -
518 - if ( function_exists('remove_meta_box') ) {
519 - if ( !class_exists('SimpleTagsAdmin') )
520 - remove_meta_box('tagsdiv', 'post', 'normal');
521 -
522 - remove_meta_box('categorydiv', 'post', 'normal');
523 - } else {
524 - $_mw_adminimize_sidecat_admin_head = "\n" . '<script type="text/javascript">' . "\n";
525 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#categorydiv\').remove(); });' . "\n";
526 - $_mw_adminimize_sidecat_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#tagsdiv\').remove(); });' . "\n";
527 - $_mw_adminimize_sidecat_admin_head .= '</script>' . "\n";
528 -
529 - echo $_mw_adminimize_sidecat_admin_head;
530 - }
531 -}
532 -
533 -
534 -/**
535 - * add new adminstyle to usersettings
536 - * @param $file
537 - */
538 -function _mw_adminimize_admin_styles($file) {
539 - global $wp_version;
540 -
541 - $_mw_adminimize_path = WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/';
542 -
543 - if ( version_compare( $wp_version, '2.7alpha', '>=' ) ) {
544 - // MW Adminimize Classic
545 - $styleName = 'Adminimize:' . ' ' . __('Blue');
546 - wp_admin_css_color (
547 - 'mw_classic', $styleName, $_mw_adminimize_path . 'mw_classic27.css',
548 - array('#073447', '#21759b', '#eaf3fa', '#bbd8e7')
549 - );
550 -
551 - // MW Adminimize Fresh
552 - $styleName = 'Adminimize:' . ' ' . __('Gray');
553 - wp_admin_css_color (
554 - 'mw_fresh', $styleName, $_mw_adminimize_path . 'mw_fresh27.css',
555 - array('#464646', '#6d6d6d', '#f1f1f1', '#dfdfdf')
556 - );
557 -
558 - // MW Adminimize Classic Fixed
559 - $styleName = 'Adminimize:' . ' Fixed ' . __('Blue');
560 - wp_admin_css_color (
561 - 'mw_classic_fixed', $styleName, $_mw_adminimize_path . 'mw_classic28_fixed.css',
562 - array('#073447', '#21759b', '#eaf3fa', '#bbd8e7')
563 - );
564 -
565 - // MW Adminimize Fresh Fixed
566 - $styleName = 'Adminimize:' . ' Fixed ' . __('Gray');
567 - wp_admin_css_color (
568 - 'mw_fresh_fixed', $styleName, $_mw_adminimize_path . 'mw_fresh28_fixed.css',
569 - array('#464646', '#6d6d6d', '#f1f1f1', '#dfdfdf')
570 - );
571 -
572 - // MW Adminimize Classic Tweak
573 - $styleName = 'Adminimize:' . ' Tweak ' . __('Blue');
574 - wp_admin_css_color (
575 - 'mw_classic_tweak', $styleName, $_mw_adminimize_path . 'mw_classic28_tweak.css',
576 - array('#073447', '#21759b', '#eaf3fa', '#bbd8e7')
577 - );
578 -
579 - // MW Adminimize Fresh Tweak
580 - $styleName = 'Adminimize:' . ' Tweak ' . __('Gray');
581 - wp_admin_css_color (
582 - 'mw_fresh_tweak', $styleName, $_mw_adminimize_path . 'mw_fresh28_tweak.css',
583 - array('#464646', '#6d6d6d', '#f1f1f1', '#dfdfdf')
584 - );
585 -
586 - } else {
587 - // MW Adminimize Classic
588 - $styleName = 'MW Adminimize:' . ' ' . __('Classic');
589 - wp_admin_css_color (
590 - 'mw_classic', $styleName, $_mw_adminimize_path . 'mw_classic.css',
591 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
592 - );
593 -
594 - // MW Adminimize Fresh
595 - $styleName = 'MW Adminimize:' . ' ' . __('Fresh');
596 - wp_admin_css_color (
597 - 'mw_fresh', $styleName, $_mw_adminimize_path . 'mw_fresh.css',
598 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
599 - );
600 -
601 - // MW Adminimize WordPress 2.3
602 - $styleName = 'MW Adminimize:' . ' ' . __('WordPress 2.3');
603 - wp_admin_css_color (
604 - 'mw_wp23', $styleName, $_mw_adminimize_path . 'mw_wp23.css',
605 - array('#000000', '#14568A', '#448ABD', '#83B4D8')
606 - );
607 -
608 - // MW Adminimize Colorblind
609 - $styleName = 'MW Adminimize:' . ' ' . __('Maybe i\'m colorblind');
610 - wp_admin_css_color (
611 - 'mw_colorblind', $styleName, $_mw_adminimize_path . 'mw_colorblind.css',
612 - array('#FF9419', '#F0720C', '#710001', '#550007', '#CF4529')
613 - );
614 -
615 - // MW Adminimize Grey
616 - $styleName = 'MW Adminimize:' . ' ' . __('Grey');
617 - wp_admin_css_color (
618 - 'mw_grey', $styleName, $_mw_adminimize_path . 'mw_grey.css',
619 - array('#000000', '#787878', '#F0F0F0', '#D8D8D8', '#909090')
620 - );
621 - }
622 - /**
623 - * style and changes for plugin Admin Drop Down Menu
624 - * by Ozh
625 - * http://planetozh.com/blog/my-projects/wordpress-admin-menu-drop-down-css/
626 - */
627 - if ( function_exists('wp_ozh_adminmenu') ) {
628 -
629 - // MW Adminimize Classic include ozh adminmenu
630 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Classic');
631 - wp_admin_css_color (
632 - 'mw_classic_ozh_am', $styleName, $_mw_adminimize_path . 'mw_classic_ozh_am.css',
633 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
634 - );
635 -
636 - // MW Adminimize Fresh include ozh adminmenu
637 - $styleName = 'MW Adminimize inc. Admin Drop Down Menu' . ' ' . __('Fresh');
638 - wp_admin_css_color (
639 - 'mw_fresh_ozh_am', $styleName, $_mw_adminimize_path . 'mw_fresh_ozh_am.css',
640 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
641 - );
642 -
643 - }
644 -
645 - /**
646 - * style and changes for plugin Lighter Menus
647 - * by corpodibacco
648 - * http://www.italyisfalling.com/lighter-menus
649 - */
650 - if ( function_exists('lm_build') ) {
651 -
652 - // MW Adminimize Classic include Lighter Menus
653 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Classic');
654 - wp_admin_css_color (
655 - 'mw_classic_lm', $styleName, $_mw_adminimize_path . 'mw_classic_lm.css',
656 - array('#07273E', '#14568A', '#D54E21', '#2683AE')
657 - );
658 -
659 - // MW Adminimize Fresh include Lighter Menus
660 - $styleName = 'MW Adminimize inc. Lighter Menus' . ' ' . __('Fresh');
661 - wp_admin_css_color (
662 - 'mw_fresh_lm', $styleName, $_mw_adminimize_path . 'mw_fresh_lm.css',
663 - array('#464646', '#CEE1EF', '#D54E21', '#2683AE')
664 - );
665 -
666 - }
667 -}
668 -
669 -
670 -/**
671 - * remove the dashbord
672 - * @author of basic Austin Matzko
673 - * http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/
674 - */
675 -function _mw_adminimize_remove_dashboard() {
676 - global $menu, $submenu, $user_ID, $wp_version;
677 -
678 - // exclude super admin
679 - if ( defined('WP_DEBUG') && !WP_DEBUG ) {
680 - if ( is_super_admin() )
681 - return NULL;
682 - }
683 -
684 - $user_roles = get_all_user_roles();
685 -
686 - foreach ($user_roles as $role) {
687 - $disabled_menu_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_'. $role .'_items');
688 - $disabled_submenu_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_'. $role .'_items');
689 - }
690 -
691 - $disabled_menu_all = array();
692 - $disabled_submenu_all = array();
693 -
694 - foreach ($user_roles as $role) {
695 - array_push($disabled_menu_all, $disabled_menu_[$role]);
696 - array_push($disabled_submenu_all, $disabled_submenu_[$role]);
697 - }
698 -
699 - // remove dashboard
700 - if ( $disabled_menu_all != '' || $disabled_submenu_all != '' ) {
701 -
702 - foreach ($user_roles as $role) {
703 -
704 - if ( current_user_can($role) ) {
705 - if ( recursive_in_array('index.php', $disabled_menu_[$role]) || recursive_in_array('index.php', $disabled_submenu_[$role]) )
706 - $redirect = TRUE;
707 - else
708 - $redirect = FALSE;
709 - }
710 - }
711 -
712 - if ( $redirect ) {
713 - $_mw_adminimize_db_redirect = _mw_adminimize_getOptionValue('_mw_adminimize_db_redirect');
714 - switch ($_mw_adminimize_db_redirect) {
715 - case 0:
716 - $_mw_adminimize_db_redirect = 'profile.php';
717 - break;
718 - case 1:
719 - $_mw_adminimize_db_redirect = 'edit.php';
720 - break;
721 - case 2:
722 - $_mw_adminimize_db_redirect = 'edit.php?post_type=page';
723 - break;
724 - case 3:
725 - $_mw_adminimize_db_redirect = 'post-new.php';
726 - break;
727 - case 4:
728 - $_mw_adminimize_db_redirect = 'page-new.php';
729 - break;
730 - case 5:
731 - $_mw_adminimize_db_redirect = 'edit-comments.php';
732 - break;
733 - case 6:
734 - $_mw_adminimize_db_redirect = _mw_adminimize_getOptionValue('_mw_adminimize_db_redirect_txt');
735 - break;
736 - }
737 -
738 - // fallback for WP smaller 3.0
739 - if ( version_compare($wp_version, "3.0alpha", "<") && 'edit.php?post_type=page' == $_mw_adminimize_db_redirect )
740 - $_mw_adminimize_db_redirect = 'edit-pages.php';
741 -
742 - $the_user = new WP_User($user_ID);
743 - reset($menu); $page = key($menu);
744 -
745 - while ( (__('Dashboard') != $menu[$page][0]) && next($menu) || (__('Dashboard') != $menu[$page][1]) && next($menu) )
746 - $page = key($menu);
747 -
748 - if (__('Dashboard') == $menu[$page][0] || __('Dashboard') == $menu[$page][1])
749 - unset($menu[$page]);
750 - reset($menu); $page = key($menu);
751 -
752 - while ( !$the_user->has_cap($menu[$page][1]) && next($menu) )
753 - $page = key($menu);
754 -
755 - if ( preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI']) ) {
756 - wp_redirect( get_option('siteurl') . '/wp-admin/' . $_mw_adminimize_db_redirect );
757 - }
758 - }
759 - }
760 -}
761 -
762 -
763 -/**
764 - * remove the flash_uploader
765 - */
766 -function _mw_adminimize_disable_flash_uploader() {
767 -
768 - return FALSE;
769 -}
770 -
771 -
772 -/**
773 - * set menu options from database
774 - */
775 -function _mw_adminimize_set_menu_option() {
776 - global $pagenow, $menu, $submenu, $user_identity, $wp_version;
777 -
778 - $user_roles = get_all_user_roles();
779 -
780 - foreach ($user_roles as $role) {
781 - $disabled_menu_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_menu_'. $role .'_items');
782 - $disabled_submenu_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_submenu_'. $role .'_items');
783 - }
784 -
785 - $_mw_adminimize_admin_head = "\n";
786 - $_mw_adminimize_user_info = _mw_adminimize_getOptionValue('_mw_adminimize_user_info');
787 - $_mw_adminimize_ui_redirect = _mw_adminimize_getOptionValue('_mw_adminimize_ui_redirect');
788 -
789 - switch ($_mw_adminimize_user_info) {
790 - case 1:
791 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
792 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove(); });' . "\n";
793 - $_mw_adminimize_admin_head .= '</script>' . "\n";
794 - break;
795 - case 2:
796 - if ( version_compare($wp_version, "3.0alpha", ">=") ) {
797 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info30.css" type="text/css" />' . "\n";
798 - } elseif ( version_compare(substr($wp_version, 0, 3), '2.7', '>=') ) {
799 - $_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";
800 - } else {
801 - $_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";
802 - }
803 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
804 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove();';
805 - if ($_mw_adminimize_ui_redirect == '1') {
806 - $_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";
807 - } else {
808 - $_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";
809 - }
810 - $_mw_adminimize_admin_head .= '</script>' . "\n";
811 - break;
812 - case 3:
813 - if ( version_compare($wp_version, "3.0alpha", ">=") ) {
814 - $_mw_adminimize_admin_head .= '<link rel="stylesheet" href="' . WP_PLUGIN_URL . '/' . plugin_basename( dirname(__FILE__) ) . '/css/mw_small_user_info30.css" type="text/css" />' . "\n";
815 - } elseif ( version_compare(substr($wp_version, 0, 3), '2.7', '>=') ) {
816 - $_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";
817 - } else {
818 - $_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";
819 - }
820 - $_mw_adminimize_admin_head .= '<script type="text/javascript">' . "\n";
821 - $_mw_adminimize_admin_head .= "\t" . 'jQuery(document).ready(function() { jQuery(\'#user_info\').remove();';
822 - if ($_mw_adminimize_ui_redirect == '1') {
823 - $_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";
824 - } else {
825 - $_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";
826 - }
827 - $_mw_adminimize_admin_head .= '</script>' . "\n";
828 - break;
829 - }
830 -
831 - // set menu
832 - if ( '' != $disabled_menu_['editor'] ) {
833 -
834 - // set admin-menu
835 - foreach ($user_roles as $role) {
836 - $user = wp_get_current_user();
837 - if ( in_array($role, $user->roles) ) {
838 - if ( current_user_can($role) ) {
839 - $mw_adminimize_menu = $disabled_menu_[$role];
840 - $mw_adminimize_submenu = $disabled_submenu_[$role];
841 - }
842 - }
843 - }
844 -
845 - // fallback on users.php on all userroles smaller admin
846 - if ( is_array($mw_adminimize_menu) && in_array('users.php', $mw_adminimize_menu) )
847 - $mw_adminimize_menu[] = 'profile.php';
848 -
849 - if ( isset($menu) && !empty($menu) ) {
850 - foreach ($menu as $index => $item) {
851 - if ( 'index.php' === $item )
852 - continue;
853 -
854 - if ( isset($mw_adminimize_menu) && in_array($item[2], $mw_adminimize_menu) ) {
855 - unset($menu[$index]);
856 - }
857 -
858 - if ( isset($submenu) && !empty($submenu[$item[2]]) ) {
859 - foreach ($submenu[$item[2]] as $subindex => $subitem) {
860 - if ( isset($mw_adminimize_submenu) && in_array($subitem[2], $mw_adminimize_submenu))
861 - //if ('profile.php' === $subitem[2])
862 - // unset($menu[70]);
863 - unset($submenu[$item[2]][$subindex]);
864 - }
865 - }
866 - }
867 - }
868 -
869 - }
870 -
871 - echo $_mw_adminimize_admin_head;
872 -}
873 -
874 -
875 -/**
876 - * set global options in backend in all areas
877 - */
878 -function _mw_adminimize_set_global_option() {
879 - global $_wp_admin_css_colors;
880 -
881 - $user_roles = get_all_user_roles();
882 -
883 - $_mw_adminimize_admin_head = '';
884 -
885 - remove_action('admin_head', 'index_js');
886 -
887 - foreach ($user_roles as $role) {
888 - $disabled_global_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_global_option_'. $role .'_items');
889 - }
890 -
891 - foreach ($user_roles as $role) {
892 - if ( !isset($disabled_global_option_[$role]['0']) )
893 - $disabled_global_option_[$role]['0'] = '';
894 - }
895 -
896 - $remove_adminbar = FALSE;
897 - // new 1.7.8
898 - foreach ($user_roles as $role) {
899 - $user = wp_get_current_user();
900 - if ( in_array($role, $user->roles) ) {
901 - if ( current_user_can($role) && is_array($disabled_global_option_[$role]) ) {
902 - $global_options = implode(', ', $disabled_global_option_[$role]);
903 - if ( recursive_in_array('.show-admin-bar', $disabled_global_option_[$role]) )
904 - $remove_adminbar = TRUE;
905 - }
906 - }
907 - }
908 - if ( 0 != strpos($global_options, '#your-profile .form-table fieldset') )
909 - $_wp_admin_css_colors = 0;
910 - $_mw_adminimize_admin_head .= '<!-- global options -->' . "\n";
911 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $global_options . ' {display: none !important;}</style>' . "\n";
912 -
913 - // for deactivate admin bar
914 - if ( $remove_adminbar )
915 - add_filter( 'show_admin_bar','__return_false' );
916 -
917 - if ($global_options)
918 - echo $_mw_adminimize_admin_head;
919 -}
920 -
921 -
922 -/**
923 - * set metabox options from database an area post
924 - */
925 -function _mw_adminimize_set_metabox_post_option() {
926 -
927 - $user_roles = get_all_user_roles();
928 -
929 - $_mw_adminimize_admin_head = '';
930 -
931 - remove_action('admin_head', 'index_js');
932 -
933 - foreach ($user_roles as $role) {
934 - $disabled_metaboxes_post_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_post_'. $role .'_items');
935 -
936 - if ( !isset($disabled_metaboxes_post_[$role]['0']) )
937 - $disabled_metaboxes_post_[$role]['0'] = '';
938 -
939 - // new 1.7.8
940 - foreach ($user_roles as $role) {
941 - $user = wp_get_current_user();
942 - if ( in_array($role, $user->roles) ) {
943 - if ( current_user_can($role) && isset($disabled_metaboxes_post_[$role]) && is_array($disabled_metaboxes_post_[$role]) ) {
944 - $metaboxes = implode(',', $disabled_metaboxes_post_[$role]);
945 - }
946 - }
947 - }
948 - }
949 -
950 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important;}</style>' . "\n";
951 -
952 - if ($metaboxes)
953 - echo $_mw_adminimize_admin_head;
954 -}
955 -
956 -
957 -/**
958 - * set metabox options from database an area page
959 - */
960 -function _mw_adminimize_set_metabox_page_option() {
961 -
962 - $user_roles = get_all_user_roles();
963 -
964 - $_mw_adminimize_admin_head = '';
965 -
966 - remove_action('admin_head', 'index_js');
967 -
968 - foreach ($user_roles as $role) {
969 - $disabled_metaboxes_page_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_metaboxes_page_'. $role .'_items');
970 -
971 - if ( !isset($disabled_metaboxes_page_[$role]['0']) )
972 - $disabled_metaboxes_page_[$role]['0'] = '';
973 -
974 - // new 1.7.8
975 - foreach ($user_roles as $role) {
976 - $user = wp_get_current_user();
977 - if ( in_array($role, $user->roles) ) {
978 - if ( current_user_can($role) && is_array($disabled_metaboxes_page_[$role]) ) {
979 - $metaboxes = implode(',', $disabled_metaboxes_page_[$role]);
980 - }
981 - }
982 - }
983 - }
984 -
985 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $metaboxes . ' {display: none !important;}</style>' . "\n";
986 -
987 - if ($metaboxes)
988 - echo $_mw_adminimize_admin_head;
989 -}
990 -
991 -
992 -/**
993 - * set link options in area Links of Backend
994 - */
995 -function _mw_adminimize_set_link_option() {
996 -
997 - $user_roles = get_all_user_roles();
998 -
999 - $_mw_adminimize_admin_head = '';
1000 -
1001 - remove_action('admin_head', 'index_js');
1002 -
1003 - foreach ($user_roles as $role) {
1004 - $disabled_link_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_link_option_'. $role .'_items');
1005 - }
1006 -
1007 - foreach ($user_roles as $role) {
1008 - if ( !isset($disabled_link_option_[$role]['0']) )
1009 - $disabled_link_option_[$role]['0'] = '';
1010 - }
1011 -
1012 - // new 1.7.8
1013 - foreach ($user_roles as $role) {
1014 - $user = wp_get_current_user();
1015 - if ( in_array($role, $user->roles) ) {
1016 - if ( current_user_can($role) && is_array($disabled_link_option_[$role]) ) {
1017 - $link_options = implode(',', $disabled_link_option_[$role]);
1018 - }
1019 - }
1020 - }
1021 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $link_options . ' {display: none !important;}</style>' . "\n";
1022 -
1023 - if ($link_options)
1024 - echo $_mw_adminimize_admin_head;
1025 -}
1026 -
1027 -/**
1028 - * remove objects on wp nav menu
1029 - */
1030 -function _mw_adminimize_set_nav_menu_option() {
1031 -
1032 - $user_roles = get_all_user_roles();
1033 -
1034 - $_mw_adminimize_admin_head = '';
1035 -
1036 - remove_action('admin_head', 'index_js');
1037 -
1038 - foreach ($user_roles as $role) {
1039 - $disabled_nav_menu_option_[$role] = _mw_adminimize_getOptionValue('mw_adminimize_disabled_nav_menu_option_'. $role .'_items');
1040 - }
1041 -
1042 - foreach ($user_roles as $role) {
1043 - if ( !isset($disabled_nav_menu_option_[$role]['0']) )
1044 - $disabled_nav_menu_option_[$role]['0'] = '';
1045 - }
1046 -
1047 - // new 1.7.8
1048 - foreach ($user_roles as $role) {
1049 - $user = wp_get_current_user();
1050 - if ( in_array($role, $user->roles) ) {
1051 - if ( current_user_can($role) && is_array($disabled_nav_menu_option_[$role]) ) {
1052 - $nav_menu_options = implode(',', $disabled_nav_menu_option_[$role]);
1053 - }
1054 - }
1055 - }
1056 - $_mw_adminimize_admin_head .= '<style type="text/css">' . $nav_menu_options . ' {display: none !important;}</style>' . "\n";
1057 -
1058 - if ($nav_menu_options)
1059 - echo $_mw_adminimize_admin_head;
1060 -}
1061 -
1062 -
1063 -/**
1064 - * small user-info
1065 - * @uses $post_ID
1066 - */
1067 -function _mw_adminimize_small_user_info() {
1068 -?>
1069 - <div id="small_user_info">
1070 - <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>
1071 - </div>
1072 -<?php
1073 -}
1074 -
1075 -
1076 -/**
1077 - * include options-page in wp-admin
1078 - */
1079 -require_once('adminimize_page.php');
1080 -
1081 -
1082 -/**
1083 - * credit in wp-footer
1084 - */
1085 -function _mw_adminimize_admin_footer() {
1086 -
1087 - $plugin_data = get_plugin_data( __FILE__ );
1088 - $plugin_data['Title'] = $plugin_data['Name'];
1089 -
1090 - if ( !empty($plugin_data['PluginURI']) && !empty($plugin_data['Name']) )
1091 - $plugin_data['Title'] = '<a href="' . $plugin_data['PluginURI'] . '" title="'.__( 'Visit plugin homepage' ).'">' . $plugin_data['Name'] . '</a>';
1092 -
1093 - if ( basename($_SERVER['REQUEST_URI']) == 'adminimize.php') {
1094 - printf('%1$s ' . __('plugin') . ' | ' . __('Version') . ' <a href="http://wordpress.org/extend/plugins/adminimize/changelog/" title="' . __('History', FB_ADMINIMIZE_TEXTDOMAIN ) . '">%2$s</a> | ' . __('Author') . ' %3$s<br />', $plugin_data['Title'], $plugin_data['Version'], $plugin_data['Author']);
1095 - }
1096 -
1097 - if ( _mw_adminimize_getOptionValue('_mw_adminimize_advice') == 1 && basename($_SERVER['REQUEST_URI']) != 'adminimize.php' ) {
1098 - printf('%1$s ' . __('plugin activate', FB_ADMINIMIZE_TEXTDOMAIN ) . ' | ' . stripslashes( _mw_adminimize_getOptionValue('_mw_adminimize_advice_txt') ) . '<br />', $plugin_data['Title']);
1099 - }
1100 -
1101 -}
1102 -
1103 -
1104 -/**
1105 - * @version WP 2.8
1106 - * Add action link(s) to plugins page
1107 - *
1108 - * @package Secure WordPress
1109 - *
1110 - * @param $links, $file
1111 - * @return $links
1112 - */
1113 -function _mw_adminimize_filter_plugin_meta($links, $file) {
1114 -
1115 - /* create link */
1116 - if ( FB_ADMINIMIZE_BASENAME == $file ) {
1117 - array_unshift(
1118 - $links,
1119 - sprintf( '<a href="options-general.php?page=%s">%s</a>', FB_ADMINIMIZE_BASENAME, __('Settings') )
1120 - );
1121 - }
1122 -
1123 - return $links;
1124 -}
1125 -
1126 -
1127 -/**
1128 - * Images/ Icons in base64-encoding
1129 - * @use function _mw_adminimize_get_resource_url() for display
1130 - */
1131 -if ( isset($_GET['resource']) && !empty($_GET['resource']) ) {
1132 -
1133 - # base64 encoding performed by base64img.php from http://php.holtsmark.no
1134 - $resources = array(
1135 - 'adminimize.gif' =>
1136 - 'R0lGODlhCwALAKIEAPb29tTU1Kurq5SUlP///wAAAAAAAAAAAC'.
1137 - 'H5BAEAAAQALAAAAAALAAsAAAMlSErTuw1Ix4a8s4mYgxZbE4wf'.
1138 - 'OIzkAJqop64nWm7tULHu0+xLAgA7'.
1139 - '');
1140 -
1141 - if (array_key_exists($_GET['resource'], $resources)) {
1142 -
1143 - $content = base64_decode($resources[ $_GET['resource'] ]);
1144 -
1145 - $lastMod = filemtime(__FILE__);
1146 - $client = ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : FALSE );
1147 - // Checking if the client is validating his cache and if it is current.
1148 - if (isset($client) && (strtotime($client) == $lastMod)) {
1149 - // Client's cache IS current, so we just respond '304 Not Modified'.
1150 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', TRUE, 304);
1151 - exit;
1152 - } else {
1153 - // Image not cached or cache outdated, we respond '200 OK' and output the image.
1154 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', $lastMod).' GMT', TRUE, 200);
1155 - header('Content-Length: '.strlen($content));
1156 - header('Content-Type: image/' . substr(strrchr($_GET['resource'], '.'), 1) );
1157 - echo $content;
1158 - exit;
1159 - }
1160 - }
1161 -
1162 -}
1163 -
1164 -
1165 -/**
1166 - * Display Images/ Icons in base64-encoding
1167 - * @return $resourceID
1168 - */
1169 -function _mw_adminimize_get_resource_url($resourceID) {
1170 -
1171 - return trailingslashit( get_bloginfo('url') ) . '?resource=' . $resourceID;
1172 -}
1173 -
1174 -
1175 -/**
1176 - * content of help
1177 - *
1178 - * @package Secure WordPress
1179 - */
1180 -function _mw_adminimize_contextual_help() {
1181 -
1182 - $content = __('<a href="http://wordpress.org/extend/plugins/adminimize/">Documentation</a>', FB_ADMINIMIZE_TEXTDOMAIN );
1183 -
1184 - return $content;
1185 -}
1186 -
1187 -
1188 -/**
1189 - * settings in plugin-admin-page
1190 - */
1191 -function _mw_adminimize_add_settings_page() {
1192 - global $wp_version;
1193 -
1194 - if ( current_user_can('switch_themes') && function_exists('add_submenu_page') ) {
1195 -
1196 - $menutitle = '';
1197 - if ( version_compare( $wp_version, '2.7alpha', '>' ) ) {
1198 - $menutitle = '<img src="' . _mw_adminimize_get_resource_url('adminimize.gif') . '" alt="" />';
1199 - }
1200 - $menutitle .= ' ' . __('Adminimize', FB_ADMINIMIZE_TEXTDOMAIN );
1201 -
1202 - $pagehook = add_submenu_page('options-general.php', __('Adminimize Options', FB_ADMINIMIZE_TEXTDOMAIN ), $menutitle, 'unfiltered_html', __FILE__, '_mw_adminimize_options');
1203 - add_action( 'load-' . $pagehook, '_mw_adminimize_on_load_page' );
1204 - add_filter( 'plugin_action_links', '_mw_adminimize_filter_plugin_meta', 10, 2 );
1205 - }
1206 -
1207 -}
1208 -
1209 -
1210 -function _mw_adminimize_on_load_page() {
1211 -
1212 - add_filter( 'contextual_help', '_mw_adminimize_contextual_help' );
1213 -
1214 - wp_enqueue_style( 'adminimize-style' );
1215 -}
1216 -
1217 -
1218 -/**
1219 - * Set theme for users
1220 - */
1221 -function _mw_adminimize_set_theme() {
1222 -
1223 - if ( !current_user_can('edit_users') )
1224 - wp_die(__('Cheatin&#8217; uh?'));
1225 -
1226 - $user_ids = $_POST[mw_adminimize_theme_items];
1227 - $admin_color = htmlspecialchars( stripslashes( $_POST[_mw_adminimize_set_theme] ) );
1228 -
1229 - if ( !$user_ids )
1230 - return FALSE;
1231 -
1232 - foreach( $user_ids as $user_id) {
1233 - update_usermeta($user_id, 'admin_color', $admin_color);
1234 - }
1235 -
1236 -}
1237 -
1238 -
1239 -/**
1240 - * read otpions
1241 - */
1242 -function _mw_adminimize_getOptionValue($key) {
1243 -
1244 - $adminimizeoptions = get_option('mw_adminimize');
1245 -
1246 - if ( isset($adminimizeoptions[$key]) )
1247 - return ($adminimizeoptions[$key]);
1248 -}
1249 -
1250 -
1251 -/**
1252 - * Update options in database
1253 - */
1254 -function _mw_adminimize_update() {
1255 - global $menu, $submenu, $adminimizeoptions;
1256 -
1257 - $user_roles = get_all_user_roles();
1258 -
1259 - if (isset($_POST['_mw_adminimize_user_info'])) {
1260 - $adminimizeoptions['_mw_adminimize_user_info'] = strip_tags(stripslashes($_POST['_mw_adminimize_user_info']));
1261 - } else {
1262 - $adminimizeoptions['_mw_adminimize_user_info'] = 0;
1263 - }
1264 -
1265 - if (isset($_POST['_mw_adminimize_dashmenu'])) {
1266 - $adminimizeoptions['_mw_adminimize_dashmenu'] = strip_tags(stripslashes($_POST['_mw_adminimize_dashmenu']));
1267 - } else {
1268 - $adminimizeoptions['_mw_adminimize_dashmenu'] = 0;
1269 - }
1270 -
1271 - if (isset($_POST['_mw_adminimize_footer'])) {
1272 - $adminimizeoptions['_mw_adminimize_footer'] = strip_tags(stripslashes($_POST['_mw_adminimize_footer']));
1273 - } else {
1274 - $adminimizeoptions['_mw_adminimize_footer'] = 0;
1275 - }
1276 -
1277 - if (isset($_POST['_mw_adminimize_header'])) {
1278 - $adminimizeoptions['_mw_adminimize_header'] = strip_tags(stripslashes($_POST['_mw_adminimize_header']));
1279 - } else {
1280 - $adminimizeoptions['_mw_adminimize_header'] = 0;
1281 - }
1282 -
1283 - if (isset($_POST['_mw_adminimize_writescroll'])) {
1284 - $adminimizeoptions['_mw_adminimize_writescroll'] = strip_tags(stripslashes($_POST['_mw_adminimize_writescroll']));
1285 - } else {
1286 - $adminimizeoptions['_mw_adminimize_writescroll'] = 0;
1287 - }
1288 -
1289 - if (isset($_POST['_mw_adminimize_tb_window'])) {
1290 - $adminimizeoptions['_mw_adminimize_tb_window'] = strip_tags(stripslashes($_POST['_mw_adminimize_tb_window']));
1291 - } else {
1292 - $adminimizeoptions['_mw_adminimize_tb_window'] = 0;
1293 - }
1294 -
1295 - if (isset($_POST['_mw_adminimize_cat_full'])) {
1296 - $adminimizeoptions['_mw_adminimize_cat_full'] = strip_tags(stripslashes($_POST['_mw_adminimize_cat_full']));
1297 - } else {
1298 - $adminimizeoptions['_mw_adminimize_cat_full'] = 0;
1299 - }
1300 -
1301 - if (isset($_POST['_mw_adminimize_db_redirect'])) {
1302 - $adminimizeoptions['_mw_adminimize_db_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_db_redirect']));
1303 - } else {
1304 - $adminimizeoptions['_mw_adminimize_db_redirect'] = 0;
1305 - }
1306 -
1307 - if (isset($_POST['_mw_adminimize_ui_redirect'])) {
1308 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = strip_tags(stripslashes($_POST['_mw_adminimize_ui_redirect']));
1309 - } else {
1310 - $adminimizeoptions['_mw_adminimize_ui_redirect'] = 0;
1311 - }
1312 -
1313 - if (isset($_POST['_mw_adminimize_advice'])) {
1314 - $adminimizeoptions['_mw_adminimize_advice'] = strip_tags(stripslashes($_POST['_mw_adminimize_advice']));
1315 - } else {
1316 - $adminimizeoptions['_mw_adminimize_advice'] = 0;
1317 - }
1318 -
1319 - if (isset($_POST['_mw_adminimize_advice_txt'])) {
1320 - $adminimizeoptions['_mw_adminimize_advice_txt'] = stripslashes($_POST['_mw_adminimize_advice_txt']);
1321 - } else {
1322 - $adminimizeoptions['_mw_adminimize_advice_txt'] = 0;
1323 - }
1324 -
1325 - if (isset($_POST['_mw_adminimize_timestamp'])) {
1326 - $adminimizeoptions['_mw_adminimize_timestamp'] = strip_tags(stripslashes($_POST['_mw_adminimize_timestamp']));
1327 - } else {
1328 - $adminimizeoptions['_mw_adminimize_timestamp'] = 0;
1329 - }
1330 -
1331 - if (isset($_POST['_mw_adminimize_control_flashloader'])) {
1332 - $adminimizeoptions['_mw_adminimize_control_flashloader'] = strip_tags(stripslashes($_POST['_mw_adminimize_control_flashloader']));
1333 - } else {
1334 - $adminimizeoptions['_mw_adminimize_control_flashloader'] = 0;
1335 - }
1336 -
1337 - if (isset($_POST['_mw_adminimize_db_redirect_txt'])) {
1338 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = stripslashes($_POST['_mw_adminimize_db_redirect_txt']);
1339 - } else {
1340 - $adminimizeoptions['_mw_adminimize_db_redirect_txt'] = 0;
1341 - }
1342 -
1343 - // menu update
1344 - foreach ($user_roles as $role) {
1345 - if (isset($_POST['mw_adminimize_disabled_menu_'. $role .'_items'])) {
1346 - $adminimizeoptions['mw_adminimize_disabled_menu_'. $role .'_items'] = $_POST['mw_adminimize_disabled_menu_'. $role .'_items'];
1347 - } else {
1348 - $adminimizeoptions['mw_adminimize_disabled_menu_'. $role .'_items'] = array();
1349 - }
1350 -
1351 - if (isset($_POST['mw_adminimize_disabled_submenu_'. $role .'_items'])) {
1352 - $adminimizeoptions['mw_adminimize_disabled_submenu_'. $role .'_items'] = $_POST['mw_adminimize_disabled_submenu_'. $role .'_items'];
1353 - } else {
1354 - $adminimizeoptions['mw_adminimize_disabled_submenu_'. $role .'_items'] = array();
1355 - }
1356 - }
1357 -
1358 - // global_options, metaboxes update
1359 - foreach ($user_roles as $role) {
1360 - if (isset($_POST['mw_adminimize_disabled_global_option_'. $role . '_items'])) {
1361 - $adminimizeoptions['mw_adminimize_disabled_global_option_'. $role . '_items'] = $_POST['mw_adminimize_disabled_global_option_'. $role . '_items'];
1362 - } else {
1363 - $adminimizeoptions['mw_adminimize_disabled_global_option_'. $role . '_items'] = array();
1364 - }
1365 -
1366 - if (isset($_POST['mw_adminimize_disabled_metaboxes_post_'. $role . '_items'])) {
1367 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_'. $role . '_items'] = $_POST['mw_adminimize_disabled_metaboxes_post_'. $role . '_items'];
1368 - } else {
1369 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_'. $role . '_items'] = array();
1370 - }
1371 -
1372 - if (isset($_POST['mw_adminimize_disabled_metaboxes_page_'. $role . '_items'])) {
1373 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_'. $role . '_items'] = $_POST['mw_adminimize_disabled_metaboxes_page_'. $role . '_items'];
1374 - } else {
1375 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_'. $role . '_items'] = array();
1376 - }
1377 -
1378 - if (isset($_POST['mw_adminimize_disabled_link_option_'. $role . '_items'])) {
1379 - $adminimizeoptions['mw_adminimize_disabled_link_option_'. $role . '_items'] = $_POST['mw_adminimize_disabled_link_option_'. $role . '_items'];
1380 - } else {
1381 - $adminimizeoptions['mw_adminimize_disabled_link_option_'. $role . '_items'] = array();
1382 - }
1383 -
1384 - // wp nav menu options
1385 - if (isset($_POST['mw_adminimize_disabled_nav_menu_option_'. $role . '_items'])) {
1386 - $adminimizeoptions['mw_adminimize_disabled_nav_menu_option_'. $role . '_items'] = $_POST['mw_adminimize_disabled_nav_menu_option_'. $role . '_items'];
1387 - } else {
1388 - $adminimizeoptions['mw_adminimize_disabled_nav_menu_option_'. $role . '_items'] = array();
1389 - }
1390 - }
1391 -
1392 - // own options
1393 - if (isset($_POST['_mw_adminimize_own_values'])) {
1394 - $adminimizeoptions['_mw_adminimize_own_values'] = stripslashes($_POST['_mw_adminimize_own_values']);
1395 - } else {
1396 - $adminimizeoptions['_mw_adminimize_own_values'] = 0;
1397 - }
1398 -
1399 - if (isset($_POST['_mw_adminimize_own_options'])) {
1400 - $adminimizeoptions['_mw_adminimize_own_options'] = stripslashes($_POST['_mw_adminimize_own_options']);
1401 - } else {
1402 - $adminimizeoptions['_mw_adminimize_own_options'] = 0;
1403 - }
1404 -
1405 - // own post options
1406 - if (isset($_POST['_mw_adminimize_own_post_values'])) {
1407 - $adminimizeoptions['_mw_adminimize_own_post_values'] = stripslashes($_POST['_mw_adminimize_own_post_values']);
1408 - } else {
1409 - $adminimizeoptions['_mw_adminimize_own_post_values'] = 0;
1410 - }
1411 -
1412 - if (isset($_POST['_mw_adminimize_own_post_options'])) {
1413 - $adminimizeoptions['_mw_adminimize_own_post_options'] = stripslashes($_POST['_mw_adminimize_own_post_options']);
1414 - } else {
1415 - $adminimizeoptions['_mw_adminimize_own_post_options'] = 0;
1416 - }
1417 -
1418 - // own page options
1419 - if (isset($_POST['_mw_adminimize_own_page_values'])) {
1420 - $adminimizeoptions['_mw_adminimize_own_page_values'] = stripslashes($_POST['_mw_adminimize_own_page_values']);
1421 - } else {
1422 - $adminimizeoptions['_mw_adminimize_own_page_values'] = 0;
1423 - }
1424 -
1425 - if (isset($_POST['_mw_adminimize_own_page_options'])) {
1426 - $adminimizeoptions['_mw_adminimize_own_page_options'] = stripslashes($_POST['_mw_adminimize_own_page_options']);
1427 - } else {
1428 - $adminimizeoptions['_mw_adminimize_own_page_options'] = 0;
1429 - }
1430 -
1431 - // own link options
1432 - if (isset($_POST['_mw_adminimize_own_link_values'])) {
1433 - $adminimizeoptions['_mw_adminimize_own_link_values'] = stripslashes($_POST['_mw_adminimize_own_link_values']);
1434 - } else {
1435 - $adminimizeoptions['_mw_adminimize_own_link_values'] = 0;
1436 - }
1437 -
1438 - if (isset($_POST['_mw_adminimize_own_link_options'])) {
1439 - $adminimizeoptions['_mw_adminimize_own_link_options'] = stripslashes($_POST['_mw_adminimize_own_link_options']);
1440 - } else {
1441 - $adminimizeoptions['_mw_adminimize_own_link_options'] = 0;
1442 - }
1443 -
1444 - // update
1445 - update_option('mw_adminimize', $adminimizeoptions);
1446 - $adminimizeoptions = get_option('mw_adminimize');
1447 -
1448 - $myErrors = new _mw_adminimize_message_class();
1449 - $myErrors = '<div id="message" class="updated fade"><p>' . $myErrors->get_error('_mw_adminimize_update') . '</p></div>';
1450 - echo $myErrors;
1451 -}
1452 -
1453 -
1454 -/**
1455 - * Delete options in database
1456 - */
1457 -function _mw_adminimize_deinstall() {
1458 -
1459 - delete_option('mw_adminimize');
1460 -}
1461 -
1462 -
1463 -/**
1464 - * Install options in database
1465 - */
1466 -function _mw_adminimize_install() {
1467 - global $menu, $submenu;
1468 -
1469 - $user_roles = get_all_user_roles();
1470 - $adminimizeoptions = array();
1471 -
1472 - foreach ($user_roles as $role) {
1473 - $adminimizeoptions['mw_adminimize_disabled_menu_'. $role .'_items'] = array();
1474 - $adminimizeoptions['mw_adminimize_disabled_submenu_'. $role .'_items'] = array();
1475 - $adminimizeoptions['mw_adminimize_disabled_global_option_'. $role .'_items'] = array();
1476 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_post_'. $role .'_items'] = array();
1477 - $adminimizeoptions['mw_adminimize_disabled_metaboxes_page_'. $role .'_items'] = array();
1478 - }
1479 -
1480 - $adminimizeoptions['mw_adminimize_default_menu'] = $menu;
1481 - $adminimizeoptions['mw_adminimize_default_submenu'] = $submenu;
1482 -
1483 - add_option('mw_adminimize', $adminimizeoptions);
1484 -}
1485 -
1486 -/**
1487 - * export options in file
1488 - */
1489 -function _mw_adminimize_export() {
1490 - global $wpdb;
1491 -
1492 - $filename = 'adminimize_export-' . date('Y-m-d_G-i-s') . '.seq';
1493 -
1494 - header("Content-Description: File Transfer");
1495 - header("Content-Disposition: attachment; filename=" . urlencode($filename));
1496 - header("Content-Type: application/force-download");
1497 - header("Content-Type: application/octet-stream");
1498 - header("Content-Type: application/download");
1499 - header('Content-Type: text/seq; charset=' . get_option('blog_charset'), TRUE);
1500 - flush();
1501 -
1502 - $export_data = mysql_query("SELECT option_value FROM $wpdb->options WHERE option_name = 'mw_adminimize'");
1503 - $export_data = mysql_result($export_data, 0);
1504 - echo $export_data;
1505 - flush();
1506 -}
1507 -
1508 -/**
1509 - * import options in table _options
1510 - */
1511 -function _mw_adminimize_import() {
1512 -
1513 - // check file extension
1514 - $str_file_name = $_FILES['datei']['name'];
1515 - $str_file_ext = explode(".", $str_file_name);
1516 -
1517 - if ($str_file_ext[1] != 'seq') {
1518 - $addreferer = 'notexist';
1519 - } elseif (file_exists($_FILES['datei']['name'])) {
1520 - $addreferer = 'exist';
1521 - } else {
1522 - // path for file
1523 - $str_ziel = WP_CONTENT_DIR . '/' . $_FILES['datei']['name'];
1524 - // transfer
1525 - move_uploaded_file($_FILES['datei']['tmp_name'], $str_ziel);
1526 - // access authorisation
1527 - chmod($str_ziel, 0644);
1528 - // SQL import
1529 - ini_set('default_socket_timeout', 120);
1530 - $import_file = file_get_contents($str_ziel);
1531 - _mw_adminimize_deinstall();
1532 - $import_file = unserialize($import_file);
1533 - update_option('mw_adminimize', $import_file);
1534 - unlink($str_ziel);
1535 - $addreferer = 'true';
1536 - }
1537 -
1538 - $myErrors = new _mw_adminimize_message_class();
1539 - $myErrors = '<div id="message" class="updated fade"><p>' . $myErrors->get_error('_mw_adminimize_import') . '</p></div>';
1540 - echo $myErrors;
1541 -}
1542 -
1543 -?>
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 + */
20 +
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 + */
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 +
39 +/**
40 + * Return data from the plugin.
41 + *
42 + * @param string $value
43 + *
44 + * @return mixed
45 + */
46 +function _mw_adminimize_get_plugin_data( $value = 'Version' ) {
47 +
48 + if ( ! function_exists( 'get_plugin_data' ) ) {
49 + require_once ABSPATH . '/wp-admin/includes/plugin.php';
50 + }
51 +
52 + $plugin_data = get_plugin_data( __FILE__ );
53 +
54 + return $plugin_data[ $value ];
55 +}
56 +
57 +/**
58 + * Load language files.
59 + */
60 +function _mw_adminimize_textdomain() {
61 +
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 + );
67 +}
68 +
69 +/**
70 + * Exclude the Super Admin of Multisite.
71 + *
72 + * @return bool
73 + */
74 +function _mw_adminimize_exclude_super_admin() {
75 +
76 + if ( ! function_exists( 'is_super_admin' ) ) {
77 + return FALSE;
78 + }
79 +
80 + if ( ! is_super_admin() ) {
81 + return FALSE;
82 + }
83 +
84 + if ( 1 === (int) _mw_adminimize_get_option_value( '_mw_adminimize_exclude_super_admin' ) ) {
85 + return TRUE;
86 + }
87 +
88 + return FALSE;
89 +}
90 +
91 +/**
92 + * Get the status, if is on the settings page.
93 + *
94 + * @return bool
95 + */
96 +function _mw_adminimize_exclude_settings_page() {
97 +
98 + if ( ! is_admin() ) {
99 + return false;
100 + }
101 +
102 + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
103 + return false;
104 + }
105 +
106 + $page = '';
107 + if ( isset( $_GET['page'] ) ) {
108 + $page = esc_attr( $_GET['page'] );
109 + }
110 +
111 + if ( function_exists( 'get_current_screen' ) ) {
112 + $screen_tmp = get_current_screen();
113 +
114 + if ( isset( $screen_tmp->id ) && null !== $screen_tmp->id ) {
115 + $page = $screen_tmp->id;
116 + }
117 + }
118 +
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';
132 + }
133 +
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 );
142 +
143 + if ( is_multisite()
144 + && is_plugin_active_for_network( FB_ADMINIMIZE_BASENAME )
145 + && ! $force_single_site_usage ) {
146 + return TRUE;
147 + }
148 +
149 + return FALSE;
150 +}
151 +
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() {
160 +
161 + /** @var $wp_roles WP_Roles */
162 + global $wp_roles;
163 +
164 + $user_roles = array();
165 +
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 + }
172 +
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 + }
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 +}
190 +
191 +/**
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
197 + */
198 +function _mw_adminimize_get_all_user_roles_names() {
199 +
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;
208 + }
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 + );
222 + }
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 );
232 +}
233 +
234 +/**
235 + * Get post type.
236 + *
237 + * @return null|string String of the post type.
238 + */
239 +function _mw_adminimize_get_current_post_type() {
240 +
241 + global $post, $typenow, $current_screen;
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 + }
247 +
248 + // Check the global $typenow - set in admin.php
249 + if ( $typenow ) {
250 + return $typenow;
251 + }
252 +
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;
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;
265 +}
266 +
267 +/**
268 + * Check user-option and add new style.
269 + */
270 +function _mw_adminimize_admin_init() {
271 +
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' ] );
279 + }
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 + }
291 +
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 + }
298 +
299 + // Get all user roles.
300 + $user_roles = _mw_adminimize_get_all_user_roles();
301 +
302 + // Get settings.
303 + $adminimizeoptions = _mw_adminimize_get_option_value();
304 +
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'
327 + );
328 + $disabled_global_option_[ $role ] = _mw_adminimize_get_option_value(
329 + 'mw_adminimize_disabled_global_option_' . $role . '_items'
330 + );
331 + $disabled_metaboxes_post_[ $role ] = _mw_adminimize_get_option_value(
332 + 'mw_adminimize_disabled_metaboxes_post_' . $role . '_items'
333 + );
334 + $disabled_metaboxes_page_[ $role ] = _mw_adminimize_get_option_value(
335 + 'mw_adminimize_disabled_metaboxes_page_' . $role . '_items'
336 + );
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'
344 + );
345 + $disabled_nav_menu_option_[ $role ] = _mw_adminimize_get_option_value(
346 + 'mw_adminimize_disabled_nav_menu_option_' . $role . '_items'
347 + );
348 + $disabled_widget_option_[ $role ] = _mw_adminimize_get_option_value(
349 + 'mw_adminimize_disabled_widget_option_' . $role . '_items'
350 + );
351 + $disabled_metaboxes_post_all[] = $disabled_metaboxes_post_[ $role ];
352 + $disabled_metaboxes_page_all[] = $disabled_metaboxes_page_[ $role ];
353 + }
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 + }
434 + }
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 );
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 + }
462 +}
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 );
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 +
480 +/**
481 + * Remove the dashboard
482 + */
483 +function _mw_adminimize_remove_dashboard() {
484 +
485 + // exclude super admin
486 + if ( _mw_adminimize_exclude_super_admin() ) {
487 + return;
488 + }
489 +
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();
511 + $disabled_submenu_all = array();
512 +
513 + foreach ( $user_roles as $role ) {
514 + $disabled_menu_all[] = $disabled_menu_[ $role ];
515 + $disabled_submenu_all[] = $disabled_submenu_[ $role ];
516 + }
517 +
518 + // remove dashboard
519 + if ( $disabled_menu_all !== '' || $disabled_submenu_all !== '' ) {
520 +
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 + }
530 + }
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;
560 + }
561 +
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 + }
710 + }
711 + }
712 + }
713 + }
714 +
715 +}
716 +
717 +/**
718 + * Set global options in backend in all areas.
719 + */
720 +function _mw_adminimize_set_global_option() {
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 +
777 +/**
778 + * Set metabox options from database an area post.
779 + */
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 + }
840 +}
841 +
842 +/**
843 + * Set metabox options from database an area page.
844 + */
845 +function _mw_adminimize_set_metabox_page_option() {
846 +
847 + // exclude super admin
848 + if ( _mw_adminimize_exclude_super_admin() ) {
849 + return NULL;
850 + }
851 +
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 + }
889 +}
890 +
891 +/**
892 + * Set metabox options from database an area post.
893 + */
894 +function _mw_adminimize_set_metabox_cp_option() {
895 +
896 + // exclude super admin
897 + if ( _mw_adminimize_exclude_super_admin() ) {
898 + return NULL;
899 + }
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;
940 + }
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 + }
950 + }
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' ] = '';
989 + }
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 + }
1002 + }
1003 + }
1004 +
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;
1011 + }
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;
1022 + }
1023 +
1024 + // Leave the settings screen from Adminimize to see all areas on settings.
1025 + if ( _mw_adminimize_exclude_settings_page() ) {
1026 + return;
1027 + }
1028 +
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 + );
1036 + }
1037 +
1038 + foreach ( $user_roles as $role ) {
1039 + if ( ! isset( $disabled_nav_menu_option_[ $role ][ '0' ] ) ) {
1040 + $disabled_nav_menu_option_[ $role ][ '0' ] = '';
1041 + }
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 ] );
1053 + }
1054 + }
1055 + }
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 + }
1064 +}
1065 +
1066 +/**
1067 + * Remove areas in Widget Settings
1068 + */
1069 +function _mw_adminimize_set_widget_option() {
1070 +
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' ] = '';
1093 + }
1094 + }
1095 +
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 + }
1106 + }
1107 + }
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;
1115 + }
1116 +}
1117 +
1118 +/**
1119 + * Print small user-info.
1120 + */
1121 +function _mw_adminimize_small_user_info() {
1122 +
1123 + ?>
1124 + <div id="small_user_info">
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>
1132 + </div>
1133 + <?php
1134 +}
1135 +
1136 +// include helping functions
1137 +require_once 'inc-setup/DebugListener.php';
1138 +require_once 'inc-setup/helping_hands.php';
1139 +
1140 +// Include message class.
1141 +require_once 'inc-setup/messages.php';
1142 +
1143 +// inc. settings page
1144 +require_once 'adminimize_page.php';
1145 +
1146 +// dashboard options
1147 +require_once 'inc-setup/dashboard.php';
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';
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 +
1172 +/**
1173 + * Add action link(s) to plugins page
1174 + *
1175 + * @param array $links
1176 + * @param string $file
1177 + *
1178 + * @return array $links
1179 + */
1180 +function _mw_adminimize_filter_plugin_meta( $links, $file ) {
1181 +
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 + }
1192 +
1193 + return $links;
1194 +}
1195 +
1196 +/**
1197 + * Add settings in plugin-admin-page.
1198 + */
1199 +function _mw_adminimize_add_settings_page() {
1200 +
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 + );
1208 +
1209 + if ( ! is_network_admin() ) {
1210 + add_filter( 'plugin_action_links', '_mw_adminimize_filter_plugin_meta', 10, 2 );
1211 + }
1212 + add_action( 'load-' . $pagehook, '_mw_adminimize_on_load_page' );
1213 +}
1214 +
1215 +/**
1216 + * Enqueue script and styles for the settings page.
1217 + */
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' );
1238 +}
1239 +
1240 +/**
1241 + * Get setting value for each options key.
1242 + *
1243 + * @param string|bool $key
1244 + *
1245 + * @return string
1246 + */
1247 +function _mw_adminimize_get_option_value( $key = false ) {
1248 +
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() );
1260 + }
1261 + wp_cache_set( 'mw_adminimize', $adminimizeoptions );
1262 + }
1263 +
1264 + if ( ! $key ) {
1265 + return $adminimizeoptions;
1266 + }
1267 +
1268 + return array_key_exists( $key, $adminimizeoptions ) ? $adminimizeoptions[ $key ] : null;
1269 +}
1270 +
1271 +/**
1272 + * Update options.
1273 + *
1274 + * @param array $options
1275 + *
1276 + * @return bool
1277 + */
1278 +function _mw_adminimize_update_option( $options ) {
1279 +
1280 + if ( ! current_user_can( 'manage_options' ) ) {
1281 + return FALSE;
1282 + }
1283 +
1284 + if ( _mw_adminimize_is_roles_options_import( $options ) ){
1285 + $options = _mw_adminimize_roles_complete_options( $options );
1286 + }
1287 +
1288 + // Remove slashes always.
1289 + foreach ( $options as $key => $value ) {
1290 + $options[ $key ] = stripslashes_deep( $value );
1291 + }
1292 +
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 );
1299 + }
1300 + wp_cache_add( 'mw_adminimize', $options );
1301 +
1302 + return TRUE;
1303 +}
1304 +
1305 +/**
1306 + * Update options in database
1307 + */
1308 +function _mw_adminimize_update() {
1309 +
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 + }
1326 + }
1327 +
1328 + // Plugin Self Settings.
1329 + if ( isset( $_POST[ 'mw_adminimize_debug' ] ) ) {
1330 + $adminimizeoptions[ 'mw_adminimize_debug' ] = (int) $_POST[ 'mw_adminimize_debug' ];
1331 + } else {
1332 + $adminimizeoptions[ 'mw_adminimize_debug' ] = 0;
1333 + }
1334 +
1335 + if ( isset( $_POST[ 'mw_adminimize_multiple_roles' ] ) ) {
1336 + $adminimizeoptions[ 'mw_adminimize_multiple_roles' ] = (int) $_POST[ 'mw_adminimize_multiple_roles' ];
1337 + } else {
1338 + $adminimizeoptions[ 'mw_adminimize_multiple_roles' ] = 0;
1339 + }
1340 +
1341 + if ( isset( $_POST[ 'mw_adminimize_support_bbpress' ] ) ) {
1342 + $adminimizeoptions[ 'mw_adminimize_support_bbpress' ] = (int) $_POST[ 'mw_adminimize_support_bbpress' ];
1343 + } else {
1344 + $adminimizeoptions[ 'mw_adminimize_support_bbpress' ] = 0;
1345 + }
1346 +
1347 + if ( isset( $_POST[ 'mw_adminimize_prevent_page_access' ] ) ) {
1348 + $adminimizeoptions[ 'mw_adminimize_prevent_page_access' ] = (int) $_POST[ 'mw_adminimize_prevent_page_access' ];
1349 + } else {
1350 + $adminimizeoptions[ 'mw_adminimize_prevent_page_access' ] = 0;
1351 + }
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 + }
1365 + }
1366 +
1367 + if ( isset( $_POST[ '_mw_adminimize_user_info' ] ) ) {
1368 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = (int) $_POST[ '_mw_adminimize_user_info' ];
1369 + } else {
1370 + $adminimizeoptions[ '_mw_adminimize_user_info' ] = 0;
1371 + }
1372 +
1373 + if ( isset( $_POST[ '_mw_adminimize_footer' ] ) ) {
1374 + $adminimizeoptions[ '_mw_adminimize_footer' ] = (int) $_POST[ '_mw_adminimize_footer' ];
1375 + } else {
1376 + $adminimizeoptions[ '_mw_adminimize_footer' ] = 0;
1377 + }
1378 +
1379 + if ( isset( $_POST[ '_mw_adminimize_header' ] ) ) {
1380 + $adminimizeoptions[ '_mw_adminimize_header' ] = (int) $_POST[ '_mw_adminimize_header' ];
1381 + } else {
1382 + $adminimizeoptions[ '_mw_adminimize_header' ] = 0;
1383 + }
1384 +
1385 + if ( isset( $_POST[ '_mw_adminimize_exclude_super_admin' ] ) ) {
1386 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = (int) $_POST[ '_mw_adminimize_exclude_super_admin' ];
1387 + } else {
1388 + $adminimizeoptions[ '_mw_adminimize_exclude_super_admin' ] = 0;
1389 + }
1390 +
1391 + if ( isset( $_POST[ '_mw_adminimize_tb_window' ] ) ) {
1392 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = (int) $_POST[ '_mw_adminimize_tb_window' ];
1393 + } else {
1394 + $adminimizeoptions[ '_mw_adminimize_tb_window' ] = 0;
1395 + }
1396 +
1397 + if ( isset( $_POST[ '_mw_adminimize_cat_full' ] ) ) {
1398 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = (int) $_POST[ '_mw_adminimize_cat_full' ];
1399 + } else {
1400 + $adminimizeoptions[ '_mw_adminimize_cat_full' ] = 0;
1401 + }
1402 +
1403 + if ( isset( $_POST[ '_mw_adminimize_db_redirect' ] ) ) {
1404 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = (int) $_POST[ '_mw_adminimize_db_redirect' ];
1405 + } else {
1406 + $adminimizeoptions[ '_mw_adminimize_db_redirect' ] = 0;
1407 + }
1408 +
1409 + if ( isset( $_POST[ '_mw_adminimize_ui_redirect' ] ) ) {
1410 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = (int) $_POST[ '_mw_adminimize_ui_redirect' ];
1411 + } else {
1412 + $adminimizeoptions[ '_mw_adminimize_ui_redirect' ] = 0;
1413 + }
1414 +
1415 + if ( isset( $_POST[ '_mw_adminimize_advice' ] ) ) {
1416 + $adminimizeoptions[ '_mw_adminimize_advice' ] = (int) $_POST[ '_mw_adminimize_advice' ];
1417 + } else {
1418 + $adminimizeoptions[ '_mw_adminimize_advice' ] = 0;
1419 + }
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 + );
1434 + } else {
1435 + $adminimizeoptions[ '_mw_adminimize_advice_txt' ] = '';
1436 + }
1437 +
1438 + if ( isset( $_POST[ '_mw_adminimize_timestamp' ] ) ) {
1439 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = (int) $_POST[ '_mw_adminimize_timestamp' ];
1440 + } else {
1441 + $adminimizeoptions[ '_mw_adminimize_timestamp' ] = 0;
1442 + }
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' ] );
1446 + } else {
1447 + $adminimizeoptions[ '_mw_adminimize_db_redirect_txt' ] = '';
1448 + }
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 + }
1465 + }
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 + );
1474 + } else {
1475 + $adminimizeoptions[ '_mw_adminimize_own_menu_slug' ] = '';
1476 + }
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 + );
1482 + } else {
1483 + $adminimizeoptions[ '_mw_adminimize_own_menu_custom_slug' ] = '';
1484 + }
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 + }
1550 + }
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 + );
1557 + } else {
1558 + $adminimizeoptions[ '_mw_adminimize_own_values' ] = '';
1559 + }
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 + );
1565 + } else {
1566 + $adminimizeoptions[ '_mw_adminimize_own_options' ] = '';
1567 + }
1568 +
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 + );
1574 + } else {
1575 + $adminimizeoptions[ '_mw_adminimize_own_post_values' ] = '';
1576 + }
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 + );
1582 + } else {
1583 + $adminimizeoptions[ '_mw_adminimize_own_post_options' ] = '';
1584 + }
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 + );
1591 + } else {
1592 + $adminimizeoptions[ '_mw_adminimize_own_page_values' ] = '';
1593 + }
1594 +
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 + );
1599 + } else {
1600 + $adminimizeoptions[ '_mw_adminimize_own_page_options' ] = '';
1601 + }
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 + }
1620 + }
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 + );
1627 + } else {
1628 + $adminimizeoptions[ '_mw_adminimize_own_link_values' ] = '';
1629 + }
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 + );
1635 + } else {
1636 + $adminimizeoptions[ '_mw_adminimize_own_link_options' ] = '';
1637 + }
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 + );
1644 + } else {
1645 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_values' ] = '';
1646 + }
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 + );
1652 + } else {
1653 + $adminimizeoptions[ '_mw_adminimize_own_nav_menu_options' ] = '';
1654 + }
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 + );
1661 + } else {
1662 + $adminimizeoptions[ '_mw_adminimize_own_widget_values' ] = '';
1663 + }
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 + );
1669 + } else {
1670 + $adminimizeoptions[ '_mw_adminimize_own_widget_options' ] = '';
1671 + }
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 + );
1678 + } else {
1679 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_values' ] = '';
1680 + }
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 + );
1686 + } else {
1687 + $adminimizeoptions[ '_mw_adminimize_own_dashboard_options' ] = '';
1688 + }
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' ];
1696 + }
1697 + if ( isset( $GLOBALS[ 'submenu' ] ) ) {
1698 + $adminimizeoptions[ 'mw_adminimize_default_submenu' ] = $GLOBALS[ 'submenu' ];
1699 + }
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 + );
1722 + } else {
1723 + $message = $myErrors->get_error(
1724 + '_mw_adminimize_access_denied'
1725 + );
1726 + }
1727 + echo '<div id="message" class="notice notice-success"><p>' . $message . '</p></div>';
1728 +
1729 + return TRUE;
1730 +}
1731 +
1732 +/**
1733 + * Delete options in database
1734 + */
1735 +function _mw_adminimize_uninstall() {
1736 +
1737 + wp_cache_delete( 'mw_adminimize' );
1738 + delete_site_option( 'mw_adminimize' );
1739 + delete_option( 'mw_adminimize' );
1740 +}
1741 +
1742 +/**
1743 + * Install options in database
1744 + */
1745 +function _mw_adminimize_install() {
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();
1759 + $adminimizeoptions = array();
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 );
1786 +}
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 +}