Вы здесь

Информация. Первая десятка блогеров

Версия системы: 
Друпал 5

Код выводит список из 10 пользователей, которые больше всего писали в блогах.

Сообщение вида:

* Псевдоним 1
* Псевдоним 2
* Псевдоним 3

<?php
  $users
= db_query('
    SELECT
      COUNT(nid) AS count,
      u.uid,
      u.name
    FROM
      {node} n
    LEFT JOIN
      {users} u
    ON
      n.uid = u.uid
    WHERE
      n.uid != 0
    AND
      n.type = \'blog\'
    GROUP BY
      uid
    ORDER BY
      count DESC
    LIMIT 10'
 
);
 
$list = array ();
  while (
$user = db_fetch_object($users)) {
   
$list[] = l($user->name, 'blog/'.$user->uid); // Для ссылки на профиль пользователя слово "blog" заменить на "user"
 
}
  print
theme('item_list', $list);
?>

UPD 05.02.2008: Separator@drupal.org

Комментарии

Изображение пользователя Valeratal

этот снипет выводит в строчку
А как сделать в столбик?

Изображение пользователя Valeratal

и еще вопросик, а как сделать чтобы ссылки вели на не блоги а на профили?

Изображение пользователя drupal.org.ru

Чтобы на профили, то в строке:
print ".<a href="blog/".$user->uid."">".$user->name."</a> ";
blog поменять на user, а для строчек поставить <ul> или <ol>, получиться:

<?php
$users
= db_query("SELECT COUNT(nid) AS count, {users}.uid, {users}.name FROM {node} LEFT JOIN {users} ON {node}.uid = {users}.uid WHERE {node}.uid != 0 GROUP BY uid ORDER BY count DESC LIMIT 10");
while (
$user = db_fetch_object($users)) {
    print
"<ul> <a href="user/".$user->uid."">".$user->name."</a> </ul>";
}
?>

Изображение пользователя Valeratal

хм, у меня почему то все равно
ссылка вида
/node/user/1

то есть node лишнее

Изображение пользователя Valeratal

Ап

Изображение пользователя Separator@drupal.org

<a href="user/"
заменить на
<a href="/user/"

Изображение пользователя Pavel

А как добавить аватар пользователя, желательно из imagecash?