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

Таблица oc_filter_description

Таблица oc_filter_description является частью системы фильтрации товаров в OpenCart. Она предназначена для хранения многоязычных названий фильтров, которые создаются в административной панели и используются для фильтрации товаров в категориях.

Поля

Поле Тип данных Описание
filter_id int Идентификатор фильтра. Внешний ключ, связывающий описание с основной записью фильтра в таблице oc_filter.
language_id int Идентификатор языка. Внешний ключ для таблицы oc_language. Определяет, для какого языка предназначено данное название фильтра.
filter_group_id int Идентификатор группы фильтров. Внешний ключ для таблицы oc_filter_group. Указывает, к какой группе принадлежит данный фильтр.
name varchar(64) Название фильтра на указанном языке. Именно это название видят пользователи в интерфейсе магазина при выборе фильтров.

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

Система фильтров в OpenCart состоит из трех основных таблиц: oc_filter_group (группы фильтров), oc_filter (сами фильтры) и oc_filter_description (описания фильтров). Таблица oc_filter_description обеспечивает многоязычную поддержку названий фильтров.

При создании фильтра в административной панели (Раздел "Каталог" → "Фильтры") администратор сначала создает группу фильтров, затем добавляет в нее конкретные фильтры. Для каждого фильтра можно указать название на всех доступных в системе языках. Эти названия сохраняются в таблице oc_filter_description.

Когда покупатель заходит в категорию товаров, к которой привязаны фильтры, система обращается к таблице oc_filter_description и извлекает названия фильтров на текущем языке магазина. Это позволяет создать многоязычный интерфейс фильтрации.

Первичный ключ таблицы состоит из двух полей: filter_id и language_id. Это означает, что для одного фильтра может существовать несколько записей с названиями на разных языках, но только одна запись для каждого языка.

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

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

SELECT fd.filter_id, fd.name as filter_name, fg.name as group_name FROM oc_filter_description fd LEFT JOIN oc_filter_group_description fg ON (fd.filter_group_id = fg.filter_group_id AND fg.language_id = fd.language_id) WHERE fd.language_id = 1 ORDER BY fg.name, fd.name;

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

  • таблицу oc_filter,
    которая содержит основные данные фильтров
  • таблицу oc_filter_group,
    которая хранит группы фильтров
  • таблицу oc_filter_group_description,
    которая содержит описания групп фильтров
  • таблицу oc_product_filter,
    которая связывает товары с фильтрами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить