msCart: как сделать кнопку "Товар уже в корзине"
        Использую сниппет msCart для вывода корзины. Вопрос — как можно сделать, чтобы после добавления в корзину кнопка превращалась в Товар уже в корзине. Где хранится информация об этом?    
    
    
                                                                                
            Комментарии: 8
                Тут уже отвечали на подобный вопрос https://modx.pro/solutions/4844-dynamic-buy-button-in-the-shopping-cart/
Для себя сделал проще, при клике на корзину товара, к контейнеру добавляется класс -in-cart, по нему стилями заменяется кнопка. Что бы при перезагрузке страницы все не сбрасывалось сделал такой сниппет
Принимает id товара, если он есть в корзине подставляет класс -in-cart.
            
                    Для себя сделал проще, при клике на корзину товара, к контейнеру добавляется класс -in-cart, по нему стилями заменяется кнопка. Что бы при перезагрузке страницы все не сбрасывалось сделал такой сниппет
$cart = $_SESSION['minishop2']['cart'];
foreach($cart as $product) {
  if ($product['id'] == $id) {
    $result = '-in-cart';
  }
}
return $result;Принимает id товара, если он есть в корзине подставляет класс -in-cart.
                Спасибо большое!            
                    
                Тоже самое можно сделать без сниппета на Fenom.            
                    
                Поделитесь пожалуйста решением на Fenom)            
                    {var $cls = ''}
{var $product_id = 'тут присваиваем id товара'}
{var $cart = $.session['minishop2']['cart'] ?: []}
{foreach $cart as $product}
	{if $product['id'] == $product_id}
		{var $cls = '-in-cart'}
		{break}
	{/if}
{/foreach}Что-то вроде этого. Далее переменную $cls используем для указания класса.            {$product_id | in : $cart ? 'значение присутствует в массиве' : 'значение не найдено'}            
                Разве это рабочий вариант?..            
                    
                Кстати, без скобок он ещё более неработоспособный, даже если б в массиве minishop2 из сессии данные о товарах хранились в виде id => array().
Fenom ждёт, что после $cart ты ему ещё несколько опций дашь, отсюда там необходимы скобки, которые будут оборачивать "$product_id | in: $cart".
Но повторюсь: вариант в любом случае не рабочий.
                    Fenom ждёт, что после $cart ты ему ещё несколько опций дашь, отсюда там необходимы скобки, которые будут оборачивать "$product_id | in: $cart".
Но повторюсь: вариант в любом случае не рабочий.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.