🚀 Установка
Пакета два: бесплатный и платный. Это одно и то же дерево, собранное двумя разными наборами файлов, — платного кода в бесплатном пакете нет физически, а не под замком. Имя пакета у обоих одно (pageblocks), поэтому платный ставится поверх бесплатного обычным обновлением. См. Бесплатная и платная.
Скоро появится в каталоге дополнений MODX
Тогда компонент можно будет поставить как любой другой, без провайдера. Пока ставится с нашего провайдера — порядок ниже.
Установка
1️⃣ Открываем установщик
Дополнения → Установщик ⚙️
2️⃣ Создаём провайдера 🌐
Переходим на вкладку Провайдеры и создаём нового:
- 🏷️ Имя: Boshnik
- 🔗 URL сервиса: https://boshnik.com/extras/
3️⃣ Переходим к провайдеру 📂
4️⃣ Устанавливаем компонент 📦
Откроется список компонентов провайдера. Выбираем PageBlocks и устанавливаем.
🔑 У платного пакета в окне установки есть поле API-ключ покупателя — туда вставляется ключ, который вы получили при покупке. У бесплатного этого поля нет: вставлять ключ некуда, и ставится он без лишних вопросов.
Если на сайте уже стоит PageBlocks 2.x
Окно установки откроется с красным предупреждением. PageBlocks 3 — другой компонент под тем же именем пакета, а не следующая версия того, что у вас стоит: схема базы несовместима, 3.0 не увидит ваши блоки, поля и таблицы, менеджер и собранные на них страницы перестанут работать. Автоматического переноса нет, а вернуться назад можно только из дампа базы.
Предупреждение кнопку не блокирует — оно показывается до распаковки файлов, поэтому, закрыв окно, вы оставите сайт ровно как был. Поддерживаемый путь один: чистая установка PageBlocks 3 на отдельном сайте и перенос содержимого руками, версия 2.x на этом сайте продолжит работать.
Проверка смотрит на таблицы в базе, а не на версию в списке пакетов: эту запись можно удалить, оставив таблицы на месте, и установка «с нуля» поверх таких таблиц ломает сайт ровно так же.
Следите за ошибкой миграций в консоли установки
Схему заводят миграции, которые установщик прогоняет через CLI-интерпретатор PHP. Если это не удалось — файлы компонента принадлежат другому пользователю или на хостинге отключена exec(), — причина уходит красным в журнал ошибок MODX, а компонент будет работать неправильно. Тогда на каждой странице менеджера появляется баннер Схема базы данных с перечнем непримененных миграций и командой, которую надо выполнить руками из корня сайта.
Переход с бесплатной на платную
Снимать бесплатную версию не надо — ставьте платный пакет поверх неё. Для MODX это обновление: имя пакета у изданий одно, а номер платного всегда выше (бесплатное живёт в 2.x, платное в 3.x).
- Купите лицензию — вы получите
api_key. - Поставьте платный пакет из того же провайдера. В окне установки вставьте ключ в поле API-ключ покупателя.
- Очистите кэш MODX и обновите менеджер через
Ctrl+F5.
Установка дольёт файлы, которых в бесплатном пакете нет вовсе: проверку лицензии, платные контроллеры и маршруты, панели платных вкладок. Именно поэтому одной вставки ключа в настройку тут не хватит — без этих файлов включать нечего.
Данные остаются на месте
Блоки, таблицы, поля и их содержимое не трогаются: обновление копирует файлы и заводит недостающие настройки, а записи в базе — нет. Домен при покупке называть не надо, компонент подставит его сам. Подробности про ключ — на странице Лицензия.
После установки
Две вещи, которые установщик за вас не сделает:
- Очистить кэш MODX и перезагрузить менеджер через
Ctrl+F5. PHP и JavaScript кэшируются, а устаревшая копия выглядит ровно как сломанная установка. - Проверить события плагина, если вы обновлялись. Новые выпуски подписываются на новые события MODX, и обновление не всегда их прикрепляет — Система → События или вкладка событий у плагина
PageBlocks. - Поправить
core/App/руками, если так сказано в выпуске. Установщик копирует туда шаблон прикладного слоя, но никогда не перезаписывает файл, который там уже есть: это код самого сайта, и правки в нём обязаны уцелеть. Обратная сторона — присланная в выпуске правка файла, который живёт там, сама не приедет; в changelog под заметками о миграции сказано, какой файл патчить.
🎉 Готово. Дальше — Что такое PageBlocks? или сразу конструктор.


