Как вывести списки групп?

15 октября 2006 в 23:40

Подскажите, как на стандартной странице "profile" (да вообще где угодно) вывести списки групп (список имеющихся групп и их состав)? А также добавить видимое всем поле "группа" в профиль пользователей? А то по умолчанию получается, что группы для пользователей - тайна, покрытая мраком.

Комментарии

какие группы, роли что ли? А зачем пользователям их знать? Они же служебные.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

16 октября 2006 в 7:27

В том и дело, что пользователям необходимо знать принадлежность всех пользователей к ролям. В частности, это необходимо, чтобы пользователи корректно разграничивали права в модуле Gallery.

16 октября 2006 в 21:40

Зачем? Они же не могут сами себе права назначать.
---
---
All content management systems suck, Drupal just happens to suck less. -- Boris Mann at DrupalCON Amsterdam, August 2005.

16 октября 2006 в 22:21

сделать это не сложно, но есть один момент, пользователь может иметь несколько ролей сразу, получается этот пользователь будет встречатся в нескольких группах, а если список пользователей большой Smile

16 октября 2006 в 23:00

2Natalie: у пользователей по умолчанию полный доступ к администрированию собственных альбомов в Gallery.
2Konstantin: пользователей мало, около 40-50. Подскажите, какой функцией вывести пользователей группы X (желательно в том же виде, как это делается на странице /profile). Я буквально 2 недели назад с друпалом познакомился, не хватает времени API изучить ((

17 октября 2006 в 6:27

Выводит список пользователей, включая колонку Роли, думаю на основе этого уже можно допиать свое
http://drupal.org/node/8604


а здесь код, как выводить пользователей из определенных групп
http://drupal.org/node/63361

17 октября 2006 в 6:55

т.е. есди у нас есть роль "Авторы", за номером 3, то создаем страницу, как тип выбираем php
В содержимое вставляем

<?php
// здесь выбор какую роль показывать.
// ID 1 = гости, ID 2 = зарегестрированные
// остальные (выше 2) это созданные Вами роли
$rid = 3;
?>

<h2>A list of all users with Role ID <?php print $rid?></h2>

<?php
$header = array(
  array('data' => t('Username'), 'field' => 'u.name'),
  array('data' => t('Status'), 'field' => 'u.status'),
  array('data' => t('Member for'), 'field' => 'u.created', 'sort' => 'desc'),
  array('data' => t('Last access'), 'field' => 'u.access'),
  t('Operations')
);
$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'),
          l(t('edit'), "user/$account->uid/edit", array()));
}

$output = theme('table', $header, $rows);
$output .= theme('pager', NULL, 50, 0);
print ($output);
?>

Код взят с http://drupal.org/node/63361#comment-119888


Если все сделаете правильно, то получите что-то вроде:


[img]http://img88.imageshack.us/img88/6762/userstp3.png[/img]

17 октября 2006 в 7:08