Разделы

  
 

Просмотренные товары из таблицы shopkeeper [Evo]

Добрый день. Недавно нашел такую заметку о реализации просмотренных товаров в блоге http://ifreework.com/prosmotrennyie-tovaryi-iz-tabliczyi-shopkeeper/
Идея хорошая, но реализацию в пределах используемого мной 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`
¤tPageClass=`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>

Один товар в нескольких категориях без дублей Shopkeeper [Evo]

Кто-нибудь пытался добавить товар в несколько категорий, но чтобы не дублировать этот самый товар по категориям?
Как в Virtuemart сделано — при создании товара можно выбрать несколько категорий, к которым он будет принадлежать.
Единственное что — товары создаются как страницы, т.е. не в самом Shopkeeper…
Как это сделать? Или хотя бы как убрать дубли или не делать каждый раз новый товар, а создавать на него что-то типа алиаса в категориях?

Управление изображениями для товара

Как это не парадоксально, но управление изображениями — наиболее частый вопрос, который у меня задавали по SBShop. Впрочем, как же без него?

Встречайте — функция управления изображения о которой можно только мечтать! :-)

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



( Читать дальше )
  • +4
  • 17 января 2012, 02:20
  • Carw
  • 42

[REVO/EVO] Сайт-каталог с фильтами товаров. Как и где лучше?

Надо сделать небольшой каталог товаров (300-500 шт.). Появилась необходимость создания фильтров вывода товаров. Надо чтобы при выдаче списка товаров(через getResources или Ditto), где-то сбоку или сверху выводился список, например, фирм производителей, в данный момент отображаемых товаров. Эти фирмы будут кликабельные, при нажатии на которые будет выводится именно те товары, которые относятся к этой фирме производителю…
Так вот вопрос в чем (в REVO или EVO) можно быстрее и менее геморно реализовать эту функциональность?
Ну и если можно, то хотя бы парочку ссылок почитать как вообще реализовать эти фильтры(может есть уже готовые решения)
Буду благодарен любой помощи!
  • 0
  • 13 января 2012, 12:59
  • dob
  • 5