Список пользователей и количество их материалов
Прислано: bnine
вт, 20/07/2010 - 18:09
Приветствую!
посоветуйте пожалуйста как создать список пользователей как тут http://fungraph.ru/authors
нужно вывести пользователей количество материала имим загруженного
еще желательно определить временные рамки для отсчета
это все нужно чтобы устроить на сайте еженедельные розыгрыши призов
заранее спасибо!!
- bnine's blog
- Для комментирования войдите или зарегистрируйтесь
1. запрос в базу, из таблицы выдергиваете все uid, это id пользователя, который добавил определенную ноду.
2. подсчитываете количество упоминаний для каждого uid'а, так получаете количество опубликованных материалов по каждому пользователю. Осталось узнать кто прячется за uid
3. дергаете по каждому, отличному друг от друга, uid'у из базы users поле name, получаете логины пользователей.
Может и проще есть способ
- Для комментирования войдите или зарегистрируйтесь
я сделал подобное при помощи модуля
views_groupby
http://drupal.ru/node/47416
- Для комментирования войдите или зарегистрируйтесь
я сделал подобное при помощи модуля
views_groupby
http://drupal.ru/node/47416
Пытаюсь добавить поле во вьюс - получаю ошибку
Error: handler for views_groupby > views_sql_groupedfields doesn't exist!
- Для комментирования войдите или зарегистрируйтесь
http://content-management-systems.info/drupal/snippet/329
- Для комментирования войдите или зарегистрируйтесь
1. запрос в базу, из таблицы выдергиваете все uid, это id пользователя, который добавил определенную ноду.
2. подсчитываете количество упоминаний для каждого uid'а, так получаете количество опубликованных материалов по каждому пользователю. Осталось узнать кто прячется за uid
3. дергаете по каждому, отличному друг от друга, uid'у из базы users поле name, получаете логины пользователей.
Может и проще есть способ
хз может и проще есть.
в пункт 1 добавлю.
надо еще дергать UID со статусом 1. Зачем блочиных считать.
а так все остальное также сделал бы.
- Для комментирования войдите или зарегистрируйтесь
И можно не дергать с uid равным 1 и вообще исключая uid'ы администраторов, менеджеров, модераторов сайта
- Для комментирования войдите или зарегистрируйтесь
<?php
$nblimit = 20;
$query = 'SELECT u.name, u.uid, count(n.uid) as ccc
FROM {node} n INNER JOIN {users} u ON n.uid = u.uid
WHERE n.type="тип материала"
GROUP BY n.uid ORDER BY ccc DESC';
$result = db_query_range($query, array('user', 0), 0, $nblimit);
$list = array();
while ($user = db_fetch_object($result)) {
$list[] = l($user->name,"user/$user->uid")." (материалов на сайте - $user->ccc)";
}
$output = theme('item_list', $list, NULL, 'ul', array('id'=>'user_list_', 'class' => 'user_list'));
print($output);
?>- Для комментирования войдите или зарегистрируйтесь





Комментарии