Таблица oc_custom_field_description
Таблица oc_custom_field_description является частью системы пользовательских полей в OpenCart и предназначена для хранения локализованных названий и описаний этих полей на разных языках. Каждое дополнительное поле может иметь несколько записей в этой таблице - по одной для каждого языка магазина.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
custom_field_id |
int |
Идентификатор пользовательского поля. Внешний ключ, связывающий описание с основной записью в таблице oc_custom_field.
|
language_id |
int |
Идентификатор языка. Внешний ключ для таблицы oc_language. Определяет, для какого языка предназначено данное описание.
|
name |
varchar(128) |
Название пользовательского поля, которое будет отображаться пользователю на фронтенде (например, "Номер лицензии", "Любимый цвет"). |
Как это работает
Когда администратор создает новое пользовательское поле в панели управления (Администрирование → Каталог → Дополнительные поля), система сначала создает запись в основной таблице oc_custom_field, где хранятся технические параметры поля (тип, расположение, валидация и т.д.). После этого для каждого активного языка магазина создается отдельная запись в таблице oc_custom_field_description, куда администратор вводит переведенное название поля.
Например, если в магазине используются русский (language_id = 1) и английский (language_id = 2) языки, то для одного custom_field_id в таблице oc_custom_field_description будет существовать две записи: одна с name на русском, другая - с name на английском.
При отображении форм (регистрации, оформления заказа, редактирования адреса) система, в зависимости от выбранного пользователем языка, подставляет соответствующее название из этой таблицы в подпись к полю.
Пример SQL-запроса
Получить все локализованные названия для конкретного пользовательского поля можно следующим запросом:
SELECT cfd.*, l.name as language_name, l.code as language_code
FROM oc_custom_field_description cfd
LEFT JOIN oc_language l ON (cfd.language_id = l.language_id)
WHERE cfd.custom_field_id = 7
ORDER BY l.sort_order;
Смотрите также
-
таблицу
oc_custom_field,
которая хранит основные параметры дополнительных полей -
таблицу
oc_custom_field_value,
которая хранит значения для полей типа "Select" или "Radio" -
таблицу
oc_custom_field_value_description,
которая хранит локализованные названия значений для полей