Фронт
Описание вывода данных на фронте сайта
Данные выводятся с помощью сниппета multifields.
Если данные хранятся в ТВ параметрах и используется шаблонизатор twig или blade, то сниппет можно не использовать, а обрабатывать данные напрямую.
Параметры сниппета.
tvId
Число. ID тв параметра
tvName
Строка. Имя тв параметра
docid
Число. По умолчанию текущий документ. ID документа из которого нужно взять данные.
api
Число или Строка. По умолчанию пусто. Имеет два значения 1 или json, при значении 1 - возвращает массив php, при значении json - возвращает json массив. Использование данного параметра потеряет смысл (как и использование самого сниппета) если в конфигурации плагина выбран тип хранения default и используется шаблонизатор twig или blade.
data
JSON. По умолчанию пусто. Даёт возможность вернуть на обработку изменённые данные.
storage
Строка. Значения default или files. По умолчанию пусто. Принудительный выбор источника данных.
tpl_KEY
Строка. tpl_КЛЮЧ_ИЗ_МАССИВА_КОНФИГУРАЦИИ. Чанк или инлайн код для шаблонизации выбранного элемента. Можно шаблонизировать практически любой элемент зная его уникальный ключ в рамках одного файла конфигурации. Так же tpl можно указать в самой конфигурации элемента.
Плейсхолдеры:
[+mf.items+]
- выводит все дочерние элементы
[+mf.name+]
- выводит поле name элемента
[+mf.type+]
- выводит тип элемента
[+mf.iteration+]
- выводит порядковый номер элемента
[+mf.level+]
- уровень вложенности данного элемента
[+value+]
- выводит непосредственное значение элемента
Остальные плейсхолдеры берутся по ключам дочерних элементов.
prepare_KEY
Строка. prepare_КЛЮЧ_ИЗ_МАССИВА_КОНФИГУРАЦИИ. Сниппет или название функции для обработки элемента. Так же prepare можно указать в самой конфигурации элемента
Имеет три аргумента,
$data
- массив с данными элемента
$modx
- объект DocumentParser
$_MF
- объект класса Multifields
Если обработчик используется для элемента в котором есть дочерние, то обработчик будет срабатывать два раза, перед обработкой дочерних и после. До обработки нет ключа $data['mf.items']
а после есть, то есть по этому критерию можно с помощью условий запускать разные обработки данных.
Для получения своих параметров сниппета, можно воспользоваться методом $_MF->param(NAME, DEFAULT);
Пример
Сниппет mf.prepare.thumb
Пояснение
Конфигурация
Вывод сниппета
TV_NAME - указываем название tv параметра
tpl_Slider - префикс tpl_ + ключ в массиве, в данном случае Slider, внутри шаблона доступны плейсхолдеры с теми же именами что и в конфигурации. Так же их можно обработать через prepare_Slider в данном случае. Если конфигурация предполагает вмещать большое количество элементов, то каждому элементу рекомендуется присваивать уникальный ключ в рамках всей конфигурации в файле.
Last updated
Was this helpful?