Наш нештатный дизайнер посчитал недостаточным, что ссылка изображения элемента и ссылка названия элемента ведут на страницу описания. Он решил еще добавить для этой цели специальную кнопку details. А аяксовую ссылку add to cart заменить графической кнопкой.
<item-list>
...
<item id="50">
<item-name>
<a href="/store/item/50.xml">Crime and Punishment</a>
</item-name>
<item-description>Dostoevsky's first wife died in 1...</item-description>
<item-image>
<a href="/store/item/50.xml">
<img alt="Dostoevsky_crime_and_punishment" class="wide" src="/image/name/0000/0187/187/wide/Dostoevsky_Crime_And_Punishment.jpg?1220530414"/>
</a>
</item-image>
<item-price>$22.00</item-price>
<add-to-cart>
<a href="#" onclick="new Ajax.Request('/cart/ajax_check_item/50?buynow=0', {asynchronous:true, evalScripts:true}); return false;">add to cart</a>
</add-to-cart>
</item>
...
</item-list>
В шаблоне XSLT для атрибута href кнопки details я использовал соответствующий атрибут дочернего XML-элемента
item-name/a
: {item-name/a/@href}
. А для атрибута onClick кнопки add to cart -- соответствующий атрибут элемента add-to-cart/a
: {add-to-cart/a/@onclick}
.<xsl:template match="item">
<div class="item indexItem">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="111" valign="top" width="148" class="thumb"><xsl:copy-of select="item-image/*" /></td>
<td valign="top"><p class="title">
<xsl:copy-of select="item-name/*" />
</p>
<p class="description"><xsl:value-of select="item-description" /></p>
<p class="price"><xsl:value-of select="item-price" /></p></td>
</tr>
<tr>
<td colspan="2"><div class="border">
<a href="{item-name/a/@href}" class="floatLeft"><img src="/images/templates/template-2/images/btn_details.gif" alt="details" title="show item details" /></a>
<a href="#" onclick="{add-to-cart/a/@onclick}" class="floatLeft"><img src="/images/templates/template-2/images/btn_add_cart.gif" alt="add to cart" title="add item to cart" /></a>
</div></td>
</tr>
</table>
</div>
</xsl:template>
Таким вот образом. Даже проще, чем использование
<xsl:element>
и <xsl:attribute>
, как в статье XSLT: создание элементов и атрибутов.
0 Комментариев :
Отправить комментарий
Жги!