Cортировка тикетов по голосам like dislike
Всем привет.
Напишите пожалуйста как сделать сортировку тикетов по голосам like dislike.
Что то не получается.
Напишите пожалуйста как сделать сортировку тикетов по голосам like dislike.
Что то не получается.
Комментарии: 28
Если используете LikeDislike, то можете рейтинг писать в TV и по нему уже сортировать.
Можно подробней?)
Вызов тикетов надо через джойны получется делать?
Вызов тикетов надо через джойны получется делать?
Судя по документации ничего не нужно — getTickets работает на pdoTols и там должны быть доступны стандартные методы.
Естественно, вместо «rating» имя Вашей TV.
[[getTickets?
$includeTVs=`rating`
&sortby=`{ "rating":"ASC" }`
......
]]
Естественно, вместо «rating» имя Вашей TV.
Что то не получается, вызов like:
[[!LikeDislike?
&tpl=`up_down`
&likeId=`[[+id]]`
&rating=`type=1,tv=like,output=votes_up`
]]
Вызов тикет:[[!getTickets?
&element=`getTickets`
&tpl=`ticket`
&includeTVs=`like`
&sortby=`{ "like":"ASC" }`
]]
Выводит так: prntscr.com/n1gmja
TV like уже было или только сейчас сделали?
Значение туда пишется только в момент лайка и если создали только сейчас, то в них ничего нет.
Соответственно, нужно либо прописать текущие значения рейтинга, либо «пролайкать» заново.
Значение туда пишется только в момент лайка и если создали только сейчас, то в них ничего нет.
Соответственно, нужно либо прописать текущие значения рейтинга, либо «пролайкать» заново.
С начало удалил все лайки, создал TV, подключил и два раза лайкнул.
Не подскажите еще как посмотреть содержимое TV, что там точно есть лайки?
Не подскажите еще как посмотреть содержимое TV, что там точно есть лайки?
Если сделали его скрытым, то откройте, зайдите в редактор тикета и проверьте ).
Вы про «Тип ввода»?
Да, скрытый, а какой тогда лучше выбрать?
Да, скрытый, а какой тогда лучше выбрать?
Число или текст.
А в «Категория» like dislike выбрать получается?
Или tickets?
Или tickets?
Это вообще не важно.
Что то также
Проверил у себя, все работает.
Если дадите доступ в админку (почта в профиле), гляну.
Если дадите доступ в админку (почта в профиле), гляну.
Можете пожалуйста просто вызов показать?
А что там показывать — он такой как я выше написал:
Вывод, если направление ASC:
Вывод, если DESC:
В запросе сортировка есть:
Вывод, если направление ASC:
Вывод, если DESC:
В запросе сортировка есть:
А like dislike как вызывается?
И где?
И где?
Они никак не связаны. У Вас что в TV-шках? Проверили, значения там прописаны?
Я просто создал TV like и вбил туда 1 и 2, которые для теста вывожу рядом с заголовком:
Я просто создал TV like и вбил туда 1 и 2, которые для теста вывожу рядом с заголовком:
Кликните по «Предложения».
Справа откроется редактор, внизу будет таблица с тикетами и там Правый клик » Изменить:
Там вкладка Дополнительные поля (TV), на которой будет like:
И почитайте документацию — там много интересного )).
Справа откроется редактор, внизу будет таблица с тикетами и там Правый клик » Изменить:
Там вкладка Дополнительные поля (TV), на которой будет like:
И почитайте документацию — там много интересного )).
У меня нету дополнительные поля prntscr.com/n1i67p
Проблема оказывается то, что like dislike не записывает в tv, а так если в ручную написать, все работает.
Э… а Вы TV с шаблоном тикетов вообще связали?
С этим разобрался)
like в TV не хочет записывать что то
like в TV не хочет записывать что то
Можете xLike поставить — он тоже умеет в TV писать (в конце пример плагина).
Мне получается надо создать сниппет и этот код оттуда вызывать?
Если написано «плагин», значит надо создать именно плагин ).
Вот рабочий:
Обратите внимание на комментарий на третьей строке — там нужно поставить ID Вашей TV.
Ну и на вкладке «Системные события» не забудьте отметить флажок xLikeOnVote
Вот рабочий:
<?php
if($modx->event->name == 'xLikeOnVote'){
$tvid = 5; //тут вместо 5 - ID TV "like"
$tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => $tvid, 'contentid' => $parent
));
if($tvo){
$tvo->set('value', $rating);
}else{
$tvo = $modx->newObject('modTemplateVarResource', array(
'tmplvarid' => $tvid,
'contentid' => $parent,
'value' => $rating
));
}
$tvo->save();
}
Обратите внимание на комментарий на третьей строке — там нужно поставить ID Вашей TV.
Ну и на вкладке «Системные события» не забудьте отметить флажок xLikeOnVote
Все работает, спасибо!
.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.