вторник, 17 июля 2012 г.

WebAsyst Shop Script сравнение продуктов из разных категорий.

1. Открываем файл 
published/SC/html/scripts/modules/product/_methods/comparison_products.php
приводим начало файла к такому виду (бордовым цветом помечены те строки, которые добавил, остальное вставлено для того, чтобы вы могли сориентироваться куда вставлять)

<?php
$Register = &Register::getInstance();
/*@var $Register Register*/
$PostVars = $Register->get(VAR_POST);
$smarty = &$Register->get(VAR_SMARTY);
/*@var $smarty Smarty*/


/*Add by Pavel Belyaev*/
if (isset($PostVars["comparison_products"]))
{
    if (isset($_SESSION["comparison_products"])) $_SESSION["comparison_products"].=" ".trim($PostVars["comparison_products"]);
    else $_SESSION["comparison_products"]=trim($PostVars["comparison_products"]);
}
else
{    
    $_SESSION["comparison_products"] = "";
    header ("location:/");
}

$productIDArray = array_unique(explode( " ", $_SESSION["comparison_products"]));
$_SESSION["comparison_products"] = implode (" ", $productIDArray);
if (count($productIDArray)>8) $_SESSION["comparison_products"] = "";
/*end add*/

$showProductCategoryPath = true;
$products = array();

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

2. Открываем файл 
published/SC/html/scripts/templates/frontend/comparison_products.html

В конец дописываем


<center>
    <form metod="post" action="/category/1/compare/">
        <input type="submit" value="Очистить список сравнения">
    </form>
</center>





В первом файле мы учли тот момент, что при отправке формы с пустыми данными идет стирание переменной сессии и переадресация на главную страницу сайта, так же в первом файле есть защита от переполнения переменной (максимум 8 товаров) и защита от забивания повторных значений.

2 комментария:

Роман комментирует...

А как бы учесть еще то, что бы в сравнение не попадали товары например из раздела телевизоры и тостеры?)) А так круто работает..
Еще пара идей:
прикольнее бы смотрелось открытие в всплывающем окне и еще нужна возможность удалять товары из сравнения, а не только все сразу..

Роман комментирует...

Поторопился, количество товара не ограничивает..

Отправить комментарий