Как определить что товар уже в корзине

#
Как определить что товар уже в корзине
Помогите пожалуйста. Вопрос в том что при при просмотре товара нужно проверить есть ли он уже в корзине и в шаблоне убрать кнопку иначе если товар не добавлен кнопка должна быть видна.
#
Re: Как определить что товар уже в корзине
добавьте в типовую динамическую магазина
if ($Shop_Controller_Show->item != 0) {
$oShop = $Shop_Controller_Show->getEntity();

   $oShop_Cart_Controller = Shop_Cart_Controller::instance();
   $aCart = $oShop_Cart_Controller->getAll($oShop);
      $item_incart = 0;
      foreach ($aCart as $oCart)
      {
         if ($oCart->shop_item_id==$Shop_Controller_Show->item) {$item_incart=1;}
      }
      $Shop_Controller_Show->addEntity(
           Core::factory('Core_Xml_Entity')
                  ->name('item_incart')->value($item_incart)
      );
}
перед вызовом
$Shop_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName($xslName)
   )
   ->itemsProperties(TRUE)
   ->show();

и в xsl шаблоне товара:
<xsl:choose>
               <xsl:when test="/shop/item_incart = 1">
               // Товар в корзине, выводим сообщение или ничего не выводим
               </xsl:when>
               <xsl:otherwise>
               // Товар не в корзине, выводим кнопку
               </xsl:otherwise>
            </xsl:choose>
#
Re: Как определить что товар уже в корзине
h4mpy,спасибо все работает!
#
Re: Как определить что товар уже в корзине
а тоже самое, но для списка товаров?
допетрить не получается

условия-то в xsl, как понимаю, так же выглядеть будут, а вот что и куда в ТДС писать - не понятно

видел,
http://www.hostcms.ru/forums/17/4580/
но всё равно не понятно...
Знания имеют свои пределы, и только глупость человеческая не знает границ...
#
Re: Как определить что товар уже в корзине
Да тоже интересует.
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Как определить что товар уже в корзине
передавайте xml со списком товаров в корзине
в тдс добавьте
$oShop = $Shop_Controller_Show->getEntity();
$cIncart = Core::factory('Core_Xml_Entity')->name('incart');
$oShop_Cart_Controller = Shop_Cart_Controller::instance();
   $aCart = $oShop_Cart_Controller->getAll($oShop);
      foreach ($aCart as $oCart)
      {
         $cIncart->addEntity(Core::factory('Core_Xml_Entity')->name('item')->value($oCart->shop_item_id));
      }
      $Shop_Controller_Show->addEntity($cIncart);
перед вызовом
$Shop_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName($xslName)
   )
   ->itemsProperties(TRUE)
   ->show();
и в xsl каталога и товара
<xsl:variable name="curid" select="@id"/>
<xsl:choose>
    <xsl:when test="count(/shop/incart/item[.=$curid])">
    // Товар в корзине, выводим сообщение или ничего не выводим
    </xsl:when>
    <xsl:otherwise>
    // Товар не в корзине, выводим кнопку
    </xsl:otherwise>
</xsl:choose>
#
Re: Re: Как определить что товар уже в корзине
чувствуется рука мастера...
спасибо за отличное и оперативное решение!
Знания имеют свои пределы, и только глупость человеческая не знает границ...
#
Re: Как определить что товар уже в корзине
Не подскажете как реализовать с помощью ajax обновление надписи "добавить в корзину" на "товар в корзине" без перезагрузки страницы?
#
Re: Как определить что товар уже в корзине
tiv-dima,
нужно править js скрипт добавления товара
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Авторизация