Jump to content

Отдельные страницы для рекомендуемых и акционных товаров


Go to solution Solved by Kosjak76,

Recommended Posts

поставить условие на категорию,  если категория совпадает с категорией товара то выводить товар, если не совпадает то пропускаем товар, как то так или вы полный код с инструкцией хотели?

 

ну находясь в ветке готовых решений думал найду такое готовое решение ... если не найду, уйду на fl

Link to post
Share on other sites
  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Короче, выкладываю рабочее решение: .htaccess в корне сайта:   RewriteRule ^hits/?$    index.php?module=ProductsView&mode=hits [L,QSA]RewriteRule ^sale/?$    index.php?module=ProductsView&mode

Нет, создавать ничего не надо, небольшие изменения в ПродуктсВью и .htaccess

Пишите свой View на подобии MainView.php далее пишете свой плагин к smarty для выборки товаров фильтруя нужными вам параметрами (акционный, хит, новинка) и выводите в шаблон. Посмотрите как реализован

ну находясь в ветке готовых решений думал найду такое готовое решение ... если не найду, уйду на fl

 

вы находитесь в ветке готовых решений, где люди сами выкладывают свой код а не просят дописать код за них. Вот вы сами сделаете и создадите в готовых решениях ваш вариант.  Принцип того что вам надо сделать я описал, берем книжку по смарти и читаем. всегда не знаете может не раз еще пригодиться, я вам даже конкретную ссылку оставлю тут на ваш вариант https://www.smarty.net/docsv2/ru/language.function.if

Link to post
Share on other sites
  • 1 month later...
  • 2 months later...

hits и sales работают

но в фильтре не убираются свойства и их значения для товаров, которые не hits и не sales

 

предполагаю, что это не $category, а $page

 

есть решение, как допилить, чтобы фильтр работал, как на /products или /catalog ?

 

p.s. удаление if(!empty($category)) из view/ProductsView.php дало результат для отображения фильтра на странице Все товары, но hits и sales - это не $category и чего то не хватает для корректной работы

Edited by aroman80
Link to post
Share on other sites

в /hits и /sales выводятся все свойства и все значения, которые существуют, даже если товары в /hits и /sales не имеют этих свойств

 

так понятнее?

Edited by aroman80
Link to post
Share on other sites

А нафига вам там свойства?

Или просто шоб було?

Такое впечатление, что вы лепите в магазин все, что найдете бесплатного, без понимания, что это и как работает...

Link to post
Share on other sites

Если вы хотите чтобы там были только свойства от товаров, которые там есть, то вам придется писать фильтры для этого.

Типа, как сделано для видимых товаров:

 

if(isset($filter['visible']))
            $visible_filter = $this->db->placehold('INNER JOIN __products p ON p.id=po.product_id AND visible=?', intval($filter['visible']));
Link to post
Share on other sites

На вопрос

 

в /hits и /sales выводятся все свойства и все значения, которые существуют, даже если товары в /hits и /sales не имеют этих свойств

 

ответ был дан ранее:

 

удаление if(!empty($category)) из view/ProductsView.php дало результат для отображения фильтра на странице Все товары, но hits и sales - это не $category и чего то не хватает для корректной работы

 

Для корректной работы Вам не хватает понимания смысла проводимых изменений.

А если хотите наугад методом тыка, то надо экспериментировать больше с различными комбинациями случайных действий...

Link to post
Share on other sites
  • 9 months later...

В файле ProductsView.php

        if ($mode == 'hits')
        {
            $filter['featured'] = 1;
        }
        if ($mode == 'sale')
        {
            $filter['discounted'] = 1;
        }

Меняем (или используем вместо)

        $mode = $this->request->get('mode');
        if (!empty($mode)) {
            if ($mode == 'hits') {
                $filter['featured'] = 1;
            } elseif ($mode == 'sale') {
                $filter['discounted'] = 1;
            }
        }

Решает вопрос с ошибками: Ошибки возникают из отсутствия этой строчки

$mode = $this->request->get('mode');

Notice: Undefined variable: mode in ..../view/ProductsView.php on line 32
Notice: Undefined variable: mode in ..../view/ProductsView.php on line 36
Warning: Cannot modify header information - headers already sent by (output started at ../ProductsView.php:32) in ...../index.php on line 26

Edited by Kosjak76
Link to post
Share on other sites

В файле ProductsView.php

        if ($mode == 'hits')
        {
            $filter['featured'] = 1;
        }
        if ($mode == 'sale')
        {
            $filter['discounted'] = 1;
        }

Меняем (или используем вместо)

        $mode = $this->request->get('mode');
        if (!empty($mode)) {
            if ($mode == 'hits') {
                $filter['featured'] = 1;
            } elseif ($mode == 'sale') {
                $filter['discounted'] = 1;
            }
        }

Решает вопрос с ошибками: Ошибки возникают из отсутствия этой строчки

$mode = $this->request->get('mode');

Notice: Undefined variable: mode in ..../view/ProductsView.php on line 32

Notice: Undefined variable: mode in ..../view/ProductsView.php on line 36

Warning: Cannot modify header information - headers already sent by (output started at ../ProductsView.php:32) in ...../index.php on line 26

эта строчка есть выше. смотрите внимательно решение. может вы не включили ее в свой код. выше 

        
$mode    = $this->request->get('mode', 'string');
$filter = array();
        $filter['visible'] = 1;    
Edited by mishanya
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...