Список пользователей определённой роли
Данный код выведет список пользователей роли №3. Номера ролей можно посмотреть перейдя по ссылкам Administer → User management → Roles и наведя мышку на ссылку edit role. Последняя цифра в строке статуса будет номером роли.
<?php
$rid = 3;
$result = db_query("SELECT u.uid, u.name, u.status FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = %d AND u.status = 1", $rid); while ($u = db_fetch_object($result)) {
$items[] = l($u->name, "user/" . $u->uid);
}
return theme('item_list', $items);
?>То же самое, но список пользователей упорядочен по алфавиту.
<?php
$rid = 3;
$result = db_query("SELECT u.uid, u.name, u.status FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = %d AND u.status = 1 ORDER BY u.name ASC", $rid); while ($u = db_fetch_object($result)) {
$items[] = l($u->name, "user/" . $u->uid);
}
return theme('item_list', $items);
?>


Комментарии
А можно сделать тоже самое, но с аватаром
Тоже занятная таблица:
<?php
//choose the role to list by value.
// Note ID 1 = anonymous, ID 2 = authenticated user
// so valid values here are > 2.
$rid = 6 ;
?> <?php
$header = array(
array( 'data' => t ( 'Username' ), 'field' => 'u.name' , 'sort' => 'asc' ),
array( 'data' => t ( 'Status' ), 'field' => 'u.status' ),
array( 'data' => t ( 'Member for' ), 'field' => 'u.created' ),
array( 'data' => t ( 'Last access' ), 'field' => 'u.access' )
);
$sql = "SELECT u.uid, u.name, u.status, u.created, u.access FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid" ;
$sql .= tablesort_sql ( $header );
$result = pager_query ( $sql , 50 );
$status = array( t ( 'blocked' ), t ( 'active' ));
while ( $account = db_fetch_object ( $result )) {
$rows [] = array( theme ( 'username' , $account ),
$status [ $account -> status ],
format_interval ( time () - $account -> created ),
$account -> access ? t ( '%time ago' , array( '%time' => format_interval ( time () - $account -> access ))) : t ( 'never' ));
}
$output = theme ( 'table' , $header , $rows );
$output .= theme ( 'pager' , NULL , 50 , 0 );
print ( $output );
?>
Комментировать