$compare = $this->macros('emarket', 'compare');
Пример вызова
udata://emarket/compare/notemplate/(item_properties)
XML-ответ UData
<udata module="emarket" method="compare" generation-time="0.032812">
<headers>
<items>
<item id="61" link="/shop/mobil_naya_svyaz/smartfony/ericssont_450/">Ericssont 450</item>
<item id="41" link="/shop/televizory/cvetnye_televizory/sovet_tc2/">Sovet TC2</item>
</items>
</headers>
<fields>
<field title="Вес" name="weight" type="float">
<values>
<item id="61">
<value id="9246" name="weight" type="float">
<title>Вес</title>
<value>0.21</value>
</value>
</item>
<item id="41">
<value id="9241" name="weight" type="float">
<title>Вес</title>
<value>9</value>
</value>
</item>
</values>
</field>
<field title="Экран" name="ekran" type="relation" par="1">
...
</field>
<field title="Цвет" name="cvet" type="relation">
...
</field>
<field title="Операционная система" name="operacionnaya_sistema" type="relation" par="1">
...
</field>
<field title="Время работы от АКБ, час" name="vremya_dejstviya_ot_akb" type="int">
...
</field>
</fields>
</udata>
Вывод списка товаров и характеристик осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl.
Используемые блоки шаблона
compare_block
Общий блок для вывода списка сравниваемых товаров и их характеристик.
- %headers%
-
Указывает место, куда будет выведен список товаров.
- %lines%
-
Указывает место, куда будет выведен список сравниваемых характеристик.
compare_block_header
Блок, выводящий сравниваемые товары.
- %items%
-
Указывает место, куда будет выведен список товаров.
compare_block_header_item
Блок, выводящий отдельный товар из сравниваемых.
- %id%
-
Идентификатор товара.
- %link%
-
Ссылка на страницу товара.
- %title%
-
Название товара.
- %price%
-
Стоимость товара.
compare_block_line
Блок выводящий одну из строк со списком характеристик.
- %title%
-
Название поля (характеристики).
- %name%
-
Идентификатор поля.
- %type%
-
Тип поля.
- %par%
-
Локальный макрос, позволяющий различать четные и нечетные строки. Возвращает "1" для четных и "0" для нечетных.
- %values%
-
Блок выводящий каждое значение характеристики для каждого из сравниваемых товаров по заданному в блоке "
compare_block_line_item
" шаблону.
compare_block_line_item
Блок, оформляющий отдельную характеристику (значение поля) в строке списка. Для получения значения поля рекомендуется воспользоваться в этом блоке макросом %data getProperty()%, передав ему следующие параметры:
- %id%
-
Идентификатор товара.
- %name%
-
Название поля.
Название
%emarket compare()% — Выводит список добавленных к сравнению товаров и список сравниваемых характеристик.
Параметры: emarket compare([template= 'default', groups_names= ''])
- template
-
Шаблон отображения.В XSLT-шаблонизаторе игнорируется.
- groups_names
-
Список групп полей, используемых для сравнения.
Описание
Используется для отображения списка товаров, добавленных к сравнению, с перечислением сравниваемых характеристик для каждого товара.
Если необходимо производить сравнение только по определенным группам полей, нужно указать названия групп полей в параметре groups_names
.
Управление списком сравниваемых товаров
Управлять списком сравниваемых товаров можно при помощи трех следующих методов:
-
метод addToCompare — используется для добавления товара к сравнению. Необходимо в URL передать id добавляемого товара в качестве параметра. Например, следующий код выведет ссылку добавления товара с id=41 к сравнению:
<a href="/emarket/addToCompare/41/">Добавить к сравнению</a>
-
метод removeFromCompare — используется для удаления товара из списка сравнения. Необходимо в URL передать id удаляемого из списка сравнения товара. Например, следующий код выведет ссылку добавления товара с id=41 к сравнению:
<a href="/emarket/removeFromCompare/41/">Х</a>
-
метод resetCompareList — используется для очистки списка сравнения. Вызывается без параметров.
Эти методы не возвращают никаких данных и после совершения действия производят переадресацию обратно на страницу, откуда они были вызваны.
Если есть необходимость воспользоваться ими без переадресации (например, вызов при помощи JavaScript), необходимо добавить в конец URL вызова метода ".json"
.