Обновил Tickets, версия 0.5.0

Вслед за Jevix, я обновил и Tickets. Изменений довольно много, большинство весьма серьёзные.

— Немного переделал менеджерские страницы тикетов. Можно использовать TinyMCE и другие редакторы. Последний Ace не работает, причем со всеми ресурсами, не только тикетами. Видно, автор увлёкся экспериментами с «аяксовой админкой».

— Улучшил окно работы с комментарием. Теперь при развороте окна на весь экран увеличивается поле редактирования. Для скорости и истории в каждый комментарий сохраняются имя и email автора, на момент создания записи. В новой версии их можно изменить, на профиль юзера это никак не влияет.


— Автоматическая генерация поля introtext, основываясь на положении тега cut. Раньше для вывода списка тикетов на странице использовался сниппет, который вызывался в каждом чанке и криво разбирал контент. То есть, getResources приходилось доставать контент страницы и запускать дополнительный сниппет на каждый результат. Грустно было.
Сейчас же, если при создании тикета в процессор не присылается поле introtext, то оно генерируется автоматом, причем, через Jevix. То есть, в introtext у вас всегда готовый кусок текста до cut, или то, что вы туда сами написали. Заодно, это будет дисциплинировать авторов, ибо если не указать cut — то introtext не будет и этот тикет в списке будет очень сиротливо смотреться.
Вообще, это отдельная тема с неуказанием cut. Есть 2 варианта — выводить весь документ или не выводить ничего, мне больше нравится второй вариант. Также, все жти изменения радикально ускоряют вывод списка тикетов в getResources и подобных сниппетах. Контент «по умолчанию» для новой секции тоже изменён — убрал &includeContent=1.

— Следствие из предыдущего пункта — при выводе страницы тикета тег cut превращается в якорь. Заодно изменил чанк вывода списка тикетов, чтобы ссылка шла на этот якорь.

— Еще одно следствие — cниппет tagCut удалён.

— Новый параметр в админке — отключить Jevix. Если активировать, контент страницы будет выводиться не фильтрованным. Использовать только если сами пишите заметки в админке, иначе сайт быстро похакают. Очень, очень советую все-таки форматировать ваши тексты так, чтобы Jevix их пропускал (тем более, он прекрасно настраивается — набор параметров Ticket).
Ведь кроме фильтрации, он еще и типографирует ваш текст, а с новой версии умеет менять куски текста регулярками.



— Новый параметр в админке — обрабатывать теги MODX. Тут надо немного пояснить: в классе Ticket встроена защита от подсовывания модыксовых тегов в создаваемый ресурс. Если вы получаете любое поле этого документа, то в нем, по умолчанию, фильтруются все MODX тэги — скобочки заменяются сущностями и парсер их не обрабатывает.
Даже при выборке через другой сниппет вы не увидите нефильтрованных тегов (если он достаёт значения через $resource->get(), а не напрямую из БД).
Так вот, если у ресурса включить параметр обрабатывать теги MODX — то теги будут отдаваться «как есть» и парсер их обработает. Это касается именно метода get для класса Ticket.

Имейте в виду, что контент на собственной странице тикета выдаётся другой функцией, $resource->getContent(), которая вызывает Jevix и он тоже нейтрализует теги. То есть, если вы включите этот пункт, но не включите предыдущий — то теги будут работать во всех полях страницы, кроме контента. Чтобы работали и в контенте — придется Jevix отключить.

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

— Переделан вывод последних комментариев. Раньше была сложная выборка, которая осталась еще со времен Quip, но теперь это в прошлом. У треда комментариев добавлены 2 поля: с последним комментарием и его датой — они и выбираются.
В общем, драматическое увеличение скорости. За пинок в этом направлении спасибо Евгению Борисову.
Если вы обновляете компонент, то сначала в блоке последних будет пусто, но не пугайтесь — нужно просто походить по тикетам и последние комменты забьются в таблицу тредов автоматом.

В общем, Tickets приведены в полную готовность для работы в качестве персонального блога. На своём сайте я уже избавился от Articles и остального ненужного барахла. Стало гораздо проще, значительно быстрее и просто удобнее.

Следующая заметка
HybridAuth для MODX Revolution
Предыдущая заметка
Обновил Jevix, версия 1.1.0


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

  1. Viktor Minator 29 ноября 2012, 00:23 # 0
    Если раньше я не успевал изучать минишоп, то теперь я не успеваю обновлять тикеты. А что будет дальше? (^.^)
    1. Alexandr Semenov 29 ноября 2012, 01:30 # 0
      Планируется ли разграничить права пользователей на просмотр только своих тикетов, а менеджера (админа) на просмотр всех?
      1. Василий Наумкин 29 ноября 2012, 04:51 # 0
        Пока не вижу смысла зашивать это внутрь компонента — это его усложнит.

        У каждого тикета есть createdby — по нему можно проверять, кому что показывать. Не забывайте, что в getResources можно уточнять выборку, а при загрузке страницы проверять юзера плагином по OnLoadWebDocument.
      2. Галич Сергей 29 ноября 2012, 09:06 # 0
        круть) наконецто от articles можно избавляться)
        1. Peter Zenin 29 ноября 2012, 14:53 # 0
          От будут отдельно комменты?
          У меня у Quip не работал threading, а он очень нужен.
          1. Василий Наумкин 29 ноября 2012, 15:00 # 0
            Зачем?

            Они прекрасно работают в составе компонента Tickets. Создавать тикеты вас никто не заставляет.
          2. Алексей П 01 декабря 2012, 22:10 # 0
            А если не создавать тикет комментарии будут видны в админке?
            1. Василий Наумкин 02 декабря 2012, 06:56 # 0
              Пока работа с комментариями в админке возможна только на странице тикета.
            2. Evgenij Schemelev 04 декабря 2012, 11:56 # 0
              Подскажите, пожалуйста, в каком направлении копать чтобы сделать постраничное разбиение страницы со списком всех комментариев.
              1. Василий Наумкин 04 декабря 2012, 12:01 # 0
                Разбить контент страницы поможет Pagebreaker

                Комментарии на страницы не разбиваются принципиально.
              2. Denys Butenko 04 декабря 2012, 23:28 # 0
                Предлагаю в следующей версии добавить в раздел тикетов пункт «тип ресурса» для обратной смены типа ресурса.
                1. Василий Наумкин 05 декабря 2012, 07:25 # 0
                  Чтобы на сайте в мгновения ока появился нефильтрованный ресурс, набитый XSS и тегами MODX?

                  Нет уж.
                  1. Denys Butenko 05 декабря 2012, 15:11 # 0
                    Если причина в этом, тогда понял. Просто, например, я случайно изменил тип ресурса не в том документе, а назад убрать никак (только через бд), хотя по сути этот документ не содержит тикетов.
                2. Андрей Розум 05 декабря 2012, 01:04 # 0
                  Блин, пока ковыряюсь в своей рутине появляется столько того, что хочется опробовать. Когда бы все успеть. :D
                  1. Abu 07 декабря 2012, 17:44 # 0
                    Не «показывать в меню» для раздела тикетов не работает?
                    1. Василий Наумкин 08 декабря 2012, 03:06 # 0
                      Работает.

                      Просто, как и у Тикета, обновление раздела старается не чистить кэш всего сайта.
                    2. Andrei Kilin 11 декабря 2012, 15:56 # 0
                      тем более, он прекрасно настраивается — набор параметров Ticket
                      Поменял в наборе параметров размер видео, но размер остался прежний. Набор надо как-то отдельно подключать?
                      1. Василий Наумкин 11 декабря 2012, 16:45 # 0
                        Кэш?
                        1. Andrei Kilin 11 декабря 2012, 16:56 # 0
                          Чистил и в админке и коре. + Пост новый создавал после изменения параметров.
                          1. Василий Наумкин 11 декабря 2012, 20:35 # 0
                            Не судьба, значит.

                            А у меня работает.
                            1. Andrei Kilin 12 декабря 2012, 11:25 # 0
                              Блин, даже стыдно, не заметил, что там 2 выражения, у «youtu.be» сменил размер, а ссылку вставляю yоutube.com %)
                              1. Василий Наумкин 12 декабря 2012, 11:47 # 0
                                Обычное дело =)
                      2. Галич Сергей 11 декабря 2012, 18:20 # 0
                        Василий, подскажи
                        вопрос по псевдониму статьи, планируется вводить?
                        или куда покопать?
                        1. Василий Наумкин 11 декабря 2012, 20:33 # 0
                          Неа, не планируется.

                          Это система блогов\тикетов. Гляньте на Хабр и LiveStreet CMS — у страниц нет имён, только номера.
                          1. Галич Сергей 11 декабря 2012, 20:44 # 0
                            ясно, ну я так поинтересовался, мало ли
                        2. Алексей П 21 декабря 2012, 22:35 # 0
                          Подскажите пожалуйста какой файл отвечает за вывод комментариев в админке? Хочу переделать, чтобы была возможность просматривать и редактировать комментарии независимо от тикетов.
                          1. Василий Наумкин 22 декабря 2012, 04:09 # 0
                            Как вы собираетесь что-то «переделывать», если вам нужно «подсказать файл»?
                            1. Алексей П 22 декабря 2012, 06:43 # 0
                              Примерно такого ответа я и ожидал) В прошлой версии тикетов желаемый результат достигался простым комментированием строк, где подключались js скрипты из раздела section. Да, это коряво и наверное не правильно, но все же работало, а большего мне и не надо. Сейчас такая фишка не прокатывает. Думал, что для Вас, как разработчика, не составит труда подсказать, так как Вы в своем коде лучше ориентируетесь чем я. А мне придется потратить много времени пока я достигну того же результата. Но если Вам все-таки затруднительно, то прошу прощения за беспокойство.
                              1. Василий Наумкин 22 декабря 2012, 08:17 # 0
                                Не знаю, что вы там комментировали и зачем.

                                Сейчас есть управление комментариями отдельного тикета и всего раздела тикетов.

                                При этом, комменты могут работать на любой странице и в будущем я планирую отдельную админку, для управления этими «нетикетными» комментами.

                                Отсюда мне не ясно, что вы там собрались переделывать, когда нужно делать специальный раздел админки.
                                1. Алексей П 22 декабря 2012, 10:15 # 0
                                  Но пока нет отдельной админки для комментов можно же подкорректировать существующую, чтобы комменты выводились не по тредам а все подряд. Т.к. сама система тикетов мне не нужна, а только комментарии.

                                  А когда Вы планируете сделать отдельную админку? Просто есть ли смысл ждать…

                                  1. Василий Наумкин 22 декабря 2012, 11:40 # 0
                                    На гитхабе будет сегодня-завтра, надеюсь, а в готовом пакете позже, как напишу запланированные плюшки.
                          2. Алексей П 22 декабря 2012, 12:32 # 0
                            Отлично! Спасибо!
                            1. Василий Наумкин 24 декабря 2012, 22:07 # 0
                            2. Мордынский Николай 18 марта 2013, 12:36 # 0
                              Василий, не подскажешь как подключить редактор тини мсе к полю интротекст.
                              Решения 2 ух летней давности с плагином на событие onDocFormPrerender

                              global $replace_richtexteditor;
                              $replace_richtexteditor[] = "introtext";
                              

                              1. Василий Наумкин 18 марта 2013, 12:39 # 0
                                Зачем?

                                Поле Introtext формируется автоматически, если в тексте есть тег cut. Всё до него пройдет через Jevix и сохранится в Introtext.

                                В любом случае, нет, не знаю =)
                                1. Мордынский Николай 18 марта 2013, 12:44 # 0
                                  не не не я не про тикетс и не про minishop2 )) мне хотелось бы прикрутить к обычному ресурсу…
                                  понятно спасибо мб кто еще знает)
                                  1. Abu 18 марта 2013, 14:40 # 0
                                    Кстати, я как-то жаловался, но вижу проблемы с пользователями которые не хотят ставить cut так и не ушли, может добавить еще формирование из контента, типа gist.github.com/govza/4757842
                                    1. Slava Beico 07 мая 2013, 17:37 # 0
                                      делаю вызов сниппета с &includeContent=`1`
                                      а в чанке:
                                      <div class="dcontent">
                                      	[[+content:limit=`200`]] 
                                      			</div>
                                2. Yani 07 октября 2014, 10:50 # 0
                                  Василий, доброе утро. А можно отключить автоматическую генерацию интротекста и оставлять его пустым?
                                  1. Василий Наумкин 07 октября 2014, 10:58 # 0
                                    Нет.
                                  Добавление новых комментариев отключено.