Tickets Пять проблем со сниппетов
1) Латинские символы в тексте сообщения и в имени пользователя отображаются в виде знаков вопроса ?????
2) Использую только сниппет комментариев, вызывая его как [[!TicketComments?]]
Проблема заключается в следующем, при добавление нескольких комментариев подряд, каждый последующий комментарий переписывает предыдущий. Но если перезагрузить страницу становятся видные все комментарии.
3) При нажатии на ссылку «изменить» появляется окно с надписью «comment-en-ns»
4) Как вывести в шаблоне количество просмотров и количество комментариев?
[[+tickets] [[+views]] — отображают только иноки и ни каких цифр. Нужно отображать количество даже на тех страницах где сниппет TicketComments не вызывается.
5) Как бороться со спамом? Ticket не только не фильтует спам, а напртив преобразует строку spam.com/page.html в активную ссылку.
2) Использую только сниппет комментариев, вызывая его как [[!TicketComments?]]
Проблема заключается в следующем, при добавление нескольких комментариев подряд, каждый последующий комментарий переписывает предыдущий. Но если перезагрузить страницу становятся видные все комментарии.
3) При нажатии на ссылку «изменить» появляется окно с надписью «comment-en-ns»
4) Как вывести в шаблоне количество просмотров и количество комментариев?
[[+tickets] [[+views]] — отображают только иноки и ни каких цифр. Нужно отображать количество даже на тех страницах где сниппет TicketComments не вызывается.
5) Как бороться со спамом? Ticket не только не фильтует спам, а напртив преобразует строку spam.com/page.html в активную ссылку.
Комментарии: 28
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
2. Смотри в консоль браузера, должна быть ошибка javascript.
3. Возможно, связано с предыдущей проблемой.
4. Получить ресурс через $object = $modx->getObject('Ticket',15), а потом нужные поля через $object->get('views') и $object->get('comments')
5. Блокировать спамеров. Вот тут есть плагин, как разлогинивать заблокированных юзеров с сайта. Автоматическое создание ссылок можно отключить в параметрах Jevix, наборы Ticket и Comment.
Также можно написать свой плагинчик, который будет банить юзеров автоматом, при попытке запостить определённые слова.
У меня такой проблемы пока не возникало.
2,3) Скорее всего да, проблема с javascript, как обнаружить и решить проблему?
4) Не очень понятно как применить этот пункт на практике. Можно по подробнее пожалуйста.
5) Разобрался, спасибо.
Пробовал $id = $modx->resource->get('id'); — не помогло. Создал сниппет
$id = $modx->resource->get('id');
$q = $modx->newQuery('modResource', $id);
$q->leftJoin('TicketThread','TicketThread', "`TicketThread`.`name` = 'resource-{$id}'");
$q->leftJoin('TicketComment','TicketComment', "`TicketThread`.`id` = `TicketComment`.`thread`");
$q->select('COUNT(`TicketComment`.`id`) as `comments`');
$count = 0;
if ($thread = $modx->getObject('TicketThread', array('resource' => $id))) {
echo $thread->get('comments');
}
return $count;
Если вставить вызывать этот сниппет в чанк для сниппета getResources, то возвращается id не ресурсов с которыми работает getResources, а id текущего ресурса.
Вызов:
Если я правильно понимаю, то получить количество просмотров комментариев я не смогу.
Сниппет считает только просмотры непосредственно тикетов. Если я вывожу только сниппет комментариев TicketComments под новостями, то подсчет количества просмотров производится не будет.
По крайней nf,kbwf мере modx_tickets_views в БД пустая.
Вопросы 1-3 касательно кодировки и ошибки в JavaScrip еще актуальны
Просмотры тикета считает сам класс Ticket при его показе юзеру. Делается это для вывода юзеру количества непрочитанных комментариев в тикете.
Зачем считать показы комментариев — не знаю.
оказалось, что таблицы то были в UTF-8, а вот поля в swedish
ps Консоль ошибок не выдает
ID коммента не отдает, если юзер залогинен через сниппет Login, а если через Loginza или HybridAuth, тогда все нормально.
Подскажите пожалуйста, в какую сторону копать. Спасибо!
Как это может мешать — не представляю. Тем более, как это может зависеть от способа регистрации?
Короче, непонятно. Подождём еще подобных сообщений.
2. Даже если и наоборот — хоть какой-то id должен быть, так ведь? Пустого id в таблицах MODX не бывает.
это если сам себе отвечаешь) и редактировать его нельзя.
в функции getChunk
сделала print_r($properties), вывелось:
id на коммента есть.
print_r($pl) — Т.е. При регистрации через сниппет Register у пользователя создавалось 2 дополнительных поля: nospam и registerbtn. (по имени полей в форме регистрации). И они подставлялись вместо id и internalKey.
Решилось добавлением в вызов Register параметра
Василий, спасибо большое вам за помощь и за ваши труды!
Как продолжу писать Tickets — разберусь.