1
Шаблоны XSLT / Добавление тегов для товаров, и вывод блока с тегами в любом месте сайта
« : 24 Июля 2014, 10:40:07 »
Добрый день, уважаемые форумчане.
Пытаюсь решить следующую задачу:
Собственно сами теги буду хранить в справочнике, в выпадающем списке с множественным выбором.
1) Значения из этого справочника нахожу с помощью Usel (guide.xml):
где {1} - id справочника.
2) В шаблоне сами значения справочника получаю так:
3) Далее используя Usel выборку catalog-tags.xml получаю товары, у которых проставлены теги:
где {1} - id определенного значения из справочника.
Данная выборка возвращает следующий xml:
4) В шаблоне вызов выглядит следующим образом:
Т.е. на данный момент я имею:
1) наименования значения из нужного справочника (которые, по задумке должны стать ссылками)
2) Перечень товаров у которых проставлены теги.
Ступор возник в том, что я не понимаю каким образом я могу сформировать href для ссылок, для того, чтобы при переходе по ним сгенерилась страница с искомыми товарами.
Очень нужна ваша помощь.
Пытаюсь решить следующую задачу:
Цитировать
К каждому товару, в каталоге, необходимо иметь возможность добавлять набор тегов. Далее, на каждой странице необходимо отображать блок с этими тегами в виде ссылок. По клику на ссылку - получаем список товаров с этим тегом.
Собственно сами теги буду хранить в справочнике, в выпадающем списке с множественным выбором.
1) Значения из этого справочника нахожу с помощью Usel (guide.xml):
Код: [Выделить]
<selection>
<target result="objects">
<type id="{1}" />
</target>
</selection>
где {1} - id справочника.
2) В шаблоне сами значения справочника получаю так:
Код: [Выделить]
<xsl:apply-templates select="document(concat('usel://guide/',137))/udata/item" mode="tag_list"/>
3) Далее используя Usel выборку catalog-tags.xml получаю товары, у которых проставлены теги:
Код: [Выделить]
<selection>
<target result="pages">
<type module="catalog" method="object" />
</target>
<property name="tegi_dlya_tovarov">
<object>{1}</object>
</property>
<limit page="0">{limit}</limit>
</selection>
где {1} - id определенного значения из справочника.
Данная выборка возвращает следующий xml:
Код: [Выделить]
<udata xmlns:xlink="http://www.w3.org/TR/xlink" module="usel" method="catalog-tags" generation-time="0.078008">
<page id="60" parentId="40" link="/shop/dvd_tehnika/dvd_rekordery/dual_c819/" is-active="1" object-id="425" type-id="126" update-time="1406131339" alt-name="dual_c819" xlink:href="upage://60">
<basetype id="56" module="catalog" method="object">Объекты каталога</basetype>
<name>Dual C-819</name>
</page>
<page id="59" parentId="39" link="/shop/dvd_tehnika/dvd_pleery/toshiba_srq660/" is-active="1" object-id="422" type-id="126" update-time="1406142990" alt-name="toshiba_srq660" xlink:href="upage://59">
<basetype id="56" module="catalog" method="object">Объекты каталога</basetype>
<name>Toshiba SR-Q660</name>
</page>
<total>2</total>
</udata>
4) В шаблоне вызов выглядит следующим образом:
Код: [Выделить]
<xsl:apply-templates select="document(concat('usel://catalog-tags/',@id))/udata" mode="tag_list"/>
Т.е. на данный момент я имею:
1) наименования значения из нужного справочника (которые, по задумке должны стать ссылками)
2) Перечень товаров у которых проставлены теги.
Ступор возник в том, что я не понимаю каким образом я могу сформировать href для ссылок, для того, чтобы при переходе по ним сгенерилась страница с искомыми товарами.
Очень нужна ваша помощь.