Бесплатный компонент Tickets реализует особый вид документа (ресурса) в MODX Revo – тикет.
Краткий перечень возможностей:
- Встроенная система добавления тикетов и комментариев к ним с фронтенда сайта, включая загрузку файлов.
- Редактирование на фронтенде, возможность сохранения в черновики (без публикации).
- Удобное управление тикетами и комментариями из админ панели сайта.
- Счетчик просмотров, добавление в избранное, система голосования (рейтинга).
Официальная документация по ссылке. Автор – Василий Наумкин.
Документ и комментарии можно создавать с фронтенда, а это предполагает, как минимум, разнобой стилей (разные шрифты, размеры, цвета и т.п.), как максимум, вставку скриптов и ссылок с умыслом причинения вреда сайту. Поэтому текстовый контент при выводе на экран и предпросмотре, проходит обработку Jevix.
Сниппет Jevix – средство для фильтрации HTML. Исправляет ошибки HTML-кода, предотвращает XSS-атаки, применяет типографику. Устанавливается вместе с компонентом Tickets, можно установить и отдельно.
Характерные особенности Jevix:
- Исходный текст не форматируется, фильтруется только вывод на экран сохраненного тикета или комментария. Чтобы отключить фильтрацию, включаем галку Отключить Jevix на странице редактирования документа в админке.
- Фильтрует содержимое при предпросмотре тикета и комментария на фронтенде.
- Настраивается предобработка не в разделе Tickets, а на странице сниппета.
- По умолчанию параметры довольно жесткие, подходят для простого текста.
Как правило, текст какой либо статьи копипастится из текстового редактора, чаще всего 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]}`]]
* передача параметров при вызове