XSL - как сделать проверку

#
XSL - как сделать проверку
Просьба не пинать - с XSL  сталкиваюсь впервые
Решил  помучать корзину - нет товара фоновое изображение серое, есть товар цветное. Докопался до шаблона "МагазинКорзинаКраткая" - сделал как хотел, но вот беда  обе корзины выводятся одновременно, совершено не понимаю как там сделать проверку - если корзина пуста выводить <div id="little_cart"> если есть товар <div id="little_cart1">, точнее  понимаю что нужно описать  либо if либо when (не кидать тапочками) на проверку <xsl:when test="totalquantity = 0">, дальше знаний не хватает. Пока читаю ... пните в нужном направленииВозможно и саму реализацию можно сделать проще, но сообразил только методом правки шаблона добавление стиля.
<?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">
                  <h2><a href="{/cart/shop/path}cart/">Корзина пуста</a></h2>
                     <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:choose>
            </xsl:otherwise>
         </xsl:choose>
      </div>

      <div id="little_cart1">
         <xsl:choose>
            <!-- Магазин не найден -->
            <xsl:when test="error_not_isset_shop/node()">
               <p>
                  <b>Ошибка! Магазин с указанным идентификатором не найден!</b>
                  <br/>
                  Укажите правильный код магазина!
               </p>
            </xsl:when>
            <!-- Магазин найден -->
                  <xsl:otherwise>
                     <h2>Моя корзина</h2>

                     <!-- Вывод общих количества, веса и стоимости товаров -->
                     <p>В корзине <b><xsl:value-of select="totalquantity"/></b>&#xA0;<xsl:call-template name="declension">
                           <xsl:with-param name="number" select="totalquantity"/></xsl:call-template>
                     <br/>на сумму <b><xsl:value-of select="totalsum"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="shop/shop_currency/shop_currency_name"/></b></p>

                     <xsl:if test="totalweight &gt; 0">
                     <p>Общий вес заказа <b><xsl:value-of select="totalweight"/>&#xA0;<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>
         </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>


PS Хорошо бы сделать тег [SPOILER]
http://kom-star.ru
#
Re: XSL - как сделать проверку
Не меняйте #little_cart на #little_cart1, этот идентификатор используется для AJAX добавления товара в скрипте hostcms.js

Предлагаю следующую конструкцию:


<xsl:choose>
      <!-- В корзине нет ни одного элемента -->
      <xsl:when test="totalquantity = 0">
         <div style="width:100px; height:100px; background:url(img/cart_grey.png)">
            <p>Товаров нет!</p>
         </div>
      </xsl:when>
      <!-- В корзине есть элементы -->
      <xsl:otherwise>
         <div style="width:100px; height:100px; background:url(img/cart_color.png)">
            <p>В корзине есть товары!</p>
         </div>
      </xsl:otherwise>
</xsl:choose>
#
Re: XSL - как сделать проверку
Спасибо. Видимо  все гораздо проще чем рисует воображение Переписал кучу лишнего, добился работы через css и макет (с 1 косяком но думаю при определенном упорстве и его бы поборол ), а тут все решалось в 2 строчки ......
Кстати интересный момент (не понял почему правда)
<!-- В корзине нет ни одного элемента -->
      <xsl:when test="totalquantity = 0">
         <div style="width:100px; height:100px; background:url(img/cart_grey.png)"> - работает в том виде  что Вы дали.

<!-- В корзине есть элементы -->
      <xsl:otherwise>
         <div style="width:100px; height:100px; background:url(img/cart_color.png)"> - заработало только когда поставил перед img слеш /

Еще раз спасибо.
http://kom-star.ru
#
Re: XSL - как сделать проверку
FDV,
Правильный путь к картинке(в обоих случаях) будет со слэшем вначале, т.к. слэш задает путь относительно корня сайта, а не от текущей страницы. Я написал без слеша, т.к. просто приводил пример.
Авторизация