Middle Компоненты: разработка Обязательно

Комплексные компоненты и SEF-режим

Комплексные компоненты строят целые разделы сайта на базе механизма ЧПУ (SEF) и правил маршрутизации в urlrewrite.php. Класс CComponentEngine сопоставляет текущий URL с шаблонами путей разделов и элементов, после чего подключает соответствующие простые компоненты с передачей контекста $component.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Настройка SEF в компонентах
  • 2
    Шаблоны SEF-URL
  • 3
    Символьные коды

Материалы

Проверь себя

Заказчик жалуется: после переноса каталога из /catalog/ в /shop/ все карточки отдают 404, хотя элементы на месте. Где искать?

В urlrewrite. Запись с CONDITION вида #^/catalog/# и PATH к физическому файлу создаётся при сохранении страницы в редакторе, а при переносе руками остаётся старой. Плюс SEF_FOLDER в параметрах должен совпадать с новым путём — guessComponentPath() сверяет с ним начало запрошенного URL.

Почему два шаблона путей «#SECTION_CODE#/» и «#ELEMENT_CODE#/» в одном компоненте — ошибка, даже если ядро их приняло?

Шаблоны обязаны различаться без учёта переменных. Эти два одинаковы структурно, и CComponentEngine сопоставит запрос первому подходящему: карточка элемента откроется как раздел или наоборот. Нужна различающая часть, например «#SECTION_CODE#/» и «item/#ELEMENT_CODE#/».

Чем комплексный компонент в SEF-режиме отличается от маршрута в /local/routes/web.php?

Комплексный компонент сам разбирает остаток URL после SEF_FOLDER по своим шаблонам, а до него запрос доводит urlrewrite. Роутинг разбирает URL до контроллера или PublicPageController по правилам в файле и не требует комплексного компонента вообще. Для нового раздела документация рекомендует роутинг.

Что делает VARIABLE_ALIASES и когда его трогать?

Задаёт, под какими именами переменные из URL или запроса попадут в arVariables, например SECTION_ID под именем sid. Трогать его нужно только при конфликте имён GET-параметров с другими компонентами на странице.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти