Передача данных из хлебных крошек в краткую корзину
Добрый день!
Пытаюсь осуществить следующую вещь: поменять цвет ссылки краткой корзины, если пользователь уже находится в разделе "Корзина". Подскажите, пожалуйста, как можно передать current_structure_id из ХлебныеКрошки в МагазинКорзинаКраткая, либо может есть какой-то другой способ осуществить то, что я задумал?
Ниже XSL-шаблон МагазинКорзинаКраткая
Пытаюсь осуществить следующую вещь: поменять цвет ссылки краткой корзины, если пользователь уже находится в разделе "Корзина". Подскажите, пожалуйста, как можно передать current_structure_id из ХлебныеКрошки в МагазинКорзинаКраткая, либо может есть какой-то другой способ осуществить то, что я задумал?
Ниже XSL-шаблон МагазинКорзинаКраткая
<?xml version="1.0" encoding="utf-8"?>
<!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="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- МагазинКорзинаКраткая -->
<xsl:template match="/cart">
<div id="little_cart">
<xsl:choose>
<!-- Магазин не найден -->
<xsl:when test="error_not_isset_shop/node()">
<p>
<b>Ошибка! Магазин с указанным идентификатором не найден!</b>
<br/>
Укажите правильный код магазина!
</p>
</xsl:when>
<!-- Магазин найден -->
<xsl:otherwise>
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="totalquantity = 0">
<xsl:choose>
<xsl:when test="current_structure_id = 107">
<div class='empty-cart'><a class='red_li' href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:when>
<xsl:otherwise>
<div class='empty-cart'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="site_users_class_exists = 1 and user_id = 0">
<p>Если Вы зарегистрированный пользователь, данные Вашей корзины станут видны после авторизации.</p>
</xsl:when>
<xsl:otherwise>Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="current_structure_id = 107">
<div class='full-cart'><a class='red_li' href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:when>
<xsl:otherwise>
<div class='full-cart'><a href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:otherwise>
</xsl:choose>
<!-- Вывод общих количества, веса и стоимости товаров -->
<p>В корзине <b><xsl:value-of select="totalquantity"/></b> <xsl:call-template name="declension">
<xsl:with-param name="number" select="totalquantity"/></xsl:call-template>
<br/>на сумму <b><xsl:value-of select="totalsum"/> <xsl:value-of disable-output-escaping="yes" select="shop/shop_currency/shop_currency_name"/></b></p>
<xsl:if test="totalweight > 0">
<p>Общий вес заказа <b><xsl:value-of select="totalweight"/> <xsl:value-of select="shop/shop_mesures/shop_mesures_name"/></b>.</p>
</xsl:if>
<p>
<a href="{/cart/shop/path}cart/">Перейти в корзину →</a>
</p>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:template>
<!-- Склонение после числительных -->
<xsl:template name="declension">
<xsl:param name="number" select="number"/>
<!-- Именительный падеж -->
<xsl:variable name="nominative">
<xsl:text>товар</xsl:text>
</xsl:variable>
<!-- Родительный падеж, единственное число -->
<xsl:variable name="genitive_singular">
<xsl:text>товара</xsl:text>
</xsl:variable>
<xsl:variable name="genitive_plural">
<xsl:text>товаров</xsl:text>
</xsl:variable>
<xsl:variable name="last_digit">
<xsl:value-of select="$number mod 10"/>
</xsl:variable>
<xsl:variable name="last_two_digits">
<xsl:value-of select="$number mod 100"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$last_digit = 1 and $last_two_digits != 11">
<xsl:value-of select="$nominative"/>
</xsl:when>
<xsl:when test="$last_digit = 2 and $last_two_digits != 12 or $last_digit = 3 and $last_two_digits != 13 or $last_digit = 4 and $last_two_digits != 14">
<xsl:value-of select="$genitive_singular"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$genitive_plural"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<!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="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- МагазинКорзинаКраткая -->
<xsl:template match="/cart">
<div id="little_cart">
<xsl:choose>
<!-- Магазин не найден -->
<xsl:when test="error_not_isset_shop/node()">
<p>
<b>Ошибка! Магазин с указанным идентификатором не найден!</b>
<br/>
Укажите правильный код магазина!
</p>
</xsl:when>
<!-- Магазин найден -->
<xsl:otherwise>
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="totalquantity = 0">
<xsl:choose>
<xsl:when test="current_structure_id = 107">
<div class='empty-cart'><a class='red_li' href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:when>
<xsl:otherwise>
<div class='empty-cart'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="site_users_class_exists = 1 and user_id = 0">
<p>Если Вы зарегистрированный пользователь, данные Вашей корзины станут видны после авторизации.</p>
</xsl:when>
<xsl:otherwise>Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="current_structure_id = 107">
<div class='full-cart'><a class='red_li' href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:when>
<xsl:otherwise>
<div class='full-cart'><a href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:otherwise>
</xsl:choose>
<!-- Вывод общих количества, веса и стоимости товаров -->
<p>В корзине <b><xsl:value-of select="totalquantity"/></b> <xsl:call-template name="declension">
<xsl:with-param name="number" select="totalquantity"/></xsl:call-template>
<br/>на сумму <b><xsl:value-of select="totalsum"/> <xsl:value-of disable-output-escaping="yes" select="shop/shop_currency/shop_currency_name"/></b></p>
<xsl:if test="totalweight > 0">
<p>Общий вес заказа <b><xsl:value-of select="totalweight"/> <xsl:value-of select="shop/shop_mesures/shop_mesures_name"/></b>.</p>
</xsl:if>
<p>
<a href="{/cart/shop/path}cart/">Перейти в корзину →</a>
</p>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:template>
<!-- Склонение после числительных -->
<xsl:template name="declension">
<xsl:param name="number" select="number"/>
<!-- Именительный падеж -->
<xsl:variable name="nominative">
<xsl:text>товар</xsl:text>
</xsl:variable>
<!-- Родительный падеж, единственное число -->
<xsl:variable name="genitive_singular">
<xsl:text>товара</xsl:text>
</xsl:variable>
<xsl:variable name="genitive_plural">
<xsl:text>товаров</xsl:text>
</xsl:variable>
<xsl:variable name="last_digit">
<xsl:value-of select="$number mod 10"/>
</xsl:variable>
<xsl:variable name="last_two_digits">
<xsl:value-of select="$number mod 100"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$last_digit = 1 and $last_two_digits != 11">
<xsl:value-of select="$nominative"/>
</xsl:when>
<xsl:when test="$last_digit = 2 and $last_two_digits != 12 or $last_digit = 3 and $last_two_digits != 13 or $last_digit = 4 and $last_two_digits != 14">
<xsl:value-of select="$genitive_singular"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$genitive_plural"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Проблема решена другим путем. Если кому интересно:1) В шаблон html я добавил следующий код:
<!-- Краткая корзина -->
<?php
if (class_exists('shop'))
{
$shop = & singleton('shop');
// Идентификатор магазина
$shop_id = 1;
//Дополнительное свойство для определения активность корзины, передается в XSL-шаблон
if (preg_match("/cart/i", $_SERVER['REQUEST_URI'])) {
$itiscartpath = 1;
$external_propertys = array () ;
$external_propertys['itiscartpath']= 1;
$shop->ShowCart($shop_id, false, "МагазинКорзинаКраткая", array(), $external_propertys);
}
}
<?php
if (class_exists('shop'))
{
$shop = & singleton('shop');
// Идентификатор магазина
$shop_id = 1;
//Дополнительное свойство для определения активность корзины, передается в XSL-шаблон
if (preg_match("/cart/i", $_SERVER['REQUEST_URI'])) {
$itiscartpath = 1;
$external_propertys = array () ;
$external_propertys['itiscartpath']= 1;
$shop->ShowCart($shop_id, false, "МагазинКорзинаКраткая", array(), $external_propertys);
}
}
2) В МагазинКорзинаКраткая - xsl - код:
<!-- Магазин найден -->
<xsl:otherwise>
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="totalquantity = 0">
<xsl:choose>
<xsl:when test="itiscartpath">
<div class='empty-cart red_li'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:when>
<xsl:otherwise>
<div class='empty-cart'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="site_users_class_exists = 1 and user_id = 0">
<p>Если Вы зарегистрированный пользователь, данные Вашей корзины станут видны после авторизации.</p>
</xsl:when>
<xsl:otherwise>Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="itiscartpath">
<div class='full-cart red_li'><a href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:when>
<xsl:otherwise>
<div class='full-cart'><a href="{@id}{/cart/shop/path}cart/">Корзина</a></div>
</xsl:otherwise>
</xsl:choose>
<xsl:otherwise>
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="totalquantity = 0">
<xsl:choose>
<xsl:when test="itiscartpath">
<div class='empty-cart red_li'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:when>
<xsl:otherwise>
<div class='empty-cart'><a href="{/cart/shop/path}cart/">Корзина пуста</a></div>
</xsl:otherwise>
</xsl:choose>
<xsl:choose>
<xsl:when test="site_users_class_exists = 1 and user_id = 0">
<p>Если Вы зарегистрированный пользователь, данные Вашей корзины станут видны после авторизации.</p>
</xsl:when>
<xsl:otherwise>Перейдите в каталог, выберите требуемый товар и добавьте его в корзину.</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="itiscartpath">
<div class='full-cart red_li'><a href="{/cart/shop/path}cart/">Корзина</a></div>
</xsl:when>
<xsl:otherwise>
<div class='full-cart'><a href="{@id}{/cart/shop/path}cart/">Корзина</a></div>
</xsl:otherwise>
</xsl:choose>
Авторизация