Вот XSL-шаблон, в котором при выборе checkbox-а, товар добавляется в корзину. Продолжение в следующих сериях
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml" />
<!-- Шаблон "МагазинПрайс" -->
<xsl:template match="/shop">
<!-- CSS для таблицы с прайсом -->
<style TYPE="text/css">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
.price_table_border, .price_table_border td
{
border-collapse: collapse;
empty-cells: show;
border-width:1px;
border-color: #CCCCCC;
border-style: dashed;
padding-left: 5px;
}
]]>
</xsl:text>
</xsl:comment>
</style>
<script language="JavaScript">
<!-- Скрипт открывает/скрывает форумы текущей группы -->
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[
function CheckboxClick(shop_path, catalog_item_id)
{
var item_id = 'count_' + catalog_item_id;
if (document.getElementById(item_id).checked == true)
{
AddIntoCart(shop_path, catalog_item_id, 1);
}
else
{
}
}
]]>
</xsl:text>
</xsl:comment>
</script>
<h1>Прайс-лист</h1>
<!-- Отображаем таблицу -->
<table class="price_table_border">
<tr bgcolor="#EEEEEE">
<td align="center" height="25" valign="middle"><b>Наименование</b></td>
<td align="center" height="25" valign="middle"><b>Цена</b></td>
</tr>
<xsl:apply-templates select="/shop/item">
<xsl:with-param name="group_id" select="0"/>
</xsl:apply-templates>
<xsl:apply-templates select="//group"><xsl:sort select="@id" data-type="number" order="ascending"/></xsl:apply-templates>
</table>
<!-- Строка ссылок на другие страницы каталога -->
<p>
<xsl:if test="count_items > 0 and items_on_page > 0">
<xsl:call-template name="for">
<xsl:with-param name="n" select="count_items div items_on_page"/>
<xsl:with-param name="current_page" select="current_page"/>
</xsl:call-template>
<div style="clear: both"></div>
</xsl:if>
</p>
</xsl:template>
<!-- Группы товаров -->
<xsl:template match="group">
<xsl:variable name="attr_group_id"><xsl:value-of select="@id"/></xsl:variable>
<xsl:if test="count(/shop/item[@group=$attr_group_id]) > 0">
<tr>
<td bgcolor="#EEEEEE" colspan="2">
<xsl:value-of select="name"/>
</td>
</tr>
<xsl:apply-templates select="/shop/item">
<xsl:with-param name="group_id" select="@id"/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
<!-- Товары -->
<xsl:template match="/shop/item">
<xsl:param name="group_id" />
<xsl:if test="$group_id = @group">
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="price"/> <xsl:value-of select="currency"/></td>
<td>
<!-- Ссылку на добавление в корзины выводим, если:
type = 0 - простой тип товара
type = 1 - электронный товар, при этом остаток на складе больше 0 или -1,
что означает неограниченное количество -->
<xsl:if test="type = 0 or (type = 1 and (eitem_count > 0 or eitem_count = -1))">
<div style="display: inline; margin-left: 3px">
<!-- <input type="text" size="3" value="1" id="count_{@id}"/>-->
<!-- <a href="{/shop/path}cart/?action=add&item_id={@id}" onclick="return AddIntoCart('{/shop/path}', {@id}, document.getElementById('count_{@id}').value)">
<img alt="В корзину" title="В корзину" src="/hostcmsfiles/images/cart.gif" style="margin: 0px 0px -4px 10px" />
</a>-->
<input type="checkbox" id="count_{@id}" onclick="return CheckboxClick('{/shop/path}', {@id})"/>
</div>
</xsl:if>
</td>
</tr>
</xsl:if>
</xsl:template>
<!-- ============================ -->
<!-- Цикл для вывода строк ссылок -->
<!-- ============================ -->
<xsl:template name="for">
<xsl:param name="i" select="0"/>
<xsl:param name="n"/>
<xsl:param name="current_page"/>
<xsl:if test="$n > $i and $n > 1">
<!-- Ставим ссылку на страницу-->
<xsl:if test="$i != $current_page">
<!-- Определяем адрес ссылки -->
<xsl:variable name="number_link"><xsl:choose>
<!-- Если не нулевой уровень -->
<xsl:when test="$i != 0">page-<xsl:value-of select="$i+1"/>/</xsl:when>
<!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
<xsl:otherwise></xsl:otherwise>
</xsl:choose></xsl:variable>
<a href="{/shop/path}price/{$number_link}" class="page_link"><xsl:value-of select="$i+1"/></a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<span class="current"><xsl:value-of select="$i+1"/></span>
</xsl:if>
<!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
<xsl:call-template name="for">
<xsl:with-param name="i" select="$i + 1"/>
<xsl:with-param name="n" select="$n"/>
<xsl:with-param name="current_page" select="$current_page"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>