Сниппет SHKwidget для MODX Evo ✈ Evolution CMS
- Дополнения
- Shopkeeper
- Сниппет SHKwidget
Сниппет SHKwidget для MODX Evo ✈ Evolution CMS
Описание
Сниппет для создания виджетов (выпадающий список, радиокнопка, чекбокс) параметров товаров в интернет-магазине. Работает совместно со сниппетом Shopkeeper. Использовать только на странице товара. При выводе списка товаров c помощью Ditto - использовать экстендер SHKwidget (rus_doc_ditto_extender.html).
Установка
- В системе управления перейти "Элементы" -> "Управление элементами" -> "Сниппеты".
- Нажать ссылку "Новый сниппет".
- Название сниппета: SHKwidget,
Описание: Виджеты для Shopkeeper,
Открыть файл SHKwidget_snippet.txt из папки install, скопировать содержимое и вставить в поле "Код сниппета". Нажать кнопку "Сохранить". - Создайте параметр TV с типом ввода "Textarea" или "Text". (например "param1").
- При добавлении (и редактировании) товара параметры задаются по такому принципу:
Параметр1==Значение1||Параметр2==Значение2||...
Пример (первое значение пусто):
==||Подарочная упаковка==35||Подарочная сумочка==50
Для чекбокса: Доставка==150
Можно задать параметры со значением "0". Это полезно для параметров, которые не влияют на цену (например цвет). Пример: синий==0||зеленый==0||красный==0
Это подходит только для select, radio или checkbox. Про &format=`radioimage` читайте ниже.
Если в значении доп.параметра указать его цену с символом "*" (звездочка без кавычек), то цена товара умножится на цену доп. параметра. Пример значения доп. параметра: 100 г.==*1|150 г.==*1.5||200 г.==*2
Параметры сниппета
&docid - id документа, для которого задан параметр TV (по умолчанию ID текущей страницы);
&format - тип создаваемого элемента. Возможные значения: select, radio, checkbox, radioimage (по умолчанию `select`);
&tvname - имя параметра TV;
&first_selected - отметить (значение `1`) или нет (значение `0`) первое значение элемента (по умолчанию `0`);
&wraptag - обернуть тегом. Значение - любой HTML-тег, например `div`. Значение `0` (по умолчанию) - не оборачивать.
Может использоваться для radio и checkbox;
&function - JavaScript-функция, которая должна сработать при выборе. По умолчанию - `jQuery.additOpt(this)`.
Пример вызова
[[SHKwidget? &format=`select`&tvname=`param1`]]
Создание списка доступных цветов, материалов и т.п. (&format=`radioimage`)
Тип (format) виджета radioimage служит для визуального представления списка доступных цветов или материалов для товара. Картинки цветов, материалов и т.п. загружаются с помощью TV-image, при редактировании товара можно выбрать их из списка.
- Создайте в дереве документов раздел, например "Материалы". ID этого раздела (указан в скобках) позже понадобится.
- В этом разделе создайте для каждого материала (цвета или т.п.) отдельную страницу. Для всех материалов нужно ввести свое название (заголовок).
Если для этого раздела нет TV с типом ввода "Image", создайте его (запомните ID, которое указано в скобках после названия). Загрузите для каждого материала картинку. - Создайте новый TV-параметр. "Элементы" -> "Управление элементами" -> "Параметры (TV)" -> "Новый параметр (TV)".
- Имя параметра: например "material" (без кавычек).
- Заголовок: например "Материал".
- Тип ввода: Listbox (Multi-Select) или Check Box
-
В поле Возможные значения введите такой запрос:
@SELECT cnt.pagetitle, tvc.id FROM modx_site_content cnt, modx_site_tmplvar_contentvalues tvc WHERE cnt.id = tvc.contentid AND tvc.tmplvarid = 4 AND cnt.parent = 48
где 4 - ID TV-картинки, 48 - ID раздела со страницами материалов, modx_ - префикс таблиц в БД, заданный при установке MODx. - Визуальный компонен: Delimited List
Delimiter - "," (запятая без кавычек).
- В блоке "Доступ шаблонов" выберите шаблон товаров (чтобы TV был доступен при редактировании товаров).
- Нажмите "Сохранить". Теперь для каждого товара можно выбрать материал (цвет или т.п.) из списка. Для выделения нескольких пунктов используйте клавишу CTRL или SHIFT.
Пример вызова сниппета SHKwidget в шаблоне товара:
<div class="materials">[[SHKwidget? &format=`radioimage`&tvname=`material`&first_selected=`1`]]</div>