// Loop about Sub Menu items. foreach ($wp_submenu[$menu_slug] as $subkey => $subitem) { $submenu_slug = $subitem[2]; // Special solutions for the Adminimize link, that it not works on settings site. if (strtolower($submenu_slug) === 'adminimize/adminimize.php') { //$disabled_subitem_adm = ' disabled="disabled"'; $disabled_subitem_adm_hint = '<abbr title="' . esc_attr__('After activate the check box it heavy attitudes will change.', 'adminimize') . '" style="cursor:pointer;"> ! </acronym>'; } else { $disabled_subitem_adm = ''; $disabled_subitem_adm_hint = ''; } echo '<tr>' . "\n"; foreach ($user_roles as $role) { // checkbox checked $checked_user_role_[$role] = ''; if (isset($disabled_submenu_[$role]) && _mw_adminimize_in_arrays(array($menu_slug . '__' . $subkey, $submenu_slug), $disabled_submenu_[$role])) { $checked_user_role_[$role] = ' checked="checked"'; } } echo '<td> — ' . $subitem[0] . ' <span>(Slug: ' . preg_replace('#[%2].*#', '...', htmlentities($submenu_slug)) . ')[__' . $subkey . ']</span> </td>' . "\n"; foreach ($user_roles as $role) { if ($role !== 'administrator') { // only admin disable items $disabled_subitem_adm = ''; $disabled_subitem_adm_hint = ''; } echo '<td class="num">' . $disabled_subitem_adm_hint . '<input id="check_menu' . $role . $x . '" class="submenu_options_' . $role . '" type="checkbox"' . $disabled_subitem_adm . $checked_user_role_[$role] . ' name="mw_adminimize_disabled_submenu_' . $role . '_items[]" value="' . $menu_slug . '__' . $subkey . '" />' . $disabled_subitem_adm_hint . '</td>' . "\n"; } echo '</tr>' . "\n"; $x++; }
/** * Set menu for settings */ function _mw_adminimize_set_menu_option() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return NULL; } // Leave the settings screen from Adminimize to see all areas on settings. if (_mw_adminimize_exclude_settings_page()) { return; } global $menu, $submenu; if (!isset($menu) || empty($menu)) { return; } $user_roles = _mw_adminimize_get_all_user_roles(); $disabled_menu_ = ''; $disabled_submenu_ = ''; 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'); } $mw_adminimize_menu = array(); $mw_adminimize_submenu = array(); // Set admin-menu. foreach ($user_roles as $role) { $user = wp_get_current_user(); if (is_array($user->roles) && in_array($role, $user->roles, FALSE) && _mw_adminimize_current_user_has_role($role)) { $mw_adminimize_menu = $disabled_menu_[$role]; $mw_adminimize_submenu = $disabled_submenu_[$role]; } } // Fallback on users.php on all user roles smaller admin. if (is_array($mw_adminimize_menu) && in_array('users.php', $mw_adminimize_menu, FALSE)) { $mw_adminimize_menu[] = 'profile.php'; } foreach ($menu as $index => $item) { if ('index.php' === $item) { continue; } if (isset($item[2])) { if (isset($mw_adminimize_menu) && is_array($mw_adminimize_menu) && in_array($item[2], $mw_adminimize_menu, FALSE)) { unset($menu[$index]); } if (isset($submenu) && !empty($submenu[$item[2]])) { foreach ($submenu[$item[2]] as $subindex => $subitem) { // Check, if is menu item in the user role settings? if (isset($mw_adminimize_submenu) && _mw_adminimize_in_arrays(array($subitem[2], $item[2] . '__' . $subindex), $mw_adminimize_submenu)) { unset($submenu[$item[2]][$subindex]); } } } } } }
/** * Set menu for settings */ function _mw_adminimize_set_menu_option() { // exclude super admin if (_mw_adminimize_exclude_super_admin()) { return NULL; } // Leave the settings screen from Adminimize to see all areas on settings. if (_mw_adminimize_exclude_settings_page()) { return; } global $menu, $submenu; if (!isset($menu) || empty($menu)) { return; } _mw_adminimize_debug($menu, 'Adminimize, WordPress Menu:'); _mw_adminimize_debug($submenu, 'Adminimize, WordPress Sub-Menu:'); $user_roles = _mw_adminimize_get_all_user_roles(); $disabled_menu_ = array(); $disabled_submenu_ = array(); 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'); } $mw_adminimize_menu = array(); $mw_adminimize_submenu = array(); $user = wp_get_current_user(); // Set admin-menu. 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_menu_[$role] as $menu_item) { $mw_adminimize_menu[] = $menu_item; } foreach ($disabled_submenu_[$role] as $submenu_item) { $mw_adminimize_submenu[] = $submenu_item; } } } // Support Multiple Roles for users. if (_mw_adminimize_get_option_value('mw_adminimize_multiple_roles') && 1 < count($user->roles)) { $mw_adminimize_menu = _mw_adminimize_get_duplicate($mw_adminimize_menu); $mw_adminimize_submenu = _mw_adminimize_get_duplicate($mw_adminimize_submenu); } // Fallback on users.php on all user roles smaller admin. if (in_array('users.php', $mw_adminimize_menu, FALSE)) { $mw_adminimize_menu[] = 'profile.php'; } foreach ($menu as $key => $item) { // Menu if (isset($item[2])) { $menu_slug = $item[2]; // Check, if the Menu item in the current user role settings? if (in_array($menu_slug, $mw_adminimize_menu, FALSE)) { remove_menu_page($menu_slug); } // Sub Menu Settings. if (isset($submenu) && !empty($submenu[$menu_slug])) { foreach ($submenu[$menu_slug] as $subindex => $subitem) { // Check, if is Sub Menu item in the user role settings? if (isset($mw_adminimize_submenu) && _mw_adminimize_in_arrays(array($subitem[2], $menu_slug . '__' . $subindex), $mw_adminimize_submenu)) { remove_submenu_page($menu_slug, $subitem[2]); //unset( $submenu[ $menu_slug ][ $subindex ] ); } } } } } }
} // Loop about submenu items. foreach ($wp_submenu[$item[2]] as $subkey => $subitem) { // Special solutions for the Adminimize link, that it not works on settings site. if ($subitem[2] === 'adminimize/adminimize.php') { //$disabled_subitem_adm = ' disabled="disabled"'; $disabled_subitem_adm_hint = '<abbr title="' . esc_attr__('After activate the check box it heavy attitudes will change.', 'adminimize') . '" style="cursor:pointer;"> ! </acronym>'; } else { $disabled_subitem_adm = ''; $disabled_subitem_adm_hint = ''; } echo '<tr>' . "\n"; foreach ($user_roles as $role) { // checkbox checked $checked_user_role_[$role] = ''; if (isset($disabled_submenu_[$role]) && _mw_adminimize_in_arrays(array($item[2] . '__' . $subkey, $subitem[2]), $disabled_submenu_[$role])) { $checked_user_role_[$role] = ' checked="checked"'; } } echo '<td> — ' . $subitem[0] . ' <span>[' . $subkey . '](' . preg_replace("#[%2].*#", '...', htmlentities($subitem[2])) . ')</span> </td>' . "\n"; foreach ($user_roles as $role) { if ($role !== 'administrator') { // only admin disable items $disabled_subitem_adm = ''; $disabled_subitem_adm_hint = ''; } echo '<td class="num">' . $disabled_subitem_adm_hint . '<input id="check_menu' . $role . $x . '" class="submenu_options_' . preg_replace('/[^a-z0-9]+/', '', $role) . '" type="checkbox"' . $disabled_subitem_adm . $checked_user_role_[$role] . ' name="mw_adminimize_disabled_submenu_' . $role . '_items[]" value="' . $item[2] . '__' . $subkey . '" />' . $disabled_subitem_adm_hint . '</td>' . "\n"; } echo '</tr>' . "\n"; $x++; }