Ticket #1511: role-seniority.diff

File role-seniority.diff, 1.5 KB (added by davidhouse, 7 years ago)

Sort alphabetically within roles

  • wp-includes/functions.php

     
    20462046        return preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $file); 
    20472047} 
    20482048 
     2049//sort roles in descending order of seniority 
     2050function compare_roles($role1, $role2) { 
     2051        global $wp_roles; 
     2052        //$wp_roles->role_names is arranged in descending order of seniority 
     2053        foreach ($wp_roles->role_names as $role => $name) { 
     2054                if ($role == $role1 && $role == $role2) { 
     2055                        //we matched role1 and role2 simultaneously; they're equal 
     2056                        return 0; 
     2057                } elseif ($role == $role1) { 
     2058                        //we matched role1 first, role1 > role2 
     2059                        return -1; //remember we're sorting descending 
     2060                } elseif ($role == $role2) { 
     2061                        //we matched role2 first, role1 < role2 
     2062                        return 1; //remember we're sorting descending 
     2063                } 
     2064        } 
     2065        //if we get to this point, neither of the roles were found in $wp_roles->role_names, 
     2066        //resort to alphabetical sorting. 
     2067        return strcmp($role1, $role2); 
     2068} 
     2069 
     2070 
    20492071?> 
  • wp-admin/users.php

     
    225225        <h2><?php _e('User List by Role'); ?></h2> 
    226226  <table cellpadding="3" cellspacing="3" width="100%"> 
    227227        <?php 
     228        uksort($roleclasses, 'compare_roles'); 
    228229        foreach($roleclasses as $role => $roleclass) { 
    229230                ksort($roleclass); 
    230231                ?>