// 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> &mdash; ' . $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]);
                    }
                }
            }
        }
    }
}
Exemple #3
0
/**
 * 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> &mdash; ' . $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++;
 }