Skip to content

pbJson

Выводит JSON через инлайн-шаблон. Удобно для поля, которое хранит JSON — повторяемое поле, список «ключ-значение», галерея, — когда нужна разметка без цикла в шаблоне.

[[pbJson? &input=`[[+items]]` &options=`<li>[[+title]]</li>`]]

Параметры

ПараметрОписание
inputСтрока JSON или массив. Пустое значение возвращается как есть.
optionsШаблон, который применяется к каждому элементу.

Плейсхолдеры

Внутри options работают оба написания, поэтому один и тот же шаблон годится и для MODX, и для Fenom:

[[+title]]    {$title}

Список объектов рендерится по разу на элемент, ключи элемента становятся плейсхолдерами. Одиночный объект рендерится один раз. В плоском списке скаляров каждое значение доступно как item:

[[pbJson? &input=`["red","green"]` &options=`<span>[[+item]]</span>`]]

Вложенные значения пропускаются, а не печатаются словом Array.

Он же модификатор

Тот же код стоит за модификатором |pbJson:

php
{$block->items | pbJson : '<li>{$title}</li>'}

Модификатору нужен сниппет

|pbJson зовёт этот сниппет по имени. Если пакет на сайте не устанавливали — например, файлы скопировали руками, — модификатор молча вернёт пустоту. В ранних сборках 3.0 это был настоящий баг: сниппеты не регистрировались вовсе.

Пример

Повторяемое поле items, в каждой строке title и url:

<ul>
    [[pbJson? &input=`[[+items]]` &options=`<li><a href="[[+url]]">[[+title]]</a></li>`]]
</ul>

© PageBlocks 2019-present