| 1 | Index: wp-admin/includes/template.php |
|---|
| 2 | =================================================================== |
|---|
| 3 | --- wp-admin/includes/template.php (revision 7276) |
|---|
| 4 | +++ wp-admin/includes/template.php (working copy) |
|---|
| 5 | @@ -535,12 +535,15 @@ |
|---|
| 6 | if ( current_user_can( 'edit_user', $user_object->ID ) ) { |
|---|
| 7 | $edit = clean_url( add_query_arg( 'wp_http_referer', urlencode( clean_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=$user_object->ID" ) ); |
|---|
| 8 | $edit = "<a href=\"$edit\">$user_object->user_login</a>"; |
|---|
| 9 | + //define the checkbox_disabled as empty only if the user is editable |
|---|
| 10 | + $checkbox_disabled = ""; |
|---|
| 11 | } else { |
|---|
| 12 | $edit = $user_object->user_login; |
|---|
| 13 | + // otherwise the checkbox is disabled. |
|---|
| 14 | + $checkbox_disabled = "disabled='true'"; |
|---|
| 15 | } |
|---|
| 16 | $role_name = translate_with_context($wp_roles->role_names[$role]); |
|---|
| 17 | - $r = "<tr id='user-$user_object->ID'$style> |
|---|
| 18 | - <th scope='row' class='check-column'><input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='$role' value='{$user_object->ID}' /></th> |
|---|
| 19 | + $r = "<tr id='user-$user_object->ID'$style><th scope='row' class='check-column'><input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='$role' value='{$user_object->ID}' $checkbox_disabled /></th> |
|---|
| 20 | <td><strong>$edit</strong></td> |
|---|
| 21 | <td>$user_object->first_name $user_object->last_name</td> |
|---|
| 22 | <td><a href='mailto:$email' title='" . sprintf( __('e-mail: %s' ), $email ) . "'>$email</a></td> |
|---|
| 23 | @@ -926,12 +929,26 @@ |
|---|
| 24 | <?php |
|---|
| 25 | } |
|---|
| 26 | |
|---|
| 27 | -function wp_dropdown_roles( $default = false ) { |
|---|
| 28 | +function wp_dropdown_roles( $selected = false ) { |
|---|
| 29 | global $wp_roles; |
|---|
| 30 | + |
|---|
| 31 | + // ORIGINALLY: only arg is $default. |
|---|
| 32 | + // if $default is given then when we get to it, it is set as selected. |
|---|
| 33 | + // NOW: arg name is changed to $selected |
|---|
| 34 | + // exact same effect, but now it makes sense for the user_edit.php version as well |
|---|
| 35 | + // where the highest role of the user can be passed in and used instead of |
|---|
| 36 | + // "default" which was what we wanted selected on the user listing page. |
|---|
| 37 | + // filter the roles to remove ones the logged-in user shouldn't |
|---|
| 38 | + // be able to apply to others, or whatever other filters people |
|---|
| 39 | + // might want. |
|---|
| 40 | + |
|---|
| 41 | + $role_names = $wp_roles->role_names; |
|---|
| 42 | + $role_names = apply_filters('role_names_listing', $role_names); |
|---|
| 43 | + |
|---|
| 44 | $r = ''; |
|---|
| 45 | - foreach( $wp_roles->role_names as $role => $name ) { |
|---|
| 46 | + foreach( $role_names as $role => $name ) { |
|---|
| 47 | $name = translate_with_context($name); |
|---|
| 48 | - if ( $default == $role ) // Make default first in list |
|---|
| 49 | + if ( $selected == $role ) // Make $selected first in list |
|---|
| 50 | $p = "\n\t<option selected='selected' value='$role'>$name</option>"; |
|---|
| 51 | else |
|---|
| 52 | $r .= "\n\t<option value='$role'>$name</option>"; |
|---|
| 53 | Index: wp-admin/user-edit.php |
|---|
| 54 | =================================================================== |
|---|
| 55 | --- wp-admin/user-edit.php (revision 7276) |
|---|
| 56 | +++ wp-admin/user-edit.php (working copy) |
|---|
| 57 | @@ -197,9 +197,23 @@ |
|---|
| 58 | <?php |
|---|
| 59 | // print_r($profileuser); |
|---|
| 60 | echo '<td><select name="role" id="role">'; |
|---|
| 61 | -$role_list = ''; |
|---|
| 62 | -$user_has_role = false; |
|---|
| 63 | -foreach($wp_roles->role_names as $role => $name) { |
|---|
| 64 | + |
|---|
| 65 | +// These are replaced by a direct check to the user object below |
|---|
| 66 | +//$role_list = ''; |
|---|
| 67 | +//$user_has_role = false; |
|---|
| 68 | + |
|---|
| 69 | +// ORIGINALLY : if the user has a cap, it is set as selected. |
|---|
| 70 | +// NOW : we use the argument in wp_dropdown_roles to define what is selected. |
|---|
| 71 | +// we will just use their primary role, defined in the same way as for |
|---|
| 72 | +// the role label on the user listing page. |
|---|
| 73 | + |
|---|
| 74 | +$user_roles = $profileuser->roles; |
|---|
| 75 | +$user_role = array_shift($user_roles); |
|---|
| 76 | + |
|---|
| 77 | +// old: go through roles, if one matches set selected and user_has_role |
|---|
| 78 | +// if it doesnt' match add empty one (--No Role for this Blog--).\ |
|---|
| 79 | + |
|---|
| 80 | +/* foreach($wp_roles->role_names as $role => $name) { |
|---|
| 81 | $name = translate_with_context($name); |
|---|
| 82 | if ( $profileuser->has_cap($role) ) { |
|---|
| 83 | $selected = ' selected="selected"'; |
|---|
| 84 | @@ -209,11 +223,27 @@ |
|---|
| 85 | } |
|---|
| 86 | $role_list .= "<option value=\"{$role}\"{$selected}>{$name}</option>"; |
|---|
| 87 | } |
|---|
| 88 | -if ( $user_has_role ) |
|---|
| 89 | - $role_list .= '<option value="">' . __('— No role for this blog —') . '</option>'; |
|---|
| 90 | +*/ |
|---|
| 91 | + |
|---|
| 92 | +// at the end, if there was a role selected add the roleless state |
|---|
| 93 | + |
|---|
| 94 | +// new: use wp_dropdown_roles(), this way the role list can be filtered. |
|---|
| 95 | + |
|---|
| 96 | +wp_dropdown_roles($user_role); |
|---|
| 97 | + |
|---|
| 98 | +// old: check if we found a matching role to determine whether stateless role |
|---|
| 99 | +// is selected |
|---|
| 100 | + |
|---|
| 101 | +//if ( $user_has_role ) |
|---|
| 102 | + |
|---|
| 103 | +// new: use our direct check value. |
|---|
| 104 | +if ( $user_role ) |
|---|
| 105 | + echo "\n\t".'<option value="">' . __('— No role for this blog —') . '</option>'; |
|---|
| 106 | else |
|---|
| 107 | - $role_list .= '<option value="" selected="selected">' . __('— No role for this blog —') . '</option>'; |
|---|
| 108 | -echo $role_list . '</select></td></tr>'; |
|---|
| 109 | +// if there was no role, make the roleless state selected. |
|---|
| 110 | + echo "\n\t".'<option value="" selected="selected">' . __('— No role for this blog —') . '</option>'; |
|---|
| 111 | + |
|---|
| 112 | +echo "\n</select>\n</td>\n</tr>"; |
|---|
| 113 | ?> |
|---|
| 114 | <?php endif; ?> |
|---|
| 115 | |
|---|