[Tickets] Превращаем комментарии в отзывы

С ajax и смайликами разобрались. Теперь осталось только поколдовать, чтобы комментарии выглядели как отзывы, чтобы посетители видели примерно вот такое:




Процесс этот сложный самый. Сконцентрировались! И да пребудет с вами сила. Нужно взять этот файл и положить его в assets/components/tickets/css/web. Затем идем в настройки системы, выбираем раздел Tickets и указываем в параметре Стили фронтенда значение
[[+cssUrl]]web/reviews.css
Конечно, положить можно в любое место. Главное, потом в системных настройках указать куда.

Теперь вызываем сниппет с параметром formBefore=`1`, чтобы последние комментарии шли первыми и форма выводилась сверху:
[[!TicketComments? &formBefore=`1` &gravatarSize=`64`]]
Чтобы использовать дополнительные возможности: ajax и смайлики, нужно немного потрудится и объединить все в один сниппет.
Конечно, этот css-файл — это заготовка и возможно придется немного подогнать его под себя. Но это уже сущие мелочи.

Резюме
Книга отзывов готова. И сделать ее оказалось совсем не сложно. И это еще не все, что позволяет делать замечательный компонент Tickets, который придумал и сделал для нас Василий. И чтобы отблагодарить автора, не забывайте размещать на сайте иконки Tickets вот отсюда.
Также хочу дать совет начинающим — не бойтесь экспериментировать. Тем более, что здесь всегда помогут.
Сергей Шлоков
07 ноября 2014, 19:19
modx.pro
9
11 490
+8
Поблагодарить автора Отправить деньги

Комментарии: 53

Андрей
08 ноября 2014, 11:15
4
+8
Также хочу дать совет начинающим — не бойтесь экспериментировать.
А мы и не боимся… На тикетах недавно форум собрал: vsemee.kz/forums/
    Сергей Шлоков
    08 ноября 2014, 13:10
    0
    И чтобы отблагодарить автора, не забывайте размещать на сайте иконки Tickets вот отсюда.
      Василий Наумкин
      08 ноября 2014, 13:30
      0
      Однако, впечатлил.
        Андрей
        08 ноября 2014, 14:52
        +1
        Спасибо Василий за обалденный компонент.
        Mihan
        08 ноября 2014, 13:34
        0
        Круто!

        Позвольте поинтересоваться, а чем обосновано изобретение колеса? Есть ли у tickets преимущества перед специальными форумными-движками? Или чисто спортивный интерес?
          Андрей
          08 ноября 2014, 14:55
          0
          Преимущества? Так ведь тикеты, в отличии от форумов, родной для MODX-a компонент.
          Wassi Wassinen
          08 ноября 2014, 21:30
          0
          Делись опытом :)
            Андрей
            08 ноября 2014, 22:06
            1
            0
            Если коротко, то в бекенде дерево форума построено следующим образом:



            Во фронтенде оформление форума достигнуто с помощью сниппетов getTicketsSections и getTickets, а также верстки (в том числе пришлось подправить чанки Tickets)
            Для отправки сообщений используется компонент SocialTools.

              Саша Пекшев
              08 ноября 2014, 23:58
              +1
              надо довести до ума SocialTools ) уже работаю над новой версией, до конца года должен быть живой поиск пользователя в поле «кому», и оповещения на емаил — которые я скорей всего украду из Tickets =)… Дополнение слегка забросил из-за физ. проблем
                Wassi Wassinen
                09 ноября 2014, 03:34
                +1
                Это был бы отличный подарок для многих к новому году. :)
                  Андрей
                  09 ноября 2014, 05:11
                  0
                  Компонент SocialTools очень полезный для социализации MODX. Чего в нём действительно не хватает, так оповещения на e-mail. Ждем :)
                    Сергей Шлоков
                    09 ноября 2014, 08:33
                    0
                    Саш, провокационный вопрос, а ты не думал, что в Tickets это все уже есть? Нужно только шаблон изменить и js чуть подправить. Но при условии, конечно, что особых требований к админке нет.
                      Саша Пекшев
                      09 ноября 2014, 14:06
                      0
                      Если вы про емаил оповещения, то я так и сказал что «позаимствую» из Tickets =), надеюсь Василий не будет против, конечно как вы и сказали там подправлю, а так это все уже конечно есть в Tickets. И что б пользователь смог отключить у себя это в профиле
                    Wassi Wassinen
                    09 ноября 2014, 03:36
                    0
                    Спасибо за ответ. Я, в целом, примерно представлял как у тебя реализован форум. Говоря, — «Делись опытом», — я имел ввиду статью «Как я использовал Тикетс» или что-то подобное. Многим не хватает фантазии, чтобы представить, что Тикетсы можно использовать как форум или как книгу отзывов. :)
                      Андрей
                      09 ноября 2014, 05:08
                      +2
                      Я понял, что надо более развернуто описать как сделано. Но как всегда со временем туго. Если тема форума на тикетах будет многим интересна, засяду за написание. Хотя, как мне кажется, для пользователей знакомых с компонентом Tickets секрета в подобной реализации быть не должно.
                        Алексей Федоров
                        07 ноября 2015, 13:52
                        0
                        Надеюсь, время однажды появится =) ОЧЕНЬ интересно как это сделано. Мне, например, хватает фантазии, чтобы представить как Тикеты превращаются в форум. Функционал-то по сути весь имеется. К сожалению, не хватает конкретных знаний. С modx только начал разбираться и многое пока неясно. С фронтендом все еще более-менее понятно. Меняем чанки тикета и комментария (по сути они одинаковые должны быть, насколько понимаю). А вот как реализовать не древовидные ответы уже вопрос интересный. Ну и т.д.

                        Короче, с нетерпением ожидаю и готов поспорить, что таких ожидающих тьма-тьмущая.
                          Максим Кузнецов
                          07 ноября 2015, 13:59
                          +1
                          Не древовидные ответы — в TicketComments параметр &depth=`1`, если не путаю.

                          Тоже все никак руки не дойдут сделать на тикетах форум: tickets + office + msearch2 дадут почти исчерпывающий результат. Единственное, вопрос в оптимизации.)
                            Алексей Федоров
                            07 ноября 2015, 14:13
                            0
                            Не древовидные ответы — в TicketComments параметр &depth=`1`
                            Увы, нет(( это дает нам дерево с одним уровнем вложения. При простановке 0 включается неограниченное ветвление. Буквально недавно Василий ответил, что этот функционал еще не реализован. Насколько понимаю, Konstantin сейчас бьется над реализацией именно форума на основе тикетс. То есть получается, что все по очереди изобретают свои велосипеды =) Вообще жду с нетерпением гайда по созданию форума из разряда how to. Office — шикарный ЛК. ЛС можно реализовать через SocialTools, жаль что так и не прикручена строка с автоподстановкой, но это и не самое главное в форуме.

                            Как надумаешь делать, учитывай, пожалуйста нубов вроде меня)
                            Андрей
                            07 ноября 2015, 16:45
                            +1
                            А вот как реализовать не древовидные ответы уже вопрос интересный
                            Достаточно у комментариев убрать ссылку «ответить» и никаких древовидных комментариев уже не будет. Нужно просто шире смотреть на вещи…

                            Я не знаю php, поэтому на форуме используются стандартные сниппеты Tickets, подправлены только чанки, а внешний вид достигается версткой, которую Вы можете просто скопировать с моего сайта, как сделал один веб-мастер: он у меня один раз попросил небольшой помощи и по-сути справился сам.
                              Алексей Федоров
                              07 ноября 2015, 17:41
                              0
                              Кошмар! Я даже не подумал об этом =)
                              Таки да, это решает, но тогда это больше чат напоминает (( Так что, придется самому прикручивать js скрипт цитирования на уже неродную для компонента кнопку Ответить. И ждать, когда в Tickets появится &tree='0'
                              Спасибо за открытие мне глаз =) Сильно помог ответ. Теперь хоть ясно куда копать при отсутствии знаний php.
                    Sergey Leleko
                    09 ноября 2014, 23:47
                    0
                    Андрей, круто реализовано! Мне нравится )

                    Конечно и дизайнер постарался над мелочами.
                      Павел Левин
                      18 ноября 2014, 16:37
                      0
                      Сам по себе ресурс громадный такой, много разных блоков, весь на modx?
                      Алексей Федоров
                      06 апреля 2017, 15:29
                      0
                      Хмм… никак не получается вывести данные по последнему комментарию.

                      Как можно такое реализовать?
                      Вставляю в Tickets.list.row вызов сниппета TicketLatest с параметром comments, но в итоге все ломается. Насколько понимаю, getTickets подхватывает параметр &limit.
                        Андрей
                        06 апреля 2017, 16:19
                        0
                        Это данные не по последнему комментарию, а информация об авторе тикета. Вывожу так:
                        [[!pdoPage? &element=`getTickets` &tpl=`tpl.Tickets.sections.forum-tema`]] [[!+page.nav]]
                          Алексей Федоров
                          06 апреля 2017, 17:48
                          0
                          Спасибо. Последний комментарий вывести все равно хочется. Попробую приджойнить
                      Артур
                      11 ноября 2014, 08:52
                      0
                      Ребята, в чем отличие плейсхолдера [[+comments]] от [[+total]]. Просто в tickets.latest они оба выводят количество комментариев тикета
                        Aртур Чикин
                        11 ноября 2014, 08:59
                        +1
                        Один выводит если не ошибаюсь количество всех комментариев, а второй новых.
                          Василий Наумкин
                          11 ноября 2014, 10:05
                          0
                          total выставляет pdoTools — там всегда общее количество результатов выборки. Вполне возможно, что ты видишь [[+total]] от вызова другого pdo-сниппета, если не указывал отдельный &totalVar.

                          comments — количество комментариев тикета, как и положено.
                          panov_a_v
                          11 ноября 2014, 20:04
                          0
                          Сергей, напишите, пожалуйста ещё и о том, как Вы на тестовом сайте сделали у формы кнопку «Закрыть» и убрали из панельки кнопки «Добавить ссылку» и «Добавить изображение». Я в Jevix отменил эти теги, но кнопки-то срабатывают.
                          Спасибо.
                            Сергей Шлоков
                            12 ноября 2014, 08:39
                            1
                            0
                            Кнопка Закрыть
                            1. Добавить кнопку в формы tpl.Tickets.comment.form и в tpl.Tickets.comment.form.guest.
                            <div class="form-actions">
                               <input type="button" class="btn btn-default preview" value="[[%ticket_comment_preview]]" title="Ctrl + Enter" />
                               <input type="submit" class="btn btn-primary submit" value="[[%ticket_comment_save]]" title="Ctrl + Shift + Enter" />
                               <a class="btn btn-default cancel" href="#" title="Esc">[[%ticket_comment_close]]</a>
                               <span class="time"></span>
                            </div>
                            2. Отредактировать assets/components/tickets/js/web/default.js. А лучше сделать копию, в нее внести изменения и подключить в настройках Tickets.

                            Ссылки «Добавить ссылку» и «Добавить изображение»
                            Убрать их можно в системных настройках в разделе Tickets — параметр «Настройка редактора комментариев». Там и убираешь ненужные кнопки.
                              panov_a_v
                              12 ноября 2014, 13:13
                              0
                              Спасибо, Сергей.
                              Кнопки убрал в настройках.
                              А с кнопкой «Закрыть» что-то не вышло. В скрипт изменения внёс, в чанки добавил код. Выводится в итоге: i.gyazo.com/1941b07f5fde7141d8ff4e7d3f07a09d.png. И по ссылке перебрасывает на главную страницу.
                                Сергей Шлоков
                                12 ноября 2014, 13:33
                                0
                                Значит не срабатывает событие.
                                У кнопки «Закрыть» должен быть класс cancel
                                <a class="btn btn-default cancel" href="#" title="Esc">[[%ticket_comment_close]]</a>
                                И чтобы кнопка называлась «Закрыть» надо или в лексиконе добавить ключ ticket_comment_close со значением Закрыть или вместо плейсхолдера [[%ticket_comment_close]] написать «Закрыть» —
                                <a class="btn btn-default cancel" href="#" title="Esc">Закрыть</a>
                                Если так и не работает, проверь скрипт. Если создал копию, то ее нужно в настройках указывать.
                                  panov_a_v
                                  12 ноября 2014, 14:42
                                  0
                                  Сергей, спасибо. Получилось, когда класс «cancel» заменил на «close». Ведь в комментарии к исправленному скрипту ты писал, что в 74 строке надо поменять на «close». Я просто потом забыл поменять и в чанке.
                                    Сергей Шлоков
                                    12 ноября 2014, 14:48
                                    0
                                    Классы в чанке и скрипте должны совпадать. Я предложил тебе изменить в чанке, ты изменил в скрипте. Результат в любом случае будет одинаковый.
                                    Главное, что работает. :)
                                      panov_a_v
                                      12 ноября 2014, 15:04
                                      0
                                      Да. :) Ещё раз спасибо.
                            Wassi Wassinen
                            27 ноября 2014, 22:34
                            0
                            Сергей, а вы не думали о том, как отправлять благодарственное письмо клиентам, которые отправили отзыв?

                            Заранее благодарен.
                              Сергей Шлоков
                              06 января 2015, 16:08
                              0
                              Честно, не думал. Мне кажется это немного навязчиво.
                              П.С. Сорри за поздний ответ. Только сегодня увидел. Отключил уведомление, так как много комментариев не по теме.
                              panov_a_v
                              19 декабря 2014, 21:52
                              0
                              Сергей, скажите пожалуйста, а можно ли сделать так, чтобы сортировка отзывов/комментариев первого уровня шла от старых к новым, а не наоборот?
                                Сергей Шлоков
                                06 января 2015, 16:07
                                0
                                За это отвечает параметр &formBefore в сниппете.
                                  panov_a_v
                                  06 января 2015, 20:36
                                  0
                                  Сергей, а &formBefore разве не просто за расположение формы комментирования до или после комментариев отвечает? Не думал, что и за сортировку тоже.
                                    Сергей Шлоков
                                    06 января 2015, 21:32
                                    +2
                                    Книга Tickets, глава Tickets 1.0.0 rc, стих Сниппет TicketComments, заповедь №7 и №8:
                                    — [#7] Добавлен параметр “formBefore” для сниппета TicketComments, который указывает, выводить ли форму комментирования перед веткой комментариев.
                                    — [#8] Добавлена возможность менять направление показа комментариев. Она привязана к параметру “formBefore”. Если форма вверху, то более новые комментарии тоже показываются вверху, то есть сортировка снизу-вверх.
                                    Кто не будет исполнять сии заповеди, да не сможет управлять сортировкой.
                                    :)
                                      panov_a_v
                                      06 января 2015, 22:25
                                      0
                                      Спасибо, Сергей.
                                      Я-то описание на simpledream читал, а там не написано, по-моему.
                                        Wassi Wassinen
                                        07 января 2015, 00:11
                                        0
                                        :)))
                                  Кирилл
                                  13 июня 2017, 13:34
                                  0
                                  подскажите как скажем вывести в данном случае отзывы на главную страницу в ротации -3 одного ресурса??????
                                    Кирилл
                                    13 июня 2017, 15:39
                                    0
                                    спасибо сам разобрался [[!getComments?
                                    &parents=`0`
                                    &resources=`14`
                                    &limit=`3`
                                    &tpl=`tpl.Tickets.rewievs.latest`
                                    &action=`comments`
                                    &includeContent=`1`
                                    ]]
                                    Кирилл
                                    13 июня 2017, 15:41
                                    0
                                    Надо сказать, что в документации, данного вызова нет!
                                    Sergey (Sentinel)
                                    11 августа 2017, 10:08
                                    0
                                    Подскажите, хочу поменять html editor на этот getuikit.com/v2/docs/htmleditor.html
                                    нужно ли какие то js по default удалить? а то что то не работает
                                      Марат
                                      13 сентября 2020, 21:20
                                      0
                                      @Сергей Шлоков, подскажи пожалуйста, как ты сделал так, что бы форма добавления отзыва не отображалась по-умолчанию, а только при клике по кнопке — «Написать отзыв»?
                                        Николай Савин
                                        14 сентября 2020, 10:23
                                        0
                                        К Сергею лучше обращаться на его сайте Modzone
                                        Если не ошибаюсь, он здесь больше не появляется. Хотя может и читает.
                                        Sparklingman
                                        11 июня 2021, 13:54
                                        0
                                        Добрый день! Задача стоит такая. В комментах Tickets нужно чтобы пользователь опубликовал всего один комментарий в одном ресурсе, и больше не смог, и форму убираем. Как мне прописать в снипетах Tickets? Есть советы? А то голову ломаю)
                                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                          53