просмотренные товары из таблицы shopkeeper

Называется сниппет cookie
так как просмотренные товары пишет именно в куки.

<?php
class p
{
    /**
     * Индекс
     */
    const COOKIE_KEY  = 'p';
    const GET_KEY     = 'p';
    /**
     * Время жизни куки
     */
    const COOKIE_TIME = 8600;
    /**
     * Получить в виде строки
     */
    const GET_STRING = 'get_string';
    /**
     * Получить в виде массива
     */
    const GET_ARRAY  = 'get_array';
 
    private $_data;
 
 
    function __construct()
    {
        $this->set();
        $this->add();
    }
    
    protected function set()
    {
        $this->_data = (isset($_COOKIE[self::COOKIE_KEY])) ? unserialize($_COOKIE[self::COOKIE_KEY]): array();
    }
    
    public function get($ret=self::GET_STRING)
    {
        return ($ret==self::GET_STRING) ? implode(',', $this->_data) : $this->_data;
    }
    
    public function delete()
    {
        setcookie (self::COOKIE_KEY, "", time() - 3600,"", "." . $_SERVER['HTTP_HOST']);
    }
    
    public function add()
    {
        if(isset($_GET[self::GET_KEY]) && strlen(trim($_GET[self::GET_KEY])>0)) {
            if(array_search($_GET[self::GET_KEY], $this->_data)===false) {
                $this->_data[] = $_GET[self::GET_KEY];
                setcookie (self::COOKIE_KEY, serialize($this->_data), time() + self::COOKIE_TIME,"","." . $_SERVER['HTTP_HOST']);
            }
            
        }
            
    }
}
 
$p = new p();
echo $p->get();
 
 
?>

 

У меня идёт вложенный вызов просмотренных товаров в карточке товара, это значит, что изначально вывожу все товары

[!catalogView?
&paginate=`1`
&sortBy=`id`
&sortDir=`asc`
&tpl=`prof`
&display=`[+phx:if=`[+phx:get=`all`+]`:ne=``:then=`all`:else=`15`+]`
&descTpl=`tovar`
&toPlaceholder=`catalogViewOutput`
&currentPageClass=`act`
&lang=`prof`
!]

а затем в чанке tovar

вывожу просмотренные

                        <h2>Недавно просмотренные товары:</h2>
                        <div>
[!catalogView?
&tpl=`prof_recent_list`
&display=`5`
&sortDir=`desc`
&descTpl=`tovar`
&randomize=`1`
&skipDesc=`1`
&products=`[[cookie]]`
!]
                            
                        </div>

Сделать заказ

| необходим для связи с вами
В кротчайшие сроки я свяжусь с вами.

Также вы можетете связать со мной:
Skype: Dolphin_za
Телефон (Украина): +380965468891