НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
76 of 152 menu

Таблица oc_layout

Таблица oc_layout является системной таблицей OpenCart, которая хранит определения макетов (схем) страниц. Каждый макет определяет, в каких позициях и какие модули будут отображаться на страницах, которые используют этот макет.

Поля

Поле Тип данных Описание
layout_id int Уникальный идентификатор макета (схемы). Автоинкрементное поле.
name varchar(64) Название макета на основном языке магазина (например, "Home", "Product", "Category").

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

Система макетов в OpenCart позволяет гибко управлять расположением модулей на разных типах страниц. Каждому макету соответствует определенный PHP-файл шаблона в директории catalog/view/theme/[ваша_тема]/template/common/.

Связь между макетами и модулями устанавливается через таблицу oc_layout_module, где для каждого макета указывается, какие модули и в каких позициях должны отображаться.

Связь между макетами и конкретными страницами (товарами, категориями, производителями, информационными страницами) устанавливается через соответствующие таблицы:

oc_product_to_layout - для товаров

oc_category_to_layout - для категорий

oc_manufacturer_to_layout - для производителей

oc_information_to_layout - для информационных страниц

Когда пользователь открывает страницу, система определяет, какой макет должен быть использован, и затем загружает все модули, привязанные к этому макету через таблицу oc_layout_module.

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

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

SELECT l.layout_id, l.name, COUNT(lm.layout_module_id) as module_count FROM oc_layout l LEFT JOIN oc_layout_module lm ON (l.layout_id = lm.layout_id) GROUP BY l.layout_id ORDER BY l.name;

Найти все товары, которые используют определенный макет:

SELECT p.product_id, pd.name as product_name, l.name as layout_name FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_layout ptl ON (p.product_id = ptl.product_id) LEFT JOIN oc_layout l ON (ptl.layout_id = l.layout_id) WHERE l.layout_id = 1;

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

  • таблицу oc_layout_module,
    которая связывает макеты с модулями
  • таблицу oc_module,
    которая хранит настройки модулей
  • таблицу oc_product_to_layout,
    которая связывает товары с макетами
  • таблицу oc_category_to_layout,
    которая связывает категории с макетами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить