Рейтинг пользователя - общий, тикеты и комментарии
1 500
Выводим рейтинг пользователя как на modx.pro joxi.ru/eAOYVYPI476nQm
Т.е., выводим рейтинг общий, рейтинг за тикеты (Tickets) и рейтинг за комментарии.
1. Создаем сниппет getAuthorRating:
И вывод списка пользователей как на modx.pro/users/:
За решение спасибо modx.pro/users/panama/
Всех приветствую. Нужен вариант вывода общего рейтинга пользователя, рейтинга за тикеты и рейтинга за комментарии. Как на modx.pro joxi.ru/eAOYVYPI476nQm
Деньги отправлю за вариант с наименьшим кол-вом операций и запросов к БД. Ваши варианты предлагайте в комментариях.
Заранее благодарен.
Т.е., выводим рейтинг общий, рейтинг за тикеты (Tickets) и рейтинг за комментарии.
1. Создаем сниппет getAuthorRating:
<?php
$userId = intval($userId);
if ($author = $modx->getObject('TicketAuthor',$userId)) $modx->setPlaceholders($author->toArray());
return;
2. Там где нужно вывести рейтинг:[[!getAuthorRating? &userId=`[[+ID_пользователя]]`]]
<p>Рейтинг [[+rating]]</p>
<p>Рейтинг тикетов + [[+votes_tickets_up]] / - [[+votes_tickets_down]]</p>
<p>Рейтинг комментариев + [[+votes_comments_up]] / - [[+votes_comments_down]]</p>
И вывод списка пользователей как на modx.pro/users/:
[[!pdoPage?
&element=`pdoUsers`
&tpl=`users_list_tpl`
&sortdir=`asc`
&leftJoin=`{"Author":{"class":"TicketAuthor","on":"Author.id=modUser.id"}}`
&select=`{"modUser":"*", "Author":"createdon,visitedon,tickets,comments,rating"}`
]]
Чанк users_list_tpl может содержать эти плейсхолдеры:
[[+createdon]] — дата регистрации
[[+visitedon]] — дата последней активности
[[+tickets]] — количество тикетов
[[+comments]] — количество комментариев
[[+rating]] — общий рейтинг
За решение спасибо modx.pro/users/panama/
Деньги отправлю за вариант с наименьшим кол-вом операций и запросов к БД. Ваши варианты предлагайте в комментариях.
Заранее благодарен.
Комментарии: 8
Создаем сниппет getTicketAuthor
В чанке профиля, где необходимо вывести информацию о рейтинге, вставляем:
<?php
$userId = intval($userId);
if ($author = $modx->getObject('TicketAuthor',$userId)) $modx->setPlaceholders($author->toArray());
return;
В чанке профиля, где необходимо вывести информацию о рейтинге, вставляем:
[[!getTicketAuthor? &userId=`[[+internalKey]]`]]
<p>Рейтинг [[+rating]]</p>
<p>Рейтинг тикетов + [[+votes_tickets_up]] / - [[+votes_tickets_down]]</p>
<p>Рейтинг комментариев + [[+votes_comments_up]] / - [[+votes_comments_down]]</p>
Спасибо за вариант. Куда перевести деньги?
Это сообщение было удалено
Спасибо!
Просьба к Василию, удалить комментарий выше или убрать из него реквизиты. Спасибо :)
P.S. мало все таки времени для редактирования комментария.
P.S. мало все таки времени для редактирования комментария.
Можно отправлять письмо из профиля, если нужно сообщить что-то конфиденциальное. Другое дело, что возможность активна не у всех.
Вот еще вариант для списка пользователей:
[[+createdon]] — дата регистрации
[[+visitedon]] — дата последней активности
[[+tickets]] — количество тикетов
[[+comments]] — количество комментариев
[[+rating]] — общий рейтинг
[[!pdoPage?
&element=`pdoUsers`
&tpl=`users_list_tpl`
&sortdir=`asc`
&leftJoin=`{"Author":{"class":"TicketAuthor","on":"Author.id=modUser.id"}}`
&select=`{"modUser":"*", "Author":"createdon,visitedon,tickets,comments,rating"}`
]]
[[+createdon]] — дата регистрации
[[+visitedon]] — дата последней активности
[[+tickets]] — количество тикетов
[[+comments]] — количество комментариев
[[+rating]] — общий рейтинг
Отправил спасибо. :)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.