Skip to content
PageBuilder
Визуальный конструктор секций для MODX 3: черновик и публикация без перезаписи content ресурса
  1. Компоненты
  2. PageBuilder
  3. Типы полей
  4. Free
  5. repeater

Поле repeater

Версия: Free.

Зачем этот тип

  • В каждой строке своя вложенная схема полей
  • _rowId не меняется между сохранениями: ключ для Vue и якорей
  • Списки карточек, FAQ и слайдов без Pro

Когда использовать

  • Элементы карточек, вопросы FAQ, слайды
  • Любой сценарий «добавить строку» в секции
  • Картинка и текст в строке без отдельного JSON-типа

Советы

  • В chunk: {foreach} и при необходимости {$item._rowId|escape}
  • Один объект без списка: jsongrid (Pro)

Похожие типы

  • jsongrid для одной строки-объекта (Pro)
  • table для табличной сетки с колонками (Pro)

Настройка

json
{
  "name": "items",
  "type": "repeater",
  "label": "Элементы",
  "fields": [
    {
      "name": "title",
      "type": "text",
      "label": "Заголовок"
    }
  ],
  "tab": "Контент",
  "width": 100,
  "active": true
}

Значение

Массив объектов. У каждой строки есть _rowId.

Данные секции

Ключ items в данных секции — массив строк; у каждой строки стабильный _rowId:

json
{
  "items": [
    {
      "_rowId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "title": "Пункт 1"
    },
    {
      "_rowId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "title": "Пункт 2"
    }
  ]
}

Пример в chunk

fenom
{foreach $items as $item}
  <article id="{$item._rowId|escape}">
    <h3>{$item.title|escape}</h3>
  </article>
{/foreach}

Общие свойства

Для полей с name, которые сохраняются в данных секции:

КлючТипРольПанель
tabstringПодзаголовок группы в инспектореда
width25–100Ширина поля в % строки (flex)да
descriptionstringПодсказка под подписьюда
defaultanyНачальное значение новой секциида
activeboolfalse — скрыть поле в инспектореда
requiredboolОбязательно при publish (черновик сохраняется)да
  • Дополнительно: fields[] — схема строк; в data у каждой строки _rowId.

Подробнее: обзор полей.

Дальше