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

Сниппеты PageBuilder ​

Сниппеты вывода и (в Pro) обработчики форм. Namespace chunks и секций: pagebuilder.

СниппетНазначение
PageBuilderHTML опубликованных секций текущего или заданного ресурса
PageBuilderResourceСекции другого ресурса (resource_id в properties UI обязателен; 0 = текущий ресурс)
PageBuilderSitemapXML sitemap страниц с опубликованными секциями
PageBuilderUtmSessionUTM из query string в сессию для правил видимости секций
PageBuilderUtmUrlUTM из реестра панели управления к произвольному URL
PageBuilderTableRowsСтроки табличных данных ресурса (JSON или chunk)

Pro. Из шаблона не вызывайте. Чанк секции вызывает PageBuilderFetchIt:

СниппетНазначение
PageBuilderQuizОбработчик секции quiz
PageBuilderContactFormОбработчик секции contact_form
PageBuilderFormBuilderОбработчик секции form_builder
PageBuilderFetchItОтрисовка формы через Fenom. Чанк передаёт обработчик в snippet

Порядок на типовой странице ​

  1. PageBuilderUtmSession в общем layout, если на странице работают UTM-правила секций (один раз на запрос, до отрисовки секций).
  2. PageBuilder в шаблоне или поле content ресурса.
  3. PageBuilderTableRows отдельно, если таблица выводится вне секции data_table.

Для блока с другой страницы (hero с главной, FAQ из лендинга) используйте PageBuilderResource.

Секции quiz, contact_form и form_builder сами вызывают PageBuilderFetchIt. Обработчик из шаблона не вызывайте.

Таблица соответствий (MODX / Fenom) ​

НазначениеMODXFenom
Секции страницы[[!PageBuilder]]{'!PageBuilder' | snippet}
Фильтр секций[[!PageBuilder? &section_types=`hero,cta`]]{'!PageBuilder' | snippet : ['section_types' => 'hero,cta']}
Секции другого ресурса[[!PageBuilderResource? &resource_id=`42`]]{'!PageBuilderResource' | snippet : ['resource_id' => 42]}
JSON для SEO[[!PageBuilder? &return_values=`1`]]{'!PageBuilder' | snippet : ['return_values' => 1]}
Sitemap[[!PageBuilderSitemap]]{'!PageBuilderSitemap' | snippet}
UTM в сессию[[!PageBuilderUtmSession]]{'!PageBuilderUtmSession' | snippet}
URL с UTM[[!PageBuilderUtmUrl? &url=`/contacts/`]]{'!PageBuilderUtmUrl' | snippet : ['url' => '/contacts/']}
Строки таблицы[[!PageBuilderTableRows? &table_key=`prices`]]{'!PageBuilderTableRows' | snippet : ['table_key' => 'prices']}

Кеш ​

PageBuilder и PageBuilderResource вызывайте некэшированно ([[!...]] или {'!...' | snippet}). Иначе MODX может отдать HTML без учёта свежей публикации.

PageBuilderUtmSession тоже некэшированный: сессия заполняется в том же HTTP-запросе, что и переход по UTM-ссылке.

См. также ​