function get_assigned_roles($scope, $role_basis, $src_or_tx_name, $args = array()) { global $wpdb; $defaults = array('id' => false, 'ug_id' => 0, 'join' => '', 'role_handles' => ''); $args = array_merge($defaults, (array) $args); extract($args); $id = is_string($id) ? (int) $id : $id; $ug_id = is_string($ug_id) ? (int) $ug_id : $ug_id; if (BLOG_SCOPE_RS == $scope) { return ScoperRoleAssignments::get_assigned_blog_roles($role_basis); } $roles = array(); switch ($role_basis) { case ROLE_BASIS_USER: $col_ug_id = 'user_id'; $ug_clause = $ug_id ? " AND user_id = '{$ug_id}'" : 'AND user_id > 0'; break; case ROLE_BASIS_GROUPS: $col_ug_id = 'group_id'; $ug_clause = $ug_id ? " AND group_id = '{$ug_id}'" : 'AND group_id > 0'; break; } $id_clause = false === $id ? '' : "AND obj_or_term_id = '{$id}'"; if ($role_handles) { if (!is_array($role_handles)) { $role_handles = (array) $role_handles; } $role_clause = $role_handles ? "AND role_name IN ('" . implode("', '", scoper_role_handles_to_names($role_handles)) . "')" : ''; } else { $role_clause = ''; } $qry = "SELECT {$col_ug_id}, obj_or_term_id, role_name, assign_for, assignment_id, inherited_from, date_limited, start_date_gmt, end_date_gmt, content_date_limited, content_min_date_gmt, content_max_date_gmt FROM {$wpdb->user2role2object_rs} AS uro " . "{$join} WHERE role_type = 'rs' {$role_clause} AND scope = %s AND src_or_tx_name = %s {$id_clause} {$ug_clause}"; $results = scoper_get_results($wpdb->prepare($qry, $scope, $src_or_tx_name)); foreach ($results as $role) { $role_handle = 'rs_' . $role->role_name; $roles[$role->obj_or_term_id][$role_handle][$role->{$col_ug_id}] = (array) $role; } return $roles; }
printf(__('Role Assignments Updated: %1$s for %2$s', 'scoper'), $roles_msg, $agents_msg); ?> </p></div> <?php } ?> <?php } // end submission response block // =========================== Display UI =============================== //$blog_roles[role_basis] [role_handle] [agent_id] = 1 $blog_roles = array(); foreach ($role_bases as $role_basis) { $blog_roles[$role_basis] = ScoperRoleAssignments::get_assigned_blog_roles($role_basis); } $assignment_modes = array(ASSIGN_FOR_ENTITY_RS => __('Assign', 'scoper'), REMOVE_ASSIGNMENT_RS => __('Remove', 'scoper')); ?> <div class="wrap agp-width97"> <h2><?php _e('Assign General Roles', 'scoper'); ?> </h2> <?php if (scoper_get_option('display_hints')) { echo '<div class="rs-hint">'; _e("Supplement any user's site-wide WordPress Role with additional, type-specific role(s). This does not alter the WordPress role.", 'scoper'); echo '</div>'; }