Стажировка на реальных проектах:
наполнение портфолио, помощь с работой и заказами, пробные собеседования. Жми для подробностей→
79 of 152 menu
Внимание! Репетиторство по Python! Осталось последнее место! Стоимость: 20$ за занятие 1.5 часа. Жми для подробностей!

Таблица oc_category_to_layout

Таблица oc_category_to_layout является связующей таблицей в OpenCart. Она определяет, какой макет (шаблон) страницы должен использоваться для отображения конкретной категории товаров. Это позволяет администратору назначить для отдельных категорий уникальный дизайн, отличающийся от стандартного макета каталога.

Поля

Поле Тип данных Описание
category_id int Идентификатор категории. Внешний ключ, который ссылается на таблицу oc_category.
store_id int Идентификатор магазина (в мультисторе). Внешний ключ, который ссылается на таблицу oc_store. Для односторовых установок обычно равен 0.
layout_id int Идентификатор макета (layout). Внешний ключ, который ссылается на таблицу oc_layout.

Как это работает

В админ-панели OpenCart, при редактировании категории, на вкладке "Дизайн" администратор может выбрать макет, который будет использоваться для отображения страницы этой категории. При сохранении категории система создает или обновляет запись в таблице oc_category_to_layout.

Когда пользователь открывает страницу категории на сайте, система ищет в этой таблице запись с category_id текущей категории и store_id текущего магазина. Если запись найдена, то для отображения страницы используется макет с layout_id из этой записи. Если запись не найдена, то используется макет по умолчанию для страниц категорий (обычно это макет с названием "Category").

Эта система обеспечивает гибкость в дизайне: разные категории могут иметь совершенно разное оформление. Например, для категории "Акции" можно использовать макет с широкими баннерами, а для категории "Электроника" - макет с техническими спецификациями в боковой колонке.

Важно отметить, что данная таблица не содержит самих данных о макетах или категориях, а лишь связывает их идентификаторы. Сами макеты определяются в таблице oc_layout, а их Route-привязки - в таблице oc_layout_route.

Пример SQL-запроса

Получить все назначенные макеты для категорий можно следующим запросом:

SELECT ct.*, c.name as category_name, l.name as layout_name FROM oc_category_to_layout ct LEFT JOIN oc_category c ON (ct.category_id = c.category_id) LEFT JOIN oc_layout l ON (ct.layout_id = l.layout_id) ORDER BY ct.category_id;

Смотрите также

  • таблицу oc_category,
    которая хранит основную информацию о категориях
  • таблицу oc_layout,
    которая определяет доступные макеты страниц
  • таблицу oc_layout_route,
    которая задает правила применения макетов по умолчанию
  • таблицу oc_product_to_layout,
    которая выполняет аналогичную функцию для товаров