Таблица oc_layout_route
Таблица oc_layout_route является системной таблицей в OpenCart, которая связывает макеты (layouts) с определенными URL-маршрутами. Это позволяет назначать разные макеты страниц для различных разделов магазина, категорий товаров, производителей, информационных страниц и специальных маршрутов.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
layout_route_id |
int |
Уникальный идентификатор записи связи макета с маршрутом. Автоинкрементное поле. |
layout_id |
int |
Внешний ключ, который связывает маршрут с конкретным макетом. Ссылается на таблицу oc_layout.
|
store_id |
int |
ID магазина, для которого действует это правило. Ссылается на таблицу oc_store. Значение 0 означает, что правило применяется ко всем магазинам.
|
route |
varchar(255) |
Маршрут (route) OpenCart, для которого применяется данный макет. Определяет, для каких URL-адресов будет использоваться указанный макет. |
Как это работает
В админ-панели OpenCart при редактировании макета можно указать, для каких маршрутов он должен применяться. Система сохраняет эти настройки в таблицу oc_layout_route.
Когда пользователь заходит на страницу магазина, система OpenCart анализирует текущий URL и определяет соответствующий маршрут. Затем выполняется поиск в таблице oc_layout_route для определения макета, который должен быть применен для этого маршрута.
Поиск осуществляется в следующем порядке приоритета:
- Конкретный маршрут для текущего магазина
- Конкретный маршрут для всех магазинов (
store_id=0) - Общий маршрут для текущего магазина
- Общий маршрут для всех магазинов (
store_id=0)
Типичные примеры маршрутов:
product/category- для категорий товаровproduct/product- для карточек товаровproduct/manufacturer- для производителейinformation/information- для информационных страницcommon/home- для главной страницы
Также поддерживаются специальные маршруты с параметрами, например product/category&path=20_27 для конкретной категории.
Пример SQL-запроса
Посмотреть все связи макетов с маршрутами для конкретного магазина:
SELECT lr.*, l.name as layout_name
FROM oc_layout_route lr
LEFT JOIN oc_layout l ON (lr.layout_id = l.layout_id)
WHERE lr.store_id = 0 OR lr.store_id = 1
ORDER BY lr.route;
Смотрите также
-
таблицу
oc_layout,
которая хранит основные данные макетов -
таблицу
oc_layout_module,
которая определяет модули в макетах -
таблицу
oc_store,
которая содержит информацию о магазинах -
таблицу
oc_setting,
которая хранит настройки системы