Сопутствующие товары в корзине

#
Сопутствующие товары в корзине
Здравствуйте!

Используя новый метод   associatedItems(TRUE) я вывел сопутствующие товары для всех элементов корзины так:


<?
$Shop_Cart_Controller_Show = new Shop_Cart_Controller_Show(
        Core_Entity::factory('Shop', 3)
    );

    $Shop_Cart_Controller_Show
        ->xsl(
            Core_Entity::factory('Xsl')->getByName('МагазинКорзинаСопутствующие')
        )
   ->associatedItems(TRUE)
   ->show();
?>

Взял за основу XSL корзины и убрал оттуда лишнее.

В итоге для каждого товара в корзине имеется список сопутствующих.
Есть ли возможность получить массив всех сопутствующих товаров для корзины одним массивом чтобы сделать элементы уникальными?. Сейчас сделан простой вызов в XSL и товары там повторяются, потому что для разных товаров могут быть одни и те же сопутствующие.

И еще получается, что если в макете выводить, то конечно это будет на всех шагах корзины, а нужно только на первой странице корзины.


   <xsl:template match="shop_cart">

      <xsl:apply-templates select="shop_item/associated/shop_item"/>

   </xsl:template>

но наверное это нужно как-то перенести в ТДС. Подскажите как правильно этим пользоваться, если можно с примером?

Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Модератор
#
Re: Сопутствующие товары в корзине
При вызове вы можете перебрать все узлы shop_item/associated у shop_cart следующим образом
/shop//shop_cart/shop_item/associated/shop_item
#
Re: Сопутствующие товары в корзине
Окей, но вопрос был как получить в итоге уникальные элементы этого массива.
Сделал так:

<xsl:for-each select="/shop//shop_cart/shop_item/associated/shop_item[not(.=preceding::*)]">
---
код самого темплейта товара
---
</xsl:for-each>  

А как всё таки правильно? В одной из тем пользователь написал, что XSLT-процессор жрёт много ресурсов и лучше всё делать конечно через хуки, ядро и прочее. Поделитесь секретом.
Ускорение сайтов / Любые работы по сайту / Обращайтесь в nivaks-studio.ru
Авторизация