Рейтинг активных пользователей

Главные вкладки

Аватар пользователя Arturus Arturus 2 ноября 2009 в 14:06

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

Комментарии

Аватар пользователя Arturus Arturus 18 ноября 2009 в 4:00

Наверено никто не знает.

Сделал сниппетом в блоке

<?php
$nblimit = 10;
$query = 'SELECT u.name, u.uid, v.value
FROM {votingapi_vote} v INNER JOIN {users} u ON v.content_id = u.uid
WHERE v.content_type="%s" AND v.value > %d
ORDER BY v.value 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->value)";
}

$output = theme('item_list', $list, NULL, 'ul', array('id'=>'user_list_', 'class' => 'user_list'));
print($output);
?>

Аватар пользователя Arturus Arturus 21 января 2010 в 15:05

Общий рейтинг пользователей по голосованию за их работы (сниппет)
(пробовал сделать такое через views, не получилось, если кто умеет, буду рад посмотреть)

<?php

$query 

"
SELECT AVG({votingapi_cache}.value) as rating, count({votingapi_cache}.value) as ccc, {node}.uid as uid
FROM {node}
INNER JOIN {votingapi_cache} ON {node}.nid = {votingapi_cache}.content_id
WHERE {votingapi_cache}.content_type = 'node'  AND {votingapi_cache}.function = 'average' 
GROUP BY {node}.uid ORDER  BY  ccc desc
LIMIT 20
"
;

$result db_query($query);

while ( 

$row db_fetch_object($result))
{
$ball=$row->rating;
$ball=round($ball*5/100,1);
//    print_r($row->uid.'-'.$row->ccc.' '.$ball.'<br>');
//theme('table', $label, array($row)).

//определяем имя пользователя

$query 'SELECT u.name, u.uid FROM  {users} u WHERE u.uid = '.$row->uid;
$user db_fetch_object(db_query($query));
$user_listl($user->name,"user/$user->uid");

$rows[]=array($user_list$row->ccc,  $ball);
}

$list =  array( 'Участник''Кол-во голосов''Средняя оценка' );
$output theme('table'$list$rows);
print(
$output);

?>

результат