Показ отложенных товаров в краткой корзине (для сайтов на HostCMS v6)

После последнего обновления 6.1.4 появилась возможность показать пользователю в краткой корзине отложенные им товары. Удобная функция, особенно для тех интернет-магазинов, в которых пользователи обычно покупают сразу несколько товаров за раз. Например, интернет-магазин заказов еды на дом, или оптовый магазин. В общем, случаев применения может быть множество.

Образец использования
Рассмотрим, как это можно использовать. Все доработки делаются в 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"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<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:decimal-format name="my" decimal-separator="," grouping-separator=" "/>
<xsl:template match="/shop">
<div id="little_cart">
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="count(shop_cart) = 0">
<a href="{/shop/url}cart/"><img src="/images/cart.jpg" alt="корзина магазина" style="float: left; width:50px; height:50px; margin:-15px 10px 5px;"/>Корзина пуста</a>
<p><xsl:choose>
<xsl:when test="siteuser_id = 0"></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose></p>
</xsl:when>
<xsl:otherwise>
<a href="{/shop/url}cart/">Ваша корзина:</a>
<xsl:variable name="totalQuantity" select="sum(shop_cart[postpone = 0]/quantity)" />
<hr />
<!-- Массив для вывода отложенных товаров с картинками, названием, производителем и ценой --> <xsl:for-each select=".//shop_cart/shop_item[@id]">
<!-- Изображение товара --> <img src="{dir}{image_small}" />
<!-- Название и производитель --> <span><xsl:value-of select="name"/><xsl:text> </xsl:text><xsl:value-of select="shop_producer/name" /><br />
<!-- Стоимость --> <xsl:value-of select="format-number(price, '### ##0', 'my')"/><xsl:value-of disable-output-escaping="yes" select="shop_currency/name"/>
<hr /> </xsl:for-each> <!-- Вывод суммы отложенных товаров --> <span> Сумма<xsl:text>: </xsl:text> <b><xsl:value-of select="format-number(total_amount, '### ##0,00', 'my')"/><xsl:text> </xsl:text><xsl:value-of disable-output-escaping="yes" select="shop_currency/name"/></b></span>
<a href="{/shop/url}cart/" class="button">ОФОРМИТЬ ЗАКАЗ</a>
</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>
Используя Javascript, можно сделать краткую корзину компактной и открывающейся при клике по иконке корзины, к примеру. Это будет удобно в том случае, если ваши покупатели обычно откладывают много товара. В таком случае корзина не будет занимать много места на странице.
Однако, в некоторых магазинах, где покупается сразу много наименований (или в каталоге формируется заказ, к примеру комплекта мебели), будет наоборот удобней эту краткую корзину показывать открытой, выделив под нее отдельную колонку. Таким образом покупатели будут сразу видеть, что они уже отложили.
В общем, как эту возможность использовать вы придумаете сами.