compare1.1-pl
Snippet Compare for MODX Revolution
Compare Products in the parameters. Product ID comparison are stored in cookies. It can also be used for the “Favorites”.
Andchir http://modx-shopkeeper.ru/
Студия “Без рекламы” - http://no-ad.ru/
#
Сравнение товаров по параметрам. ID товаров для сравнения сохраняются а куках. Можно использовать также для “Избранного”.
#
Параметры сниппета “compare”:
action - Действие. Возможные значения: to_compare - вывод строки со ссылкой на страницу сравнения; print_id_list - список ID товаров, выбранных для сравнения (через запятую); print_products - вывод таблицы параметров товаров (сравнение); print_parent_id - вывод ID категории, товары которой выбраны. По умолчанию - to_compare.
toCompare_tpl - Шаблон вывода строки со ссылкой на страницу сравнения и числом выбранных товаров.
product_tpl - Шаблон вывода таблицы параметров товаров (сравнение). Пример: /chunks/compare_product.tpl
jsScript - Добавлять JS скрипт в
. По умолчанию - 1.minProducts - Минимальное число товаров. По умолчанию - 2.
limitProducts - Максимальное число товаров для сравнения. По умолчанию - 0 (без ограничения).
targetActiveClass = CSS класс, который нужно добавить элементу (чекбокс, кнопка и т.п.) после добавления товара к сравнению.
comparePageId - ID страницы сравнения.
onlyThisParentId - ID категории (документа), в которой можно добавить товары к сравнению. Запрет сравнения товаров из разных категорий. По умолчанию - 0 (любая категория).
filterTVID - TV ID через запятую, которые не нужно выводить в таблице параметров. Можно указать для каждого раздела отдельно (первый - по умолчанию).
ID категории 1~TV ID 1, TV ID 2…||ID категории 2~TV ID 1, TV ID 2…||…
Пример: &filterTVID=5~1,2,5||6~4,2||7~5,1
или без категорий: &filterTVID=1,2,5
removeLastTwo - Если сравниваются только два товара, при удалении одного удалять оба (т.к. сравнивать будет нечего). 1 - включить (по умолчанию), 0 - выключить.
noResults - Текст, который будет выводиться, если не выбрано ни одного товара для сравнения.
Пример toCompare_tpl:
Выбрано [[+count_current]]
из [[+count_max]]
/ сравнить
/ отменить
Шаблон таблицы параметров товаров для сравнения:
См. пример /chunks/compare_product.tpl
Шаблон разделен на 6 частей (разделитель ).
1 - верхняя часть;
2 - строка одного параметра.
[[+inner]]
- ячейки таблицы с данными,
[[+classes]]
- CSS-классы для строки таблицы: even - четная строка, odd - нечетная строка, last - последняя строка.
3 - первая ячейка верхнего ряда.
4 - ячейки верхнего ряда таблицы. Например можно вывести названия товаров и фото.
Плейсхолдеры - любые поля и имена TV;
[[+iteration]]
- порядковый номер товара в списке (колонки),
[[+classes]]
- CSS-классы для ячейки таблицы: even - четная колонка, odd - нечетная колонка, last - последняя колока.
5 - ячейка с названием параметра (название берется из поля “Заголовок” в свойствах TV).
[[+param_name]]
- наименование (заголовок) параметра,
[[+row_number]]
- номер строки таблицы.
6 - ячейка со значением параметра.
[[+param_name]]
- наименование параметра,
[[+tv_name]]
- имя TV,
[[+param_value]]
- значение параметра,
[[+iteration]]
- порядковый номер товара в списке,
[[+row_number]]
- номер строки таблицы,
[[+classes]]
- CSS-классы для ячейки таблицы: even - четная колонка, odd - нечетная колонка, first - первая колонка, last - последняя колока.
7 - нижняя часть.
Примеры вызова
На странице каталога - Добавление к сравнению:
[[!compare?
&comparePageId=
15
&limitProducts=4
&onlyThisParentId=
]][[*id]]
На странице каталога - Добавление в избранное:
[[!compare?
&comparePageId=
26
&minProducts=1
&targetActiveClass=active
&toCompare_tpl=toFavorites
]]
Страница сравнения:
[[!compare?
&action=
print_products
&product_tpl=@FILE compare_product.tpl
&filterTVID=4,16
]]
Избранное:
[[!getProducts?
&resources=
&tpl=[[!compare?action=
print_id_list]]
product_fav
&noResults=<p>Вы ничего не выбрали.</p>
]]
Пример чекбокса, который добавляет товары к сравнению:
[[+id:in_compare=`checked="checked"`]] />
Для отметки товаров, которые выбраны к сравнению можно использовать модификатор “compare”. Примеры использования:
1.
<
div class=”product [[+id:in_compare=
”>…active
]]
2. [[+id:in_compare=`checked="checked"`]] />
Для удаления из избранного в чанке вывода товара использовать ссылку такого вида:
JavaScript-функции, которые вызываются при определенных событиях:
cmpOnToCompareLinkMinimum - если кликнули по ссылке “Сравнить”, но выбран только один товар или ни одного (можно вывести сообщение); cmpOnToCompareCheckClicked(id,parent,elem) - клик по чекбоксу “сравнить”; cmpOnToCompareLimitReached(limit) - выбрано максимальное число товаров для сравнение (можно вывести сообщение); cmpOnToCompareFromAnotherCategory - если добавляется товар из другой категории (можно вывести сообщение). cmpOnToCompareAdded(id,parent,elem) - Товар добавлен к сравнению. cmpOnToCompareRemoved(id,parent,elem) - Товар убран из списка к сравнению.
Просто создайте функцию с таким именем и она будет вызвана при соответствующем событии. Пример: