Skip to content

🚀 Что такое PageBlocks

PageBlocks — это не просто дополнение, а полноценная платформа управления данными и интерфейсами для MODX.
Она позволяет разработчикам строить архитектуру проекта из контроллеров, таблиц, блоков и шаблонов, а менеджерам — наполнять сайт без участия программиста.

Третья версия — переписанная, а не обновлённая

PageBlocks 3 построен на Eloquent и миграциях Phinx. Вторая версия работала на собственной библиотеке запросов и xPDO-картах, поэтому обновления на месте с 2.x пока нет, и две линейки описаны отдельно. Страницы про pbQuery, события pbOn* и набор сниппетов 2.x относятся только ко второй версии.

PageBlocks подходит всем:

  • 🧑‍💼 Менеджерам — простой и понятный интерфейс. Страницы собираются из готовых блоков, которые можно редактировать, копировать, упорядочивать и публиковать.
  • 👨‍💻 Начинающим разработчикам — блоки, вкладки, таблицы и поля можно собирать прямо в админке, без работы с кодом.
  • 🧑‍💻💻 Профессиональным разработчикам — полный контроль через IDE: контроллеры, маршруты, шаблоны и файлы. Проект становится предсказуемым и масштабируемым.

🌟 Преимущества

🧩 1. Конструктор страниц из блоков

Страницы собираются из готовых блоков, как из кубиков LEGO. Менеджер просто выбирает нужные блоки, меняет порядок, заполняет контент — никакого кода.

🖥️ 2. Удобная работа в админке

Создавайте блоки, таблицы, поля, вкладки, панели и меню прямо в интерфейсе — без написания кода. Отличный выбор для начинающих разработчиков.

💻 3. Полный контроль через код

Профи могут описывать всё через файлы и IDE: блоки, шаблоны, контроллеры, маршруты, правила валидации, API. Компонент не ограничивает, а расширяет возможности.

🧠 4. Интуитивный интерфейс

Всё в одном месте: блоки, таблицы, страницы, переводы. Никаких лишних вкладок и сложных конфигураций.

⚡ 5. Быстрый запуск сайтов

Больше не нужно каждый раз «изобретать велосипед». Создавайте лендинги, каталоги, страницы — в 2–3 раза быстрее, чем при обычной верстке в MODX.

🧱 6. Сделан под MODX 3

Третьей версии нужны MODX 3.0+ и PHP 8.2+. Установщик проверяет и то и другое, поэтому на MODX 2.8 он просто откажется ставиться — Eloquent 12 и Phinx 0.16 там не работают. Если у вас MODX 2.x, оставайтесь на PageBlocks 2.

🛠️ 7. Гибкие типы полей

С PageBlocks вы получаете 46 типов полей — от простых текстов и изображений до галерей, карт, Editor.js, иконок, селектов, чекбоксов и связей.
Поля можно повторять, группировать, делать условными и даже вставлять таблицы прямо в блоки — это даёт гибкость при построении любых интерфейсов.

🔄 8. Пагинация, фильтрация и мультиязычность из коробки

Фильтры, списки, языковые версии, переводы — всё уже встроено. Никаких дополнительных компонентов.

🔧 9. Модульность и переиспользуемость

Блоки можно повторно использовать в разных местах и проектах. У сохранённого многоразового блока остаётся связь с мастер-копией, и вы сами выбираете, какие поля синхронизируются, а какие живут своей жизнью.

🧾 10. Встроенный шаблонизатор Fenom

Шаблоны рендерит pbFenom — наш форк Fenom, подключённый как пакет Composer. Работают чанки, файловые шаблоны file: и строки @INLINE:

php
{foreach $items as $item}
  <div class="product">{$item.title}</div>
{/foreach}

🔎 11. Конструктор запросов

query() отдаёт конструктор запросов Illuminate к базе MODX. Имя таблицы пишется без префикса — его подставит соединение:

php
{foreach query('site_content')->where('template', 4)->orderBy('menuindex')->get() as $page}
	<a href="{$page->uri}">{$page->pagetitle}</a>
{/foreach}

Строки возвращаются обычными объектами, поэтому поля читаются как свойства ($page->uri), а не через геттер. Для ресурсов есть короткий путь — см. Хелперы.

🧰 12. Сниппеты для шаблонов MODX

При установке регистрируются семь сниппетов, поэтому дотянуться до компонента можно из обычного шаблона MODX, не переходя на весь фреймворк:

[[!pbList? &model=`PbResource` &parent=`[[*id]]` &tpl=`chunk:myItem` &limit=`10`]]

pbList, pbBlocks, pbResources, pbUsers, pbMenu, pbFilters, pbJson — см. Сниппеты.

⚡ 13. pbFetch — AJAX без боли

Нативный JavaScript-класс для отправки GET, POST, PUT, DELETE-запросов без перезагрузки страницы. Работает с декларативными атрибутами pb-form, pb-trigger, pb-target и т.д.

📊 14. Гибкая работа с UTM-метками

PageBlocks позволяет настраивать отображение блоков в зависимости от UTM-меток. Это делается через интерфейс или в коде (в режиме разработчика). Удобно для персонализации, маркетинга и A/B-тестирования.

🔌 15. REST API с токенами

Любую таблицу конструктора можно опубликовать во внешний API галочкой: выбрать публичное имя, набор отдаваемых полей и разрешённые операции. Клиент приходит с токеном, а не с сессией менеджера, а сам компонент описывает себя через OpenAPI.

🛡️ 16. Безопасность на всех уровнях

CSRF, права доступа, валидация, защита от SQL-инъекций — всё уже встроено и не требует настройки.

🚀 17. Постоянное развитие

Компонент активно развивается: новые функции, улучшения, документация. PageBlocks — это не разовый модуль, а долгосрочное решение.

🎯 Заключение

PageBlocks — это стабильный, гибкий и масштабируемый инструмент, который избавит вас от рутины. Если вы делаете сайты на MODX — установите его первым делом. Он сэкономит дни и недели работы — и менеджерам, и разработчикам.

🛠️ Поддержка

  • Версия: 3.0.0-alfa
  • Поддержка MODX: 3.0+
  • Поддержка PHP: 8.2+
  • Автор: Boshnik

🐞 Сообщить об ошибке

Если вы обнаружили ошибку в PageBlocks, создайте issue в репозитории на GitHub.

© PageBlocks 2019-present