Таблица oc_banner_image_description
Таблица oc_banner_image_description является вспомогательной таблицей для системы баннеров OpenCart. Она предназначена для хранения текстовой информации (названий, описаний, ALT-текстов) для каждого изображения в баннере на разных языках магазина.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
banner_image_id |
int |
Внешний ключ, который связывает описание с конкретным изображением в баннере. Ссылается на таблицу oc_banner_image.
|
language_id |
int |
Идентификатор языка, для которого предназначено данное описание. Ссылается на таблицу oc_language.
|
banner_id |
int |
Внешний ключ, который связывает описание с баннером. Ссылается на таблицу oc_banner. Это поле обеспечивает прямую связь и часто используется для оптимизации JOIN-запросов.
|
title |
varchar(64) |
Название или заголовок изображения баннера. Может использоваться в подписи или всплывающей подсказке. |
Как это работает
В админ-панели OpenCart при создании или редактировании баннера (Модули > Баннеры) администратор загружает одно или несколько изображений и для каждого из них задает параметры, включая многоязычные названия (title). При сохранении сначала создается запись в таблице oc_banner_image, которой присваивается banner_image_id. Затем для каждого активного языка магазина создается запись в таблице oc_banner_image_description, куда сохраняется title и связывается с соответствующим banner_image_id и language_id.
При отображении баннера на витрине сайта система, в зависимости от выбранного языка пользователя, выбирает из этой таблицы соответствующий заголовок для каждого изображения. Это позволяет легко создавать многоязычные баннеры без дублирования самих изображений.
Первичный ключ для этой таблицы является составным и включает поля banner_image_id и language_id. Это гарантирует, что для одного изображения не может быть двух описаний на одном языке.
Пример SQL-запроса
Выбрать все русские описания для изображений конкретного баннера можно следующим запросом:
SELECT bid.*, l.name as language_name
FROM oc_banner_image_description bid
LEFT JOIN oc_language l ON (bid.language_id = l.language_id)
WHERE bid.banner_id = 5
AND l.code = 'ru';
Смотрите также
-
таблицу
oc_banner,
которая хранит основные данные баннеров -
таблицу
oc_banner_image,
которая хранит настройки изображений баннеров