Добавить комментарий

В этой статье я расскажу, как использовать модуль Commerce Fancy Attributes, с помощью которого можно отображать иконки цветов или изображения вместо простого выбора из списка.

Для начала устанавливаем модуль и включаем модуль:

$ drush dl commerce_fancy_attributes
$ drush en commerce_fancy_attributes

Теперь надо создать словарь цветов, и добавить к нему поле цвета. Идем в «Структура → Таксономия» (admin/structure/taxonomy), и создаем новый словарь «Colors» (admin/structure/taxonomy/add)

Жмем «Изменить словарь → Управление полями» (admin/structure/taxonomy/colors/fields), и добавляем текстовое поле, в котором будет хранится hex-значение цвета (#ffffff — белый, #000000 — черный, и т. д.). Я в данном случае использовал обычное текстовое полe, но можно использовать модули Color Field или Colorfield для более удобного визуального выбора цвета.

Теперь идем в «Управление отображением», (admin/structure/taxonomy/colors/display), и жмем вкладку «Add to Cart form — Attribute» (admin/structure/taxonomy/colors/display/add_to_cart_form). Здесь мы убираем описание, а поле «Цвет» делаем видимым, скрываем метку и выбираем формат «Цвет» (Color).

Добавим несколько терминов, вставляя в поле «Цвет» его шестнадцатеричное значение.

Далее добавим атрибут цвета к товару. Идем в «Магазин → Товары → Типы товаров → Product → Управление полями» (admin/commerce/products/types/product/fields) и добавляем поле «Цвет», тип «Ссылка на термин».

Выбираем ранее созданный словарь «Colors»

В настройках поля отмечаем «Активировать это поле как поле атрибута на форме добавления в корзину.» и в опции «Attribute selection widget» выбираем «Rendered term»

Теперь в «Управление отображением» скрываем поле «Цвет», т. к. оно будет отображаться в поле «Price», вместе с другими атрибутами (если они есть) и кнопкой добавления в корзину.

На этом настройка завершена, и если мы имеем несколько товаров разных цветов в одном Product Display, то отобразятся иконки цветов. Их размер, кстати, легко переопределить через css, к примеру, чтобы сделать их в два раза больше, надо добавить в свою тему такие правила:

.commerce-fancy-attributes-color {
  width: 30px;
  height: 30px;
}

Аналогично можно отображать изображения вместо простых цветов. Для этого в «Управлении полями» термина (admin/structure/taxonomy/colors/fields) надо добавить поля для изображения

Потом в «Управлении отображением → Add to Cart form — Attribute» делаем это поле видимым, а его метку скрываем.

После этого, если термин имеет изображение, оно будет отображаться в атрибутах товара.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.