Бесплатная и платная
У PageBlocks два пакета: бесплатный и платный. Это не два исходника, а одно дерево, собранное двумя разными наборами файлов: из бесплатного вырезаны платные контроллеры, маршруты, панели вкладок и сама проверка лицензии. Платное не под замком — его там просто нет, и патчить нечего.
Что значит метка (PRO)
Страницы и пункты оглавления с пометкой (PRO) описывают то, что добавляет платная версия. Всё без пометки есть и в бесплатной.
Как бесплатная выглядит изнутри
Правило такое: прячем возможность, а не упоминание о ней. Платные вкладки и кнопки остаются на месте и показывают замок со строкой о том, что они делают; пункты меню API и Многоязычность остаются в меню по той же причине — человек открывает и видит, за что платят.
С кодом за ними иначе: в бесплатной сборке платные маршруты не регистрируются вовсе, поэтому запрос прямо к одному из них отвечает обычной 404, а не «требуется оплата». Рантаймового переключателя нет — ради этого всё и затевалось.
Где проходит разрез
Создать таблицу бесплатно, построить вокруг неё управляемый раздел платно.
Это точная формулировка, и держаться стоит именно её. Конструктор таблиц и колонок — бесплатный: завести таблицу, описать её поля, положить данные и вывести их сниппетом можно, не заплатив ничего.
Платным становится обвес, который превращает таблицу в раздел, которым управляет не разработчик, а редактор: пункт меню, схема из менеджера, фильтры и поиск по тысячам строк, модерация, версии, свои кнопки над строкой, отдача наружу по API.
Слоган «страницы бесплатно, данные платно» неверен
Он звучит складно и уже вводил в заблуждение. Данные — то есть таблицы, колонки и ввод значений — бесплатны. Платное лежит не в самих данных, а в управлении разделом вокруг них.
Что входит в бесплатную
- Конструктор — блоки, таблицы, поля, колонки, вкладки. Описать секцию, описать повторяющуюся структуру, поставить их на страницу.
- Весь фреймворк — модели, маршрутизация, шаблоны, файловые миграции, слой запроса и ответа. Он неделим: на нём стоят сами блоки.
- Сниппеты —
pbList,pbBlocks,pbResources,pbUsers,pbMenu,pbFilters,pbJson, с дефолтными чанками и единой семантикой&tpl. - Корзина — удалённый блок, строку или поле можно вернуть.
- Ввод и экспорт данных — заполнение таблиц, загрузка файлов и картинок, галереи, импорт строк в таблицу, выгрузка таблицы.
- Кэш ответов и ограничение частоты — сервисы фреймворка, замка на них нет.
- Почта: журнал, очередь, повтор — намеренно без замка. Платное это управление разделом, а почта инфраструктура: видеть, ушло письмо или нет, сайту на бесплатной сборке нужно ровно так же.
- Печать в PDF, гостевое владение по cookie, пресеты, генератор аннотаций.
- 30 типов полей из 39 — весь повседневный набор: текст, числа, выбор, файлы, картинки, видео, даты, таблица в блоке.
Это рабочий конструктор страниц, а не демонстрация: на нём можно собрать и вести сайт.
Что добавляет платная
| Возможность | Что даёт |
|---|---|
| Секции ресурса и пользователя | Свои поля на формах ресурса и пользователя MODX |
| Конструктор меню | Меню сайта из менеджера: пункты, вложенность, права |
| Миграции из менеджера | Менять схему своих таблиц и получать модели, не открывая редактор |
| Импорт существующей таблицы | Описать конструктором таблицу, которая в базе уже есть: поля и колонки снимаются со схемы |
| Фильтры и глобальный поиск | Найти строку в таблице на тысячи записей |
| Модерация | Новые строки ждут проверки, прежде чем попасть на сайт |
| Кастомные действия таблиц | Свои кнопки над строкой или выборкой, с вызовом вашего контроллера |
| Многоразовые блоки | Один блок на нескольких страницах: правится в одном месте, меняется везде |
| Версии | История правок блоков и таблиц с откатом к любому снимку |
| Маршруты и редиректы | Из менеджера, а не кодом |
| REST API с токенами и API-документация | Отдать объект внешним клиентам, с правами и сроком действия |
| Многоязычность и переводчики | Значения по языкам и машинный перевод |
| Бэкап конструктора | Вся конструкция одним файлом: перенос с разработки на боевой |
| UTM | Разные блоки для разных кампаний |
| Девять типов полей | См. ниже |
Библиотека блоков — это не то же самое, и она появится в 3.1
Многоразовые блоки в списке выше работают уже сейчас. «Библиотека блоков» — другое: галерея готовых блоков, из которой блок добавляется на страницу. Это задача 3.1, и она тоже будет платной.
Старый тип поля readyblocks из компонента убран: он не работал ни одного дня. Блоки внутри записи — это живой тип поля Блоки, он платный.
Платные типы полей
Девять из тридцати девяти. В списке типов они видны с замком, а не спрятаны: убранный тип ничего не сообщает о себе.
Связь · Галерея · Карта · Блоки · Ключ-значение · JsonGrid · Статус · Составное · EditorJS
Поле «Таблица» намеренно бесплатное
Вкладка «Таблицы» в бесплатной сборке есть, и без поля, которым таблица подключается к блоку, она была бы наполовину бесполезной.
Переход с бесплатной на платную
- Купите лицензию — вы получите
api_key. - Поставьте платный пакет поверх бесплатного: для MODX это обновление, имя пакета у изданий одно.
- В окне установки вставьте ключ в поле API-ключ покупателя.
- Очистите кэш MODX и обновите менеджер через
Ctrl+F5.
Бесплатную версию снимать не надо. Домен при покупке называть не надо — компонент подставит его сам.
Данные остаются на месте
Обновление копирует файлы и заводит недостающие настройки, а записи в базе не трогает: блоки, таблицы, поля и их содержимое остаются как были.
Подробности про ключ — на странице Лицензия, пошагово — на Установке.