Условие по количеству вывода товаров в XSL-шаблоне

#
Условие по количеству вывода товаров в XSL-шаблоне
Уважаемые форумчане, взываю к Вашей помощи!

Передо мной стоит следующая задача: в интернет-магазине при на нажатии на кнопку "добавить в корзину" появляется информационное сообщение о подтверждении добавления товара и жутко сильно хочется чтобы в этом самом сообщении выводилась информация о сопутствующих товарах.
И вроде всё сделано: товар добавляется, сообщение появляется и даже список сопутствующих товаров есть, единственное на чём я встрял и вся работа встала колом - это не знаю как прописать в XSL-шаблоне следующее условие: выводить не более 3 товаров. Вчера весь вечер рылся на форуме, искал и выискивал решение этой задачи, но безрезультатно ((

К чему я пришел и что нашел на форуме:

<xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
<xsl:if test="count(tying/item) &gt; 0">
      <xsl:if test="3 &gt; count(tying/item)">
            <xsl:apply-templates select="tying/item[position() &lt; 3]"/>
            либо
            <xsl:apply-templates select="tying/item[position() &gt; 3]"/>
      </xsl:if>
</xsl:if>


была масса интерпритаций использования position - но ни чего не дает желаемого результата (

Подскажите пожалуйста, какое именно условие необходимо прописать, либо ткните носом где искать, чтобы выводилось не более 3 сопутствующих товаров.

Спасибо!
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
Просто напишите
<xsl:apply-templates select="tying/item[position() &lt;= 3]"/>
и в выборку попадут первые три сопутствующие товара (если, конечно их общее число больше или равно трем. Если их меньше, трех, то попадут все, если их нет, то ничего не попадет).
И никаких xsl:if вам тут не надо.
Заказов не беру. Консультирую редко.
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
Kotoff, спасибо за ответ.

Указал как Вы написали, но к каким либо изменениям в количестве вывода товара это не приводит, то есть выводятся все   Подскажите, может мне требуется как то отдельно прописывать условия для position в XSL?
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
sextoys69, подозреваю, что вы просто вставили этот код куда-то не туда.

Вообще говоря, каким образом вы, при добавлении товара в корзину, выбираете сопутствующие именно для этого товара?
Как у вас происходит само добавление товаров в корзину - через ajax?
Заказов не беру. Консультирую редко.
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
Kotoff, выкладываю всю информацию по текущему вопросу:

1) Для товаров у меня сделан отдельный "Шаблон страницы", где есть следующий код:

<noindex>
<div id="dialog_box">
   <div class="box1"><p>Товар добавлен в корзину</p></div>
<?php
$shop = & singleton('shop');
$param = array();
$item_id = $GLOBALS['shop_item_path']['item'];
$param['current_group_id'] = false;
$param['xml_show_group_type'] = 'all';
$shop->ShowItem($item_id,'ТоварST69СопутствующийСообщение',$param,$external_propertys);
?>
   <div class="box3"><div><a href="#" onclick="gotocart('no'); return false;" title="продолжить покупки">Продолжить покупки</a><span>||</span><a href="#" onclick="gotocart('yes'); return false;" title="оформить заказ">Оформить заказ</a></div></div>
   <div class="close"><a href="#" onclick="gotocart('no'); return false;" title="закрыть"><img src="/img/delete.png" alt="закрыть"/></a></div>
</div>
</noindex>


В XSL-шаблоне "ТоварST69СопутствующийСообщение" есть следующий код (с учетом Вашей рекомендации):

<?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:decimal-format name="my" decimal-separator="," grouping-separator=" "/>
<xsl:template match="/shop">
<xsl:apply-templates select="item"/>
</xsl:template>
<xsl:template match="item">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="/shop/@current_group_id"/>
   <xsl:if test="count(tying/item) &gt; 0">
      <div class="box2">
      <div class="head">Вам может пригодится:</div>
      <div class="goods">
      <xsl:apply-templates select="tying/item[position() &lt;= 3]"/>
      </div>
      </div>
   </xsl:if>
</xsl:template>
<!-- Шаблон для сопутствующего товара -->
<xsl:template match="tying/item">
<div class="good">
   <a href="{/shop/path}{fullpath}{path}/" title="{name}"><img src="{small_image}" alt="{name}"/></a>
   <p><a href="{/shop/path}{fullpath}{path}/" title="{name}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></p>
   <div class="block">
   <p><span><xsl:value-of select="format-number(price_discount, '### ##0', 'my')"/>&#xA0;р</span></p>
   <p><a class="incart" href="{/shop/path}cart/?action=add&amp;item_id={@id}" onclick="return AddIntoCart('{/shop/path}', {@id}, 1)" title="добавить в корзину">+ в корзину</a></p>
   </div>
</div>
</xsl:template>
</xsl:stylesheet>


И где я болван?
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
Попробуйте добавить
$param['xml_show_tying_products'] = true;

в "Шаблон страницы" перед
$shop->ShowItem($item_id,'ТоварST69СопутствующийСообщение',$param,$external_propertys);
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
EugenyP, спасибо за участие в моём вопросе.

Этот параметр, я так понимаю, как раз таки и выдаёт информацию по сопутствующим товарам к конкретному товару. Знаю, что по умолчанию он активный, если его не прописывать. На всякий случай проставил его, но ни чего не изменилось

Но дело то всё в том, что список сопутствующих товаров получается в нужном мне месте, а проблема в том что не могу поставить ограничение на количество вывода сопутствующих товаров, в моём случае не более 3.
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
sextoys69, надо посмотреть на месте.
Постучитесь ко мне в аську вечерком, с доступами в админку.
Заказов не беру. Консультирую редко.
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
Kotoff, спасибо за помощь в решении моей проблемы!

Если до вечера так сам и не разберусь в чем дело, то побеспокою Вас...
#
Re: Условие по количеству вывода товаров в XSL-шаблоне
ок.
Заказов не беру. Консультирую редко.
Авторизация