Brett_pitt
Писатель
- Регистрация
- 14 Сен 2008
- Сообщения
- 5
- Реакции
- 0
- Автор темы
- #1
Как для каждого пользователя, показывать его последние посещенные товары
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
такое только на сессиях стоит организовать, строить подобное на записи в бд нецелесообразноМожно сделать это - только если вести лог файл перемещения по товарам юзера! в БД это делать будет слишком жирные запросы! Остается делать это через текстовый файл например! Реализация не сложная (кратко)(при просмотре товара происходит обращение к функции, функция регистрирует пользователя по сессии или по логину в зависимости как нужно сделать! Далее происходит запись в файл с именем сессии или логина юзера! Ну а потом соот. производиться форматированный вывод файла!)
у тебя отключено отображение сессии в адресной строке.а если на ссесиях, то адресная строка изменится? ммм я так понимаю... сессии записываются в ней... сейчас они у меня отключены...
Вот реализация последних просмотренных товаров на сессияха если на ссесиях, то адресная строка изменится? ммм я так понимаю... сессии записываются в ней... сейчас они у меня отключены...
<?php
define('LAST_ITEMS_LIMIT', 10); // лимит выводимых позиций
function get_product_list($item_list,$limit = "all", $this_product = FALSE)
{
$product_list = array();
if(($limit=="all")||($limit>count($item_list)))$limit = count($item_list)-1;
for ($i=0;$i<=$limit;$i++)
{
$product = GetProduct($item_list[$i]);
// get picture
if ( !is_null($product["default_picture"]) )
{
$picture = db_query("select filename, thumbnail, enlarged from ".
PRODUCT_PICTURES." where photoID=".$product["default_picture"] );
$picture_row = db_fetch_row( $picture );
}
else
{
$picture = db_query(
"select filename, thumbnail, enlarged, photoID from ".PRODUCT_PICTURES.
" where productID='".$product["productID"]."'" );
if ( $picture_row = db_fetch_row($picture) )
$product["default_picture"]=$picture_row["photoID"];
else
$picture_row=null;
}
if ( $picture_row )
{
$product["thumbnail"] = $picture_row[ 1 ];
}
else
{
$product["thumbnail"] = "";
}
if(!$this_product||$this_product!=$product["productID"]) $product_list[] = $product;
}
return $product_list;
}
// Добавить продукт в сессию
if (isset($productID) && $productID>=0 &&
!isset($_POST["add_topic"]) && !isset($_POST["discuss"]))
{
if(isset($_SESSION["last_items_view"])&&$_SESSION["last_items_view"]!="")
{
$item_list = array_unique(explode(",",$_SESSION["last_items_view"]));
$item_list_sort = array();
foreach ($item_list as $item)
{
if($item!=$productID) $item_list_sort[]=$item;
}
$item_list_sort[] = $productID;
$_SESSION["last_items_view"] = implode(",",$item_list_sort);
} else
{
$_SESSION["last_items_view"] = $productID;
}
}
// Вывести продукты из сессии
if(isset($_SESSION["last_items_view"])&&$_SESSION["last_items_view"]!="")
{
$product_id_list = explode(",",$_SESSION["last_items_view"]);
if(isset($productID)) $product_list = get_product_list(array_reverse($product_id_list),LAST_ITEMS_LIMIT,$productID);
else $product_list = get_product_list(array_reverse($product_id_list),LAST_ITEMS_LIMIT,FALSE);
$smarty->assign("last_view_products",$product_list);
}
?>
{$product_list} или {$last_view_products}
{if $last_view_products} // если есть просмотренные позиции
{section name=i loop=$last_view_products} // выводим позиции
{if $last_view_products[i].thumbnail} // если есть картинка
<img src="/products_pictures/{$last_view_products[i].thumbnail}">
{/if}
{$last_view_products[i].name} //название продукта и т.п.
{$last_view_products[i].productID} //название номер продукта
// вобщем все обычные свойства
{/section}
{/if}