<?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';
Общий рейтинг пользователей по голосованию за их работы (сниппет)
(пробовал сделать такое через 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);
Комментарии
Наверено никто не знает.
Сделал сниппетом в блоке
<?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);
?>
Общий рейтинг пользователей по голосованию за их работы (сниппет)
(пробовал сделать такое через 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_list= l($user->name,"user/$user->uid"); $rows[]=array($user_list, $row->ccc, $ball);
} $list = array( 'Участник', 'Кол-во голосов', 'Средняя оценка' );
$output = theme('table', $list, $rows);
print($output); ?>
результат
Лучшее из рейтингов. Просто и суперски
miss