/** * @return bool|null */ function _mw_adminimize_check_to_remove_admin_notices() { // Exclude super admin. if (_mw_adminimize_exclude_super_admin()) { return; } $user_roles = _mw_adminimize_get_all_user_roles(); foreach ($user_roles as $role) { $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items'); } foreach ($user_roles as $role) { if (!isset($disabled_global_option_[$role]['0'])) { $disabled_global_option_[$role]['0'] = ''; } } $remove_admin_notices = FALSE; foreach ($user_roles as $role) { $user = wp_get_current_user(); if (is_array($user->roles) && in_array($role, $user->roles)) { if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) { $remove_admin_notices = _mw_adminimize_recursive_in_array('.admin-notices', $disabled_global_option_[$role]); } } } return $remove_admin_notices; }
/** * Recursive search in array. * * @param $needle * @param $haystack * * @return bool */ function _mw_adminimize_recursive_in_array($needle, $haystack) { if ('' === $haystack) { return FALSE; } if (!$haystack) { return FALSE; } foreach ($haystack as $stalk) { if ($needle === $stalk || is_array($stalk) && _mw_adminimize_recursive_in_array($needle, $stalk)) { return TRUE; } } return FALSE; }
/** * Remove the dashboard * * @author Basic Austin Matzko * @see http://www.ilfilosofo.com/blog/2006/05/24/plugin-remove-the-wordpress-dashboard/ */ function _mw_adminimize_remove_dashboard() { global $menu, $user_ID, $wp_version; $disabled_menu_ = ''; $disabled_submenu_ = ''; $user_roles = _mw_adminimize_get_all_user_roles(); foreach ($user_roles as $role) { $disabled_menu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items'); $disabled_submenu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items'); } $disabled_menu_all = array(); $disabled_submenu_all = array(); foreach ($user_roles as $role) { array_push($disabled_menu_all, $disabled_menu_[$role]); array_push($disabled_submenu_all, $disabled_submenu_[$role]); } // remove dashboard if ($disabled_menu_all != '' || $disabled_submenu_all != '') { foreach ($user_roles as $role) { if (current_user_can($role)) { if (_mw_adminimize_recursive_in_array('index.php', $disabled_menu_[$role]) || _mw_adminimize_recursive_in_array('index.php', $disabled_submenu_[$role])) { $redirect = TRUE; } else { $redirect = FALSE; } } } // redirect option, if Dashboard is inactive if (isset($redirect) && $redirect) { $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect'); $_mw_adminimize_db_redirect_admin_url = get_option('siteurl') . '/wp-admin/'; switch ($_mw_adminimize_db_redirect) { case 0: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php'; break; case 1: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php'; break; case 2: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page'; break; case 3: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php'; break; case 4: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php'; break; case 5: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php'; break; case 6: $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect_txt'); break; } // fallback for WP smaller 3.0 if (version_compare($wp_version, "3.0alpha", "<") && 'edit.php?post_type=page' == $_mw_adminimize_db_redirect) { $_mw_adminimize_db_redirect = 'edit-pages.php'; } $the_user = new WP_User($user_ID); reset($menu); $page = key($menu); while (__('Dashboard') != $menu[$page][0] && next($menu) || __('Dashboard') != $menu[$page][1] && next($menu)) { $page = key($menu); } if (__('Dashboard') == $menu[$page][0] || __('Dashboard') == $menu[$page][1]) { unset($menu[$page]); } reset($menu); $page = key($menu); while (!$the_user->has_cap($menu[$page][1]) && next($menu)) { $page = key($menu); } if (preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'])) { wp_redirect($_mw_adminimize_db_redirect); } } } }
/** * Remove Admin Bar */ function _mw_adminimize_remove_admin_bar() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return NULL; } global $wp_version; $user_roles = _mw_adminimize_get_all_user_roles(); foreach ($user_roles as $role) { $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items'); } foreach ($user_roles as $role) { if (!isset($disabled_global_option_[$role]['0'])) { $disabled_global_option_[$role]['0'] = ''; } } $remove_adminbar = FALSE; // new 1.7.8 foreach ($user_roles as $role) { $user = wp_get_current_user(); if (is_array($user->roles) && in_array($role, $user->roles)) { if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) { if (_mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) { $remove_adminbar = TRUE; } } } } if ($remove_adminbar) { // for deactivate admin bar in WP smaller WP 3.3 if (version_compare($wp_version, '3.3alpha', '<=')) { add_filter('show_admin_bar', '__return_false'); wp_deregister_script('admin-bar'); wp_deregister_style('admin-bar'); remove_action('wp_footer', 'wp_admin_bar_render', 1000); remove_action('wp_head', '_admin_bar_bump_cb'); } else { if (!is_admin_bar_showing()) { return FALSE; } add_filter('show_admin_bar', '__return_false'); add_filter('wp_admin_bar_class', '__return_false'); add_filter('show_wp_pointer_admin_bar', '__return_false'); wp_deregister_script('admin-bar'); wp_deregister_style('admin-bar'); remove_action('init', '_wp_admin_bar_init'); remove_action('wp_footer', 'wp_admin_bar_render', 1000); remove_action('admin_footer', 'wp_admin_bar_render', 1000); // maybe also: 'wp_head' foreach (array('wp_head', 'admin_head') as $hook) { add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';")); } add_action('in_admin_header', '_mw_adminimize_restore_links'); } // end else version 3.3 } // end if $remove_adminbar TRUE return NULL; }
/** * Remove the dashboard */ function _mw_adminimize_remove_dashboard() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return; } // Leave the settings screen from Adminimize to see all areas on settings. if (_mw_adminimize_exclude_settings_page()) { return; } global $menu, $user_ID; $disabled_menu_ = array(); $disabled_submenu_ = array(); $user_roles = _mw_adminimize_get_all_user_roles(); foreach ($user_roles as $role) { $disabled_menu_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items'); $disabled_submenu_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items'); } $disabled_menu_all = array(); $disabled_submenu_all = array(); foreach ($user_roles as $role) { $disabled_menu_all[] = $disabled_menu_[$role]; $disabled_submenu_all[] = $disabled_submenu_[$role]; } // remove dashboard if ($disabled_menu_all !== '' || $disabled_submenu_all !== '') { $redirect = FALSE; foreach ($user_roles as $role) { if (_mw_adminimize_current_user_has_role($role)) { if (_mw_adminimize_recursive_in_array('index.php', $disabled_menu_[$role]) || _mw_adminimize_recursive_in_array('index.php', $disabled_submenu_[$role])) { $redirect = TRUE; } } } // redirect option, if Dashboard is inactive if ($redirect) { $_mw_adminimize_db_redirect = (int) _mw_adminimize_get_option_value('_mw_adminimize_db_redirect'); $_mw_adminimize_db_redirect_admin_url = get_option('siteurl') . '/wp-admin/'; switch ($_mw_adminimize_db_redirect) { case 0: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'profile.php'; break; case 1: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php'; break; case 2: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit.php?post_type=page'; break; case 3: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'post-new.php'; break; case 4: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'page-new.php'; break; case 5: $_mw_adminimize_db_redirect = $_mw_adminimize_db_redirect_admin_url . 'edit-comments.php'; break; case 6: $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect_txt'); break; } $the_user = new WP_User($user_ID); reset($menu); $page = key($menu); $dashboard_core_string = esc_attr__('Dashboard'); $dashboard = array($menu[$page][0], $menu[$page][1]); while (!in_array($dashboard_core_string, $dashboard, FALSE) && next($menu)) { $page = key($menu); } if (in_array($dashboard_core_string, $dashboard, FALSE)) { unset($menu[$page]); } reset($menu); $page = key($menu); while (!$the_user->has_cap($menu[$page][1]) && next($menu)) { $page = key($menu); } if (preg_match('#wp-admin/?(index.php)?$#', $_SERVER['REQUEST_URI'])) { wp_redirect($_mw_adminimize_db_redirect); } } } }
?> </td> </tr> <?php // when remove dashboard foreach ($user_roles as $role) { $disabled_menu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_menu_' . $role . '_items'); $disabled_submenu_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_submenu_' . $role . '_items'); } $disabled_menu_all = array(); foreach ($user_roles as $role) { array_push($disabled_menu_all, $disabled_menu_[$role]); array_push($disabled_menu_all, $disabled_submenu_[$role]); } if ('' != $disabled_menu_all) { if (!_mw_adminimize_recursive_in_array('index.php', $disabled_menu_all)) { $disabled_item2 = ' disabled="disabled"'; } ?> <tr valign="top" class="form-invalid"> <td><?php _e('Dashboard deactivate, redirect to', FB_ADMINIMIZE_TEXTDOMAIN); ?> </td> <td> <?php $_mw_adminimize_db_redirect = _mw_adminimize_get_option_value('_mw_adminimize_db_redirect'); ?> <select name="_mw_adminimize_db_redirect"<?php if (isset($disabled_item2)) { echo $disabled_item2;
/** * Remove Admin Bar * * @return null|void */ function _mw_adminimize_remove_admin_bar() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return; } // Leave the settings screen from Adminimize to see all areas on settings. if (_mw_adminimize_exclude_settings_page()) { return; } $user_roles = _mw_adminimize_get_all_user_roles(); foreach ($user_roles as $role) { $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items'); } foreach ($user_roles as $role) { if (!isset($disabled_global_option_[$role]['0'])) { $disabled_global_option_[$role]['0'] = ''; } } $user = wp_get_current_user(); $remove_adminbar = FALSE; // new 1.7.8 foreach ($user_roles as $role) { if (is_array($user->roles) && in_array($role, $user->roles, FALSE)) { if (_mw_adminimize_current_user_has_role($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role]) && _mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) { $remove_adminbar = TRUE; } } } if ($remove_adminbar) { if (!is_admin_bar_showing()) { return FALSE; } add_filter('show_admin_bar', '__return_false'); add_filter('wp_admin_bar_class', '__return_false'); add_filter('show_wp_pointer_admin_bar', '__return_false'); wp_deregister_script('admin-bar'); wp_deregister_style('admin-bar'); remove_action('init', '_wp_admin_bar_init'); remove_action('wp_footer', 'wp_admin_bar_render', 1000); remove_action('admin_footer', 'wp_admin_bar_render', 1000); // maybe also: 'wp_head' foreach (array('wp_head', 'admin_head') as $hook) { add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';")); } add_action('in_admin_header', '_mw_adminimize_restore_links'); } // end if $remove_adminbar TRUE }
/** * set global options in backend in all areas */ function _mw_adminimize_set_global_option() { global $_wp_admin_css_colors; // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return NULL; } $user_roles = _mw_adminimize_get_all_user_roles(); $_mw_adminimize_admin_head = ''; // remove_action( 'admin_head', 'index_js' ); foreach ($user_roles as $role) { $disabled_global_option_[$role] = _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items'); } foreach ($user_roles as $role) { if (!isset($disabled_global_option_[$role]['0'])) { $disabled_global_option_[$role]['0'] = ''; } } $remove_adminbar = FALSE; // new 1.7.8 foreach ($user_roles as $role) { $user = wp_get_current_user(); if (is_array($user->roles) && in_array($role, $user->roles)) { if (current_user_can($role) && isset($disabled_global_option_[$role]) && is_array($disabled_global_option_[$role])) { $global_options = implode(', ', $disabled_global_option_[$role]); if (_mw_adminimize_recursive_in_array('.show-admin-bar', $disabled_global_option_[$role])) { $remove_adminbar = TRUE; } } } } if (0 != strpos($global_options, '#your-profile .form-table fieldset')) { $_wp_admin_css_colors = 0; } $_mw_adminimize_admin_head .= '<!-- global options -->' . "\n"; $_mw_adminimize_admin_head .= '<style type="text/css">' . $global_options . ' {display: none !important;}</style>' . "\n"; if ($global_options) { echo $_mw_adminimize_admin_head; } }
/** * Remove Admin Bar * * @return null|void */ function _mw_adminimize_remove_admin_bar() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return; } // Leave the settings screen from Adminimize to see all areas on settings. if (_mw_adminimize_exclude_settings_page()) { return; } $user_roles = _mw_adminimize_get_all_user_roles(); $disabled_global_option_ = array(); foreach ($user_roles as $role) { $disabled_global_option_[$role] = (array) _mw_adminimize_get_option_value('mw_adminimize_disabled_global_option_' . $role . '_items'); } $mw_global_options = array(); $user = wp_get_current_user(); foreach ($user_roles as $role) { if (in_array($role, $user->roles, FALSE) && _mw_adminimize_current_user_has_role($role)) { // Create array about all items with all affected roles, important for multiple roles. foreach ($disabled_global_option_[$role] as $global_item) { $mw_global_options[] = $global_item; } } } // Support Multiple Roles for users. if (_mw_adminimize_get_option_value('mw_adminimize_multiple_roles') && 1 < count($user->roles)) { $mw_global_options = _mw_adminimize_get_duplicate($mw_global_options); } $remove_adminbar = FALSE; // Check for admin bar selector to set to remove the Admin Bar. if (_mw_adminimize_recursive_in_array('.show-admin-bar', $mw_global_options)) { $remove_adminbar = TRUE; } if ($remove_adminbar) { if (!is_admin_bar_showing()) { return FALSE; } add_filter('show_admin_bar', '__return_false'); add_filter('wp_admin_bar_class', '__return_false'); add_filter('show_wp_pointer_admin_bar', '__return_false'); wp_deregister_script('admin-bar'); wp_deregister_style('admin-bar'); remove_action('init', '_wp_admin_bar_init'); remove_action('wp_footer', 'wp_admin_bar_render', 1000); remove_action('admin_footer', 'wp_admin_bar_render', 1000); // maybe also: 'wp_head' foreach (array('wp_head', 'admin_head') as $hook) { add_action($hook, create_function('', "echo '<style>body.admin-bar, body.admin-bar #wpcontent, body.admin-bar #adminmenu {\n\t\t\t\t\t\t\t padding-top: 0 !important;\n\t\t\t\t\t\t}\n\t\t\t\t\t\thtml.wp-toolbar {\n\t\t\t\t\t\t\tpadding-top: 0 !important;\n\t\t\t\t\t\t}</style>';")); } add_action('in_admin_header', '_mw_adminimize_restore_links'); } // end if $remove_adminbar TRUE }