Tickets настройка обработчика

Бесплатный компонент Tickets реализует особый вид документа (ресурса) в MODX Revo – тикет.

Краткий перечень возможностей:

  • Встроенная система добавления тикетов и комментариев к ним с фронтенда сайта, включая загрузку файлов.
  • Редактирование на фронтенде, возможность сохранения в черновики (без публикации).
  • Удобное управление тикетами и комментариями из админ панели сайта.
  • Счетчик просмотров, добавление в избранное, система голосования (рейтинга).

Официальная документация по ссылке. Автор – Василий Наумкин.

Документ и комментарии можно создавать с фронтенда, а это предполагает, как минимум, разнобой стилей (разные шрифты, размеры, цвета и т.п.), как максимум, вставку скриптов и ссылок с умыслом причинения вреда сайту. Поэтому текстовый контент при выводе на экран и предпросмотре, проходит обработку Jevix.

Сниппет Jevix – средство для фильтрации HTML. Исправляет ошибки HTML-кода, предотвращает XSS-атаки, применяет типографику. Устанавливается вместе с компонентом Tickets, можно установить и отдельно.

Характерные особенности Jevix:

  • Исходный текст не форматируется, фильтруется только вывод на экран сохраненного тикета или комментария. Чтобы отключить фильтрацию, включаем галку Отключить Jevix на странице редактирования документа в админке.
  • Фильтрует содержимое при предпросмотре тикета и комментария на фронтенде.
  • Настраивается предобработка не в разделе Tickets, а на странице сниппета.
  • По умолчанию параметры довольно жесткие, подходят для простого текста.

Tickets и параметры Jevix

Как правило, текст какой либо статьи копипастится из текстового редактора, чаще всего Word, либо с другой страницы, вместе с форматированием. Без обработчика на выходе получается "компот" из стилей, шрифтов, расцветок и выравниваний. Jevix все это приводит в порядок, в соответствии с заданными настройками.

Что может понадобиться:

Параметр cfgSetAutoBrMode – замена переносов строк на тег br . Если текст уже оформлен абзацами, включенный параметр может добавлять лишние переносы строк.

cfgAllowTags – перечень разрешенных HTML тегов (остальные вырезаются). Этот, и несколько других параметров, задается в виде строки JSON, поэтому нужно внимательно проверять синтаксис.

cfgAllowTagParams – перечень разрешенных атрибутов HTML тегов.

cfgSetTagChilds – настройка вложенности тегов.

Пример для настройки вывода таблицы:

По умолчанию, таблицы после Jevix-a изменяются до неузнаваемости. Чтобы таблица выводилась с минимальным числом необходимых стилей, добавляем:

cfgAllowTags - table,tr,th,td

cfgAllowTagParams - "td":"colspan","table":["height","width","border","cellpadding", "cellspacing"]

cfgSetTagChilds - ["table",["tbody","tr"],false,true],["tr",["td","th"],false,true]

Также Jevix можно использовать как модификатор вывода любого текста. Например:

{{*сontent:Jevix}}
* берет параметры из настроек,

[[Jevix?
    &input=`[[*сontent]]`
    &cfgAllowTags=`p,a,img,i,b,u,em,strong,nobr,li,ol,ul,sup,abbr,pre,acronym,
    h1,h2,h3,h4,h5,h6,cut,br,code,table,tr,th,td,video,hr`
    
    &cfgAllowTagParams=`{"td":"colspan","table":["height","width","border","cellpadding","cellspacing"],
    "a":["title","href","data-fancybox"],
    "img":{"0":"src","alt":"#text","1":"title","align":["right","left","center"],
    "width":"#int","height":"#int","hspace":"#int","vspace":"#int"}}`
    
    &cfgSetTagChilds=`{["ul",["li"],false,true],["ol",["li"],false,true],["table",["tbody","tr"],false,true],
    ["tr",["td","th"],false,true]}`]]
* передача параметров при вызове

Привилегия.ру

Метки: modx revolution