xshader 0 Posted April 13, 2010 Report Share Posted April 13, 2010 Никто случайно не реализовывал проверку конкретного(текущего, находясь на странице описания товара) товара на его наличие(т.е. добавлен ли он уже) в корзине? Link to post Share on other sites
mosquito 0 Posted April 13, 2010 Report Share Posted April 13, 2010 в includes/shopping_cart.php есть метод function in_cart($products_id) { if (isset ($this->contents[$products_id])) { return true; } else { return false; } }[/code] можно сделать примерно так: в файл includes/modules/product_info.php добавить [code]if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1);} else { $info->assign('IN_CART', 0);} потом в шаблоне templates/vamshop/module/product_info/product_info_v1.html использовать эту метку например {if $IN_CART}<strong>Товар уже находится в корзине в количестве {$PRODUCTS_QUANTITY} </strong>{/if}[/code] Link to post Share on other sites
shaklov 63 Posted April 13, 2010 Report Share Posted April 13, 2010 Я у себя делал. Если не получится, то подскажу. Просто сейчас времени нет. Link to post Share on other sites
xshader 0 Posted April 14, 2010 Author Report Share Posted April 14, 2010 всем спасибо, работает подключил еще jscript_ajax_cart.js, чтобы запись обновлялась без перезагрузки Link to post Share on other sites
ringo 0 Posted March 12, 2012 Report Share Posted March 12, 2012 Я у себя делал. Если не получится, то подскажу. Просто сейчас времени нет. Не получается =( куда в includes/modules/product_info.php вставлять if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1);} else { $info->assign('IN_CART', 0);} ??? Помоги пожалуйста, очень надо... Link to post Share on other sites
support 447 Posted March 12, 2012 Report Share Posted March 12, 2012 Например туда где метка PRODUCTS_NAME определяется, в этот блок кода. Link to post Share on other sites
ringo 0 Posted March 13, 2012 Report Share Posted March 13, 2012 Например туда где метка PRODUCTS_NAME определяется, в этот блок кода. Что-то не получается. У меня такой код: Файл product_info.php ... /*Проверка на наличие товара в корзине*/ if ($_SESSION['cart']->in_cart($product->data['products_id'])) { $info->assign('IN_CART', 1); } else { $info->assign('IN_CART', 0); } /*Конец проверки*/ $info->assign('PRODUCTS_NAME', vam_parse_input_field_data($product->data['products_name'], array('"' => '"'))); ... [/CODE] Если в файле product_info_v1.html сделать такое условие: [CODE] {if $IN_CART} <strong>Товар уже находится в корзине в количестве {$PRODUCTS_QUANTITY} </strong> {else} Что-то другое {/if} то выводит "Что-то другое". Получается, что условие if срабатывает, но результат false Link to post Share on other sites
support 447 Posted March 13, 2012 Report Share Posted March 13, 2012 Проверяйте как работает условие, что выводит $_SESSION['cart']->in_cart($product->data['products_id']) Link to post Share on other sites
ringo 0 Posted March 14, 2012 Report Share Posted March 14, 2012 Проверяйте как работает условие, что выводит $_SESSION['cart']->in_cart($product->data['products_id']) Если я правильно проверяю $info->assign('TEST_CART', $_SESSION['cart']->in_cart($product->data['products_id'])); [/CODE], а в шаблоне вызываю {$TEST_CART} то ничего не выводит. Или я что-то не так делаю? Link to post Share on other sites
support 447 Posted March 14, 2012 Report Share Posted March 14, 2012 Смотрите метод in_cart в /includes/classes/shopping_cart.php как он работает и что отдаёт на вывод. Выше уже писали, что код рабочий. Наверное просто не так что-то делаете. Link to post Share on other sites
shaklov 63 Posted April 9, 2012 Report Share Posted April 9, 2012 Походу, если у товара есть атрибуты, то не работает эта function in_cart($products_id) в includes/shopping_cart.php Проверьте пожалуйста. Link to post Share on other sites
ringo 0 Posted May 7, 2012 Report Share Posted May 7, 2012 ' timestamp='1334007969' post='84301'] Походу, если у товара есть атрибуты, то не работает эта function in_cart($products_id) в includes/shopping_cart.php Проверьте пожалуйста. Ну да, все правильно, если есть атрибуты то не работает, а если атрибутов нет, то работает, но не считает количество. Link to post Share on other sites
shaklov 63 Posted March 23, 2014 Report Share Posted March 23, 2014 Вот припёрло вернуться к этой теме. Версия 1.72. Не работает метод in_cart в /includes/classes/shopping_cart.php если у товара есть атрибуты. Т.е. не выяснить, что товар уже есть в корзине. Link to post Share on other sites
support 447 Posted March 24, 2014 Report Share Posted March 24, 2014 Так ничего в корзине не менялось, всё осталось как есть. Я так подозреваю, что in_cart не предназначе для атрибутов, там вроде просто id товара проверяется, а при атрибутах всякие скобки добавляются ещё. Link to post Share on other sites
shaklov 63 Posted March 24, 2014 Report Share Posted March 24, 2014 А как тогда быть? Link to post Share on other sites
support 447 Posted March 24, 2014 Report Share Posted March 24, 2014 Может попробовать что-то типа: if ($_SESSION['cart']->in_cart(ceil($product->data['products_id']))) { т.е., обычно товар с атрибутов, насколько я помню будет иметь id что-то вроде, к примеру, 10{1} т.е. 10 - id товара, 1 - id атрибута. Вот, наверное, нужно просто лишнее обрезать в условии, оставив id товара только, тогда и условие будет работать, по идее. или может: if ($_SESSION['cart']->in_cart((int)$product->data['products_id'])) { Либо через preq_replace оставить только число. Link to post Share on other sites
shaklov 63 Posted March 24, 2014 Report Share Posted March 24, 2014 Оставить число не получается, т.к. функция in_cart ищет в корзине именно строку вида '10{1}1' - где первое код товара, второе код атрибута, третье значение атрибута. Для одного конкретного атрибута рабочий вариант такой: $_SESSION['cart']->in_cart($product->data['products_id'].'{1}1') Link to post Share on other sites
support 447 Posted March 25, 2014 Report Share Posted March 25, 2014 Я даже и не знаю тогда, не делал никогда такого, что-то нужно переписывать в in_cart функции. Link to post Share on other sites
Recommended Posts