Skip to content

Системные настройки ​

Пятьдесят одна настройка в пространстве имён pageblocks, все их создаёт установщик пакета. Значения по умолчанию ниже — то, что получает чистая установка.

Отсутствующая настройка и её значение по умолчанию — разное

MODX возвращает пустоту для настройки, которой нет, а код обычно читает это как «выключено». Если фича кажется неработающей, сперва убедитесь, что ключ вообще есть в Система → Системные настройки: на площадке, куда пакет донесли копированием файлов вместо установки, настройки не появлялись вовсе.

Основные ​

НастройкаПо умолчаниюОписание
pageblocks_routingfullРежим маршрутизации: Disabled (off), Route Only (routes), Full API (full).
pageblocks_strict_routesвыклСтрогое сопоставление маршрутов, без снисходительных запасных вариантов.
pageblocks_route_cacheвыклКэшировать собранную таблицу маршрутов. Чистится вместе с кэшем MODX.
pageblocks_site_modeprodProduction или Development. См. Почту — в dev не даёт письмам уйти живым пользователям.
pageblocks_versioningвклХранить историю версий объектов, чтобы правки можно было откатить.
pageblocks_moderationвыклОчередь модерации: значок в верхнем меню, виджет дашборда и галочка «Модерация» в конструкторе таблиц.
pageblocks_hide_templatesID шаблонов, где вкладка PageBlocks скрыта.
pageblocks_hide_parentsID родителей, где вкладка скрыта.
pageblocks_hide_resourcesID ресурсов, где вкладка скрыта.
pageblocks_hide_usersID пользователей, которым вкладка не показывается.
pageblocks_hide_user_groupsГруппы пользователей, которым вкладка не показывается.

Отсутствующий pageblocks_routing — это не off

Установка ставит full. Но если ключа в настройках нет вовсе, компонент читает это как routes: маршруты работают, полного API нет. Выключить маршрутизацию можно только явным off.

Модерация меняет таблицы

Настройка сама по себе ничего не модерирует — она открывает галочку «Модерация» в конструкторе таблиц. Отмеченная таблица при сохранении получает колонку moderation_at, и очередь отбирает строки именно по ней. Выключили настройку — в очередь ничего не ставится, колонка у новых таблиц не заводится.

Выключено по умолчанию намеренно: сайту, где всё публикуется сразу, модерация даёт пункт меню, виджет и запрос счётчика на каждой странице менеджера — ради очереди, которая всегда пуста.

Шаблонизатор ​

НастройкаПо умолчаниюОписание
pageblocks_elements_path{core_path}App/elements/Где лежат файловые чанки и шаблоны.
pageblocks_fenom_auto_reloadвклПерекомпилировать шаблон при изменении исходника. На нагруженном боевом стоит выключить — но тогда не забывать чистить кэш после каждой правки.
pageblocks_file_elements_onlyвыклБрать шаблоны только из файлов, игнорируя чанки MODX.
pageblocks_default_chunksСлужебная: контрольные суммы дефолтных чанков. Заполняет и читает установка, руками не правится.

Зачем компонент помнит суммы дефолтных чанков

Чтобы при обновлении не затереть вашу правку. Чанк, совпавший с суммой, считается нетронутым и обновляется; изменённый — остаётся как есть. Стёрли настройку — все дефолтные чанки выглядят правлеными, и обновление их больше не трогает.

CSS ​

НастройкаПо умолчаниюОписание
pageblocks_load_stylesвклОтдавать стили блоков компонента. Выключено — {pb_styles} возвращает пустую строку.

На обычной странице MODX они подключаются сами: событие OnWebPageInit регистрирует их через regClientCSS, и MODX вставляет <link> в <head>.

Исключение — страница, которую отдаёт роутер компонента. OnHandleRequest отправляет ответ и выходит раньше, чем наступит это событие, поэтому regClientCSS не срабатывает вообще: такому шаблону нужен тег {pb_styles} в <head>. См. Псевдо-теги и Первую страницу.

JavaScript ​

Имена классов, которые фронтовые скрипты вешают на элементы. По умолчанию рассчитаны на Bootstrap 5; проще поменять их под свой фреймворк, чем бороться с ними.

НастройкаПо умолчаниюОписание
pageblocks_load_scriptsвклПодключать скрипты компонента на фронте.
pageblocks_hidden_classd-noneКласс, скрывающий элемент.
pageblocks_field_erroris-invalidКласс поля, не прошедшего валидацию.
pageblocks_field_msg_errorinvalid-feedbackКласс текста ошибки под таким полем.
pageblocks_msg_errortext-error,text-dangerКлассы сообщения об ошибке.
pageblocks_msg_successtext-successКлассы сообщения об успехе.

Изображения ​

Применяются, когда картинка проходит через обработку компонента.

НастройкаПо умолчаниюОписание
pageblocks_image_formatwebpФормат на выходе.
pageblocks_image_quality82Качество сжатия.
pageblocks_image_max_width0Ужать до этой ширины. 0 — без ограничения.

Кэш ​

НастройкаПо умолчаниюОписание
pageblocks_http_cacheвыклКэшировать ответы целиком.
pageblocks_http_cache_ttl3600Время жизни в секундах.

Почта ​

НастройкаПо умолчаниюОписание
pageblocks_admin_emailАдрес, который продолжает получать письма, пока сайт в режиме dev.
pageblocks_dev_mail_groupsAdministratorГруппы, которые продолжают получать письма в режиме dev.

Эта пара — предохранитель, а не предпочтение

При pageblocks_site_mode = dev письма уходят только на pageblocks_admin_email и в перечисленные группы; остальные отбрасываются, и факт пишется в лог MODX.

Важнее всего это на копии боевой базы. Тестовая площадка, поднятая из дампа, наследует оттуда prod, предохранитель оказывается выключен, и один прогон крона рассылает письма всем пользователям из таблицы. Залили дамп — первым делом верните режим dev.

API ​

CORS для REST API. Выключен, пока pageblocks_cors_origins пуст.

НастройкаПо умолчаниюОписание
pageblocks_cors_originsРазрешённые источники. Пусто — CORS выключен.
pageblocks_cors_pathsapi/*Пути, на которые распространяются заголовки.
pageblocks_cors_methodsGET,POST,PUT,PATCH,DELETE,OPTIONSРазрешённые методы.
pageblocks_cors_headersAuthorization,Content-Type,X-Requested-With,X-API-KeyРазрешённые заголовки запроса.
pageblocks_cors_expose_headersЗаголовки ответа, доступные браузеру.
pageblocks_cors_credentialsвыклРазрешить передачу учётных данных.
pageblocks_cors_max_age86400Время жизни preflight-кэша в секундах.

Блоки ​

НастройкаПо умолчаниюОписание
pageblocks_block_groupsГруппы, по которым раскладываются блоки в конструкторе.

Безопасность ​

Заголовки, которые компонент добавляет в ответ. Подробно — Заголовки безопасности.

НастройкаПо умолчаниюОписание
pageblocks_security_headersвклОтправлять заголовки безопасности. Выключает сразу все, включая заполненные ниже.
pageblocks_security_frame_optionsSAMEORIGINX-Frame-Options: кто может открыть сайт во фрейме. DENY — никто.
pageblocks_security_referrer_policystrict-origin-when-cross-originReferrer-Policy: сколько адреса видит чужой сайт при переходе.
pageblocks_security_permissions_policyPermissions-Policy: какие возможности браузера запрещены. Пусто — не отправлять: запрет geolocation ломает карты.
pageblocks_security_hsts0Strict-Transport-Security, в секундах. 0 — выключено. Уходит только по https.
pageblocks_security_cspContent-Security-Policy: откуда странице разрешено грузить скрипты, стили и картинки.

Пустое значение означает «этот заголовок не отправлять». Три заполненных работают сразу после установки, потому что не ломают ничего; три пустых требуют осознанного решения.

HSTS и CSP умеют положить рабочий сайт

Браузер запоминает HSTS надолго и обратно по http уже не пустит — включайте, только когда https работает на всём сайте. CSP ломает инлайновые скрипты и сторонние виджеты. Подбирайте на копии, а не на бою.

Карты ​

Провайдер для поля Карта выбирается один раз на сайт.

НастройкаПо умолчаниюОписание
pageblocks_map_typeleafletleaflet — OpenStreetMap, работает без ключа. ymaps — Яндекс.Карты.
pageblocks_yandex_apikeyКлюч для ymaps, получается на панели разработчика Яндекса. Без него карта останется пустой.

ReCAPTCHA ​

Ключи для middleware recaptcha, см. Middleware.

НастройкаПо умолчаниюОписание
pageblocks_recaptcha_serviceGoogle reCAPTCHAИспользуемый сервис защиты от спама.
pageblocks_recaptcha_public_keySite key, подставляется в форму на фронте.
pageblocks_recaptcha_secret_keySecret key, по нему проверяется токен на сервере.

Сами настройки ничего не включают: пустой секретный ключ middleware читает как «проверка выключена» и пропускает запрос дальше.

Лицензия ​

Руками здесь делать нечего. Ключ вводится в окне установки платного пакета, остальное компонент ведёт сам — см. Лицензия.

НастройкаПо умолчаниюОписание
pageblocks_license_api_keyКлюч из письма о покупке — попадает сюда из окна установки.
pageblocks_license_keyСлужебное, заполняется автоматически.
pageblocks_license_serverhttps://boshnik.com/…Адрес выдачи лицензий. Менять только если попросил продавец.
pageblocks_license_tryСлужебное, заполняется автоматически.

Настройки pageblocks_license_state на новых установках больше нет: она обслуживала льготный период, которого не стало. Если сайт поставлен раньше, строка осталась — она ни на что не влияет, её можно удалить.

Перевода здесь нет ​

Ключи API, модели и промпты для машинного перевода — не системные настройки. Каждый переводчик это строка со своим ключом и моделью, см. Переводчики.

© PageBlocks 2019-present