[Tickets] Версия 1.0.0 rc2

В нашем репозитории доступна новая версия компонента для создания пользовательских страниц и комментариев.
В этой версии, по большому счету, одно изменение — работа с новыми комментариями.

Наконец-то, появился индикатор новых сообщений, навигация по ним, выделение и загрузка при отправке. Логика работы целиком взята с habrahabr.ru, однако реализация своя собственная.

Ранее уже была добавлена индикация уровня комментария точками слева при наведении.

Предлагаю обновиться и протестировать. Что нужно знать:
1. изменены 2 чанка: tpl.Comment.one.auth (чтобы выводить дополнительный класс для новых комментов) и tpl.Comments.wrapper (добавлен html для индикатора). Нужно просмотреть эти чанки и обновить у себя вручную.

2. эта функция работает только для авторизованных пользователей, ибо только для них фиксируется время последнего просмотра ресурса, а именно от него зависит, есть непрочитанные комментарии или нет.

На этом сайте, конечно, последняя версия уже установлена и общаться сразу стало гораздо приятнее. По крайней мере, заходя в тему сразу видишь, что ты уже читал, а что — нет.

Как видите, у работы только с авторизованными пользователями есть свои плюсы. Quip такую штуку принципиально не сможет внедрить.

Обновлено 30.05.13

Залил новую версию rc3 с исправлениями и улучшениями:
— нормально работает редактирование комментария.
— новый комментарий вставляется в страницу сразу же, а не вместе со всеми новыми.
— плавная прокрутка к только что написанному комменту.
— немножко ускорена выборка непрочитанных комментов.
— более приятный цвет выделения нового коммента.

В общем, на мой взгляд, дальше улучшать уже некуда.

Следующая заметка
[miniShop2] Версия 2.0.1-beta2
Предыдущая заметка
[mSearch] Фильтрация товаров в MS2


Комментарии ()

  1. Евгений Борисов 29 мая 2013, 22:34 # 0
    одно изменение — работа с новыми комментариями
    А как же фикс хеша для gravatar и расстановка новых событий работы с комментарием (new, update)? В changeLog-е тоже пусто. Откатил чтоли?
    1. Василий Наумкин 29 мая 2013, 22:36 # 0
      Как обычно — чего сам не делал, про то и забыл. Это потому что в коммитах никто не заполняет changelog, а я их просто аппрувлю.

      Да, есть фикс генерации gravatar и уточнение режима при сохранении коммента. Спасибо, Евгений!
    2. Виктор Долгий 29 мая 2013, 23:34 # 0
      И в 1000-ый раз спасибо, и, отдельно, за Что нужно знать, чтобы на Гит лишний раз не ходить)))
      1. Алексей Карташов 30 мая 2013, 01:18 # 0
        Отлично, просто отлично! Спасибо большое за труды)
        1. Алексей Карташов 01 июня 2013, 01:27 # 0
          Кстати, Василий, на хабре есть такая тонкость — ссылка на пост в превью этого поста с количеством комментариев (и количеством не прочитанных комментариев), ведёт не на якорь #comments, а на #first_unread, при открытии статьи перебрасывая, соответсвенно, на первый новый для этого пользователя комментарий.
          Эх, тяжело объяснил. Ну типа вот так:


          Понятное дело, что это ни сколько не критично. Просто для информации, может ты вообще это не видел)
          1. Василий Наумкин 01 июня 2013, 04:09 # 0
            Ни разу не обращал внимания, если честно.

            Добавил в хотелки, спасибо.
            1. Алексей Карташов 01 июня 2013, 09:50 # 0
              Да мне-то за что)
          2. Александр Донский 02 июня 2013, 23:24 # 0
            Василий, ты не думаешь сделать блок «Популярные (Лучшие) записи» и выводить в нем наиболее (просматриваемые/комментированные тикеты)? И кнопку «Мне нравится» для тикета?
            1. Василий Наумкин 03 июня 2013, 14:22 # 0
              Может быть, позже.

              Когда заняться будет нечем.
            2. Виталий Греков 03 июня 2013, 02:16 # 0
              Попытаюсь, скажите, а возможно ли делать поставку расширения в виде полного комплекта для старта блога на ModxR
              Скажем, чтоб была уже вся структура, куда секции добавлять, главная с тикетами, страница секций ну и т.д.
              Другими словами скачал, создал секции, настроил группу и аутентификацию пользователей, и все, можно вести блог.
              Вообще смотрю и так все комфортно. Спасибо Вам!
              1. Сергей Шлоков 03 июня 2013, 22:08 # 0
                Василий, а в твоем блоге ты не планируешь включить возможность редактирования пользователем своих тикетсов?
                1. Василий Наумкин 03 июня 2013, 22:30 # 0
                  Эта возможность включена с самого начала.

                  Только для самых внимательных, конечно.
                  1. Сергей Шлоков 03 июня 2013, 23:26 # 0
                    Видимо, в силу возраста, уже не могу похвастаться этим качеством. Сдаюсь. Не могу найти эту заветную кнопку «Редактировать».
                    1. Василий Наумкин 04 июня 2013, 06:21 # 0
                      Слева от названия твоего тикета должна быть иконка
                2. Мордынский Николай 04 июня 2013, 16:40 # 0
                  Василий есть ли возможность ограничить права публикации на определенный раздел?
                    1. Мордынский Николай 05 июня 2013, 17:00 # 0
                      Спасибо… )
                  1. Мордынский Николай 04 июня 2013, 17:06 # 0
                    Имеется ввиду к примеру есть 4 раздела в 1 из разделов могут писать только админы но виден он всем. А в 3 остальных могут писать все кто авторизовался, в каком направлении смотреть что бы такое на тикетах реализовать.
                    1. Мордынский Николай 04 июня 2013, 17:26 # 0
                      Пока мысль сделать 1 раздел ресурсоа и 3 тикетами и выводить секции гетресурсом а уже всекциях выводить либо тикеты либо новости
                      1. Мордынский Николай 04 июня 2013, 23:19 # 0
                        может кто делал похожее поделитесь опытом ау)
                        1. Александр Донский 04 июня 2013, 23:24 # 0
                          все ушли спать… *зевает*
                        2. Марина Шипилова 07 июня 2013, 05:44 # 0
                          Спасибо большое за ваш труд, Василий. Подскажите, пожалуйста, как с этим бороться + пожелания:
                          1.По поводу бесплатности Tickets — это здорово, но с другой стороны — лучше бы он был платным с документацией и техподдержкой)))
                          2. В yandex-почте не отображаются ссылками «Ответить» и название тикета.
                          3. Если отключена автопубликация, жаль в уведомлении на почте нет «Опубликовать». Так как тогда теряется смысл кнопки «Ответить».
                          4. При ответе на комментарий (при отключенной автопубликации) уведомление об этом ответе приходит автору комментария, даже если ответ еще не опубликован администратором. Это нелогично и неудобно.
                          5. Если &autoPublish=`0`: если написать комментарий, то во второй раз это сделать не перезагрузив страницу нельзя. Почему?
                          1. Марина Шипилова 07 июня 2013, 17:07 # 0
                            на 2 вопрос — все ок стало после того, как я прописала
                            [[~[[+resource]]? &scheme=`full`]]
                            вместо
                            [[~[[+resource]]]]
                            в чанках по уведомлениям.
                            1. Василий Наумкин 07 июня 2013, 17:48 # 0
                              1. Так получилось, сейчас уже поздно что-то менять.
                              2. Надо смотреть какая ссылка выходит. Я вообще делаю /[[+uri]]
                              3. И не будет такого никогда, ибо уведомения ходят не только модератору, а любому, кому ответили на коммент
                              4. Да я уже 10 раз пожалел, что повёлся и сделал эту фигню с предварительной модерацией. Одни проблемы.
                              5. См. п №4
                              1. Марина Шипилова 07 июня 2013, 22:17 # 0
                                Подумав, поняла, что в принципе при авторизации через соцсети можно обойтись и без отключения автопубликации. Возникает риторический вопрос: Если какая-то функция в компоненте есть, но она не так работает, как должна и не планируется ее исправления, то может просто ее исключить как таковую при новом апдейте?
                            2. Станислав Бодягин 09 июня 2013, 16:51 # 0
                              Василий, вот я увидел, что у hypercomments есть возможность кросспостинга в социальные сети. В вашем модуле есть такая возможность?
                              1. Василий Наумкин 09 июня 2013, 19:07 # 0
                                Нет, и не предвидится.
                                1. Станислав Бодягин 09 июня 2013, 19:28 # 0
                                  А как Вы оцениваете объем работы? Если например я с нуля сам этой темой займусь. В смысле расширением возможностей. У меня есть неплохой скилл в PHP, но со внутренностями MODx я не знаком. Для меня эта штука будет сильным плюсом, а ставить всякие сторонние виджеты не хочу.
                                  1. Василий Наумкин 09 июня 2013, 20:37 # 0
                                    Никак не оцениваю.

                                    Я вообще не дружу с соцсетями и не знаю, что и как туда кросспостить.
                                    1. Олег Трубин 05 июля 2013, 17:05 # 0
                                      Поддерживаю, Станислава — кроспостинг в соц.сети очень востребованная функциональность. Если добавить её в тикеты, можно смело делать дополнение платным :)
                                      1. Василий Наумкин 05 июля 2013, 17:09 # 0
                                        Вот и займись этим — я добавлю твое платное дополнение в наш магазин.
                                        1. Олег Трубин 05 июля 2013, 17:23 # 0
                                          Рад бы, да «слабоват» я для этого :)
                              2. Виталий Батушев 10 июня 2013, 08:59 # 0
                                Василий, а как бы прикрутить TV к форме создания тикета?
                                Скажем, мне нужно, чтобы тикет относился к одному из трех типов: сообщение об ошибке, предложение об улучшении и предложение новой функциональности. В менеджере понятно, а вот с помощью TicketForm? Только править процессор?
                                1. Василий Наумкин 10 июня 2013, 09:18 # 0
                                  При создании тикета вызывается событие OnDocFormSave, а все переданные данные доступны в массиве $_POST.

                                  Пиши плагин и сохраняй что хочешь.
                                  $resource->setTVValue('name', @$_POST['name']);
                                  1. Виталий Батушев 10 июня 2013, 09:20 # 0
                                    Супер. Спасибо!
                                    1. Виталий Батушев 10 июня 2013, 21:59 # 0
                                      Подскажи еще про update, как втянуть в форму TV при изменении тикета.
                                      1. Василий Наумкин 10 июня 2013, 22:51 # 0
                                        То же самое событие.

                                        Отличить create от update можно по переменной $mode. По ссылке это написано.
                                        1. Виталий Батушев 10 июня 2013, 23:30 # 0
                                          Вась, ты меня не понял, мне нужно не апдейт сделать из формы, а втянуть в форму значение TV.
                                          1. Василий Наумкин 11 июня 2013, 06:55 # 0
                                            Ну ты чем выводишь ТВ при создании тикета — тем же и выводи при изменении, только нужно там сразу выставить уже выбранные.

                                            Например, если у тебя список чего-то выводится сниппетом, то у одного из пунктов нужно выставить selected. Посмотри в чанк выбора секции для тикета.
                                  2. Мордынский Николай 11 июня 2013, 14:03 # 0
                                    Василий, если не жалко можешь поделится скриптиком который точками показывает уровень вложенности коментов и их родителей.?
                                    1. Василий Наумкин 11 июня 2013, 14:04 # 0
                                      Это css, смотри исходники последней версии Tickets — оно там есть.
                                      1. Мордынский Николай 11 июня 2013, 14:52 # 0
                                        спасибо
                                    2. Александр Наумов 16 июня 2013, 17:00 # 0
                                      Ограничил глубину ветки комментариев до второго уровня (depth = 1) — все замечательно, но у комментариев второго уровня появляется ссылка ответить — вот данную ссылку хочу убрать.

                                      Василий, Вы вот здесь писали:
                                      нужно при выводе проверять поле parent, и если оно не равно 0 — убирать ссылку «ответить». Таким образом возможность ответа будет только у первого уровня, а у второго — нет.

                                      Подскажите, пожалуйста, алгоритм, как лучше это сделать. Раньше Вы советовали:
                                      самостоятельно обрабатывать комментарии своим сниппетом
                                      , сейчас после многочисленных изменений в Tickets я думаю, что правильней внести изменения в сниппет TicketComments, каким путем пойти?
                                      1. Василий Наумкин 16 июня 2013, 17:27 # 0
                                        Не надо ее убирать, иначе
                                        1. не будет уведомлений об ответах автору коммента
                                        2. при последующем изменении глубины (ну вдруг?) — ветка не перестроится как надо.

                                        Поэтому, лучше не извращаться и оставить посетителю возможность ответить конкретный комментарий.
                                        1. Александр Наумов 16 июня 2013, 17:49 # 0
                                          Спасибо за совет!
                                          1. Василий Наумкин 16 июня 2013, 18:04 # 0
                                            Можно сделать полупрозрачно, а при наведение — в полную яркость.

                                            Должно быть неплохо.
                                            1. Александр Наумов 16 июня 2013, 18:36 # 0
                                              Василий здесь, есть еще один момент, комментарии подгружаются Ajax тем самым добавляя уровень вложенности, а после перезагрузки этот комментарий переходит на уровень выше.
                                              Что бы комментарий сразу загружался на уровень выше, здесь нужно править JS или сниппет?
                                              1. Василий Наумкин 16 июня 2013, 19:12 # 0
                                                Вроде все такие косяки я поправил в последней версии.

                                                У меня работает нормально, уровень не прибавляется.
                                                1. Александр Наумов 16 июня 2013, 21:07 # 0
                                                  Сейчас поразбирался и понял, что такая проблема только у комментариев на последнем уровне. Версия rc4.
                                      2. kurspress 05 июля 2013, 16:22 # 0
                                        Василий, здравствуйте.
                                        Делаю блог на сайте с использованием tickets. Вот страничка kurspress.ru/post-v-bloge.html
                                        Проблема в том, что не после отправки комментария, форма для написания комментов скрывается и показывается только после обновления странички.
                                        Та же проблема с комментами вложенности больше 1-го уровня — их видно только после обновления странички.

                                        Переделывал чанки под свою вёрстку, и видимо где-то напортачил, id у элементов везде оставил ваши, ну классы свои. Ведь насколько я понимаю в javascript вы id используете?

                                        Я увы плохо разбираюсь в javascript и не понимаю что не так сделал. Может гляните?
                                        1. Володя 14 июля 2013, 13:19 # 0
                                          скачал последнюю версию, установил. Глюк такой, если при создании раздела с тикетами поменять шаблон на любой отличный от basetemplate то все зависает… Хотя может это особенность такая, только знакомиться начинаю)
                                          Добавление новых комментариев отключено.