Skip to content

Настройка

Что задать после установки, а что работает и без вас.

Маршрутизация

Одна настройка решает, сколько запроса берёт на себя PageBlocks:

pageblocks_routingЧто происходит
Disabled (off)Компонент не трогает маршрутизацию. Все адреса разбирает MODX.
Route Only (routes)Ваши маршруты проверяются, всё несовпавшее уходит в MODX.
Full API (full)Запрос принадлежит PageBlocks.

По умолчанию off — установка ничего не меняет в том, как сайт отвечает, пока вы сами не скажете.

У остальных настроек рабочие значения по умолчанию, полный список — в Системных настройках.

Сервер

  • Apache — переименуйте ht.access в .htaccess
  • Nginx — пропишите правила переписывания: nginx .htaccess не читает

Без этого всё, кроме главной, отдаёт 404: веб-сервер ищет каталог, которого нет, вместо того чтобы отдать адрес в index.php.

Страницы работают сразу

В прикладном слое уже лежат два маршрута для обычных ресурсов MODX, core/App/routes/web.php:

php
<?php

use Boshnik\PageBlocks\Facades\Route;

Route::get('/{alias?}', 'ResourceController@index');
Route::get('/{context}/{alias?}', 'ResourceController@context')->where('context', '[a-z]{2}');

Первый открывает любой ресурс по его алиасу. Второй — многоязычный случай: двухбуквенный префикс считается языком, остальное алиасом. Поэтому адрес вида /en/about начинает работать сразу, как только появился второй язык, и добавлять маршрут не нужно. См. Языки.

ResourceController находит ресурс, подбирает его шаблон и рендерит страницу. Больше ничего, чтобы обслуживать обычный сайт, не требуется.

Эти маршруты в слое сайта, то есть ваши

core/App/routes/ принадлежит сайту, а не компоненту — обновление его не перезапишет. Переопределяйте любой из двух или удаляйте оба и забирайте запрос себе целиком.

Файлы маршрутов читаются по алфавиту

Всё из core/App/routes/ подхватывается глобом и сортируется по имени файла. web.php оказывается ближе к концу, и это намеренно: его /{alias?} ловит всё, что не забрали раньше, поэтому файл, который сортируется после него, не получит шанса.

Называйте файл по разделу — product.php, catalog.php — и он проверится раньше. Это не косметика, а весь механизм очерёдности.

© PageBlocks 2019-present