Часть 07. Настраиваемые поля (custom fields). Типы полей.
В предыдущей статье серии я рассказывал о классификации настраиваемых полей Virtuemart 2 по функциональным возможностям, называя ее «Виды полей». В этой статье я расскажу о том, как классифицировать поля по способу ввода и отображения информации. Эта классификация будет называться «Типы полей». Из статьи вы узнаете, какие в Virtuemart 2 существуют типы полей, как их правильно настроить и для чего можно использовать.
Настраиваемые поля Virtuemart 2. Список полей.
На данный момент, по умолчанию, Virtuemart 2 имеет 14 типов настраиваемых полей:
- Время;
- Дата;
- Логический;
- Родитель;
- Целое число;
- Строка;
- Изображение;
- Атрибут корзины;
- Общий дочерний вид;
- Редактор;
- Область текста;
- Плагины (customer text input);
- Плагины (product specification);
- Плагины (stockable variants).
Некоторые из типов интуитивно понятны, а некоторые могут вызывать затруднения. Так или иначе, мы рассмотрим поле каждого типа отдельно, но сначала поговорим про общие настройки, свойственные полям любого типа.
Настраиваемые поля Virtuemart 2. Общие настройки.
11 из 14 типов полей имеют одни и те же настройки. Они показаны на рисунке:
Настройки следующие:
– Заголовок – заголовок поля, который будет отображаться в админке при добавлении поля, так и на сайте, при отображении данных поля.
– Опубликовано – позволяет включать и отключать поле, не удаляя его.
– Родитель – показывает в списке все имеющиеся поля типа «Родитель». Позволяет группировать поля по категориям (родителям). Подробнее об этом в описании типа поля «Родитель».
– Атрибут корзины – позволяет задать вид поля (см. предыдущую статью серии). Если установлено «Да», то данное поле будет являться атрибутом корзины и ему можно будет задать стоимость. Если «Нет», то данное поле будет являться просто параметром товаров.
– Описание – описание позволяет уточнить то, чем является данное поле, дать больше информации менеджеру, который будет наполнять сайт и покупателю.
– По умолчанию – очень важная опция. Позволяет задавать значение для поля по умолчанию. Иногда может быть очень удобна. Если в опции «Список» (см. ниже), выбрано «Да», то в этом поле должны быть указаны все возможные значения списка, разделенные точкой с запятой. Например «синий;зеленый;красный». Это позволит не заполнять значение поля вручную при добавлении товара, а выбрать его из выпадающего списка значений.
– Всплывающая подсказка – название говорит само за себя. Позволяет задать всплывающую подсказку относительно данного поля для покупателя.
– Позиция макета – позволяет группировать поля по позициям в карточке товара. Это нечто, аналогичное позициям модулей в Joomla. Чтобы вывести товары в определенной позиции, пока нужно залезать в код макета товара и прописывать позицию вручную. Это не очень удобно и в дальнейшем разработчики обещают решить этот вопрос.
– Только администратор – как я понимаю, смысл данной опции в том, чтобы поле мог видеть только администратор. У меня она не работает, поле видно в любом случае. Похоже, баг.
– Список? – Если выбрано «Да», то значения поля из опции «По умолчанию» будут представлены в виде выпадающего списка. Если выбрано «Нет», то будет показана просто форма для заполнения.
– Скрыто – Позволяет скрыть отображение поля на сайте. Но все остальное работает (добавление поля для товаров, поиск по полю).
По опциям все. Особо сложного ничего нет. Теперь рассмотрим каждый тип поля подробнее.
Настраиваемые поля Virtuemart 2. Тип поля «Время».
Описание: По идее, должна быть форма ввода времени. На деле ничего не отображается. Возможно, требуется особый формат, но указаний на него нет. В БД записывается как текст.
Как задается:
Как выглядит на сайте:
Не отображается
Настраиваемые поля Virtuemart 2. Тип поля «Дата».
Описание: Форма ввода даты. Реализована удобным календариком.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Логический».
Описание: Позволяет выбирать из двух значений «Да/Нет».
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Родитель».
Описание: Позволяет группировать поля. При добавлении в товаре показывает сразу всю группу дочерних полей (тех, у которых в опции «Родитель» выбран соответствующий родитель).
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Целое число».
Описание: Позволяет задавать целочисленное значение.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Строка».
Описание: Позволяет задавать строковое значение.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Изображение».
Описание: Позволяет выбирать изображения из списка доступных, а затем показывать его на сайте.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Атрибут корзины».
Описание: Позволяет покупателю передать в корзину какие-либо данные в форме текста. Например, это может быть имя, для гравировки или что-то еще. Для этого типа поля опция «Атрибут корзины» должна быть установлена в «Да».
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Общий дочерний вид».
Описание: Позволяет показать дочерние товары в родительском. Работает пока очень неудобно. У товара, к которому применяется этот тип поля, обязательно должны быть дочерние товары. Если они есть, в выпадающем списке на сайте их можно будет выбрать, но при этом откроется этот самый дочерний товар, что неудобно. Уже существуют решения, позволяющие сделать отображение дочерних товаров в виде таблицы и добавить каждому из них кнопку добавления в корзину, но эти решения требуют хаков.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Редактор».
Описание: Показывает wysiwyg-редактор, с помощью которого можно легко добавить еще одно описание к товару в html-формате.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Область текста».
Описание: Показывает область для ввода текста. В принципе, это тот же самый html-редактор, только не визуальный.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Плагины (customer text input)».
Описание: Хитрый плагин, который позволяет увеличивать стоимость товара за заполнение поля или даже за каждый знак заполнения поля (можно выбрать в настройках типа поля). Это может быть полезно, например, когда при покупке кулона можно дополнительной опцией добавить гравировку, и за каждый символ оной брать, скажем, 1 рубль.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Плагины (product specification)».
Описание: Признаюсь, сколько я не пытался понять, в чем смысл данного плагина, так и не смог. На форуме пишут, что он позволяет задавать собственные спецификации товара, которые будут доступны для поиска, но, пардон, разве не все тоже самое делают и остальные поля? В его коде я также не обнаружил ничего особенного.
В общем, если у кого-то из читателей найдется внятное объяснение того, для чего может пригодиться этот плагин, буду крайне признателен, если напишите.
Как задается:
Как выглядит на сайте:
Настраиваемые поля Virtuemart 2. Тип поля «Плагины (stockable variants)».
Описание: Это самый сложный плагин из всех. Он управляет остатками дочерних товаров. Например, вы продаете рубашку трех разных цветов и трех разных размеров. При этом вы хотите чтобы товар был только один с возможностью выбрать цвет и размер при добавлении в корзину, но также вы желаете контролировать остаток рубашек каждого цвета и размера. Подробное описание данного плагина тесно связано с дочерними товарами и тянет на отдельную статью, в которой и появится.
На этом стандартные типы настраиваемых полей Virtuemart 2 заканчиваются. Нужно сделать еще несколько замечаний:
- Не обращайте внимания на внешнюю непривлекательность отображения полей на странице товара. Сейчас речь идет лишь о манипулировании данными. Оформить их красиво сможет любой человек, знакомый с CSS. Также можно взять хороший шаблон Virtuemart, в котором все поля уже оформлены.
- С помощью дополнительных полей можно вывести в карточку и категорию товаров что угодно (например, значки «Новинка», «Хит», и.т.д), правда придется немного поковыряться в коде макета товара или категории. В следующих статьях или кейсах по Virtuemart 2 я буду описывать подробно, как это делается.
- Для поиска товаров по дополнительным полям встроенный функционал отсутствует. Но уже появилось достаточно много сторонних фильтров, которые позволяют фильтровать товары как душе угодно.
- Настраиваемые поля Virtuemart 2 могут быть плагинами Joomla, это означает, что при желании можно реализовать любой функционал, не внося в ядро хаки. Это очень радует.