Перейти к содержанию
Официальный форум поддержки Simpla

Вывести фильтр на страницы брендов


Рекомендуемые сообщения

Подскажите пожалуйста!

Как вывести фильтр на страницы брендов. 

Какой файл править?

Изменено пользователем dimon1974
Ссылка на сообщение
Поделиться на другие сайты

Совсем не просто, потому что существующие свойства привязываются именно к категориям.

Выходит, надо выводить или все свойства или как-то помечать нужные свойства для фильтра брендов, или привязывать свойства к брендам. Затем в зависимости от выбранного способа привести в соответствие набор свойств при редактировании товара.  И лишь потом уже сам вывод фильтра...

 

Близкая разработка:

http://simpla-tuning.com/products/filtr-po-svojstvam-i-tsenam-na-glavnoj-stranitse

Ссылка на сообщение
Поделиться на другие сайты

На самом деле, все гораздо проще. Свойства выбираются исходя из наличия товаров с этими свойствами.

ProductsView.php

строка 70, удаляем 

        if(!empty($category))
        {
И закрывающую скобку }
$options_filter['category_id'] = $category->children;

Меняем на 

if(!empty($category))
$options_filter['category_id'] = $category->children;

Все должно работать

Ссылка на сообщение
Поделиться на другие сайты

 

На самом деле, все гораздо проще. Свойства выбираются исходя из наличия товаров с этими свойствами.

ProductsView.php

строка 70, удаляем 

        if(!empty($category))
        {
И закрывающую скобку }


$options_filter['category_id'] = $category->children;

Меняем на 



if(!empty($category))
$options_filter['category_id'] = $category->children;

Все должно работать

При открытии страницы бренда открывается пустая страница. Наверное что-то не так.

Ссылка на сообщение
Поделиться на другие сайты

Закрывающую скобку убрали?

Включите вывод ошибок.

Скобку убрал.

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /home/мой-аккаунт/domains/мой-момен.ru/public_html/view/ProductsView.php on line 98

 

 

97. // Постраничная навигация

98.       $items_per_page = $this->settings->products_num;

Ссылка на сообщение
Поделиться на другие сайты

Скиньте кусок кода от надписи // Свойства товаров до // Постраничная навигация

Похоже, убрали не ту скобку.

Ссылка на сообщение
Поделиться на другие сайты

// Свойства товаров

            $features = array();
            foreach($this->features->get_features(array('category_id'=>$category->id, 'in_filter'=>1)) as $feature)
            {
                $features[$feature->id] = $feature;
                if(($val = strval($this->request->get($feature->id)))!='')
                    $filter['features'][$feature->id] = $val;    
            }
            
            $options_filter['visible'] = 1;
            
            $features_ids = array_keys($features);
            if(!empty($features_ids))
                $options_filter['feature_id'] = $features_ids;
            if(!empty($category))    
            $options_filter['category_id'] = $category->children;
            if(isset($filter['features']))
                $options_filter['features'] = $filter['features'];
            if(!empty($brand))
                $options_filter['brand_id'] = $brand->id;
            
            $options = $this->features->get_options($options_filter);

            foreach($options as $option)
            {
                if(isset($features[$option->feature_id]))
                    $features[$option->feature_id]->options[] = $option;
            }
            
            foreach($features as $i=>&$feature)
            {
                if(empty($feature->options))
                    unset($features[$i]);
            }

            $this->design->assign('features', $features);
        }

        // Постраничная навигация
        $items_per_page = $this->settings->products_num;

Ссылка на сообщение
Поделиться на другие сайты

Без этой скобки фильтр появился, но в логе: 

 

Notice: Undefined variable: category in /home/аккаунт/domains/мой-домен.ru/public_html/view/ProductsView.php on line 61

Notice: Trying to get property of non-object in /home/аккаунт/domains/мой-домен.ru/public_html/view/ProductsView.php on line 61

Warning: Cannot modify header information - headers already sent by (output started at /home/domains/domains/мой-домен.ru/public_html/view/ProductsView.php:61) in /home/аккаунт/domains/мой-домен.ru/public_html/index.php on line 24

 

Строки:

24.      $brand = $this->brands->get_brand((string)$brand_url);

61.      foreach($this->features->get_features(array('category_id'=>$category->id, 'in_filter'=>1)) as $feature)

Изменено пользователем dimon1974
Ссылка на сообщение
Поделиться на другие сайты

Да, точно

'category_id'=>$category->id, надо удалить со строки 61

Все получилось!

Спасибо за помощь, спасибо, что откликнулись!

Ссылка на сообщение
Поделиться на другие сайты
  • 2 года спустя...

Тут есть живые? :) Сделал по инструкции, всё работает. А как в этом фильтре убрать не нужные мне свойства, просто он показывает вообще все свойства из всех категорий, а нужно только пару нужных указать и всё. Надеюсь кто нибудь поможет!

Ссылка на сообщение
Поделиться на другие сайты

Ну, вообще-то у свойств есть галка - использовать в фильтре

Если она не стоит - свойство в фильтр не выводится.

Это в стандарте, как у вас - никто не знает.

Ссылка на сообщение
Поделиться на другие сайты

Ну, вообще-то у свойств есть галка - использовать в фильтре

Если она не стоит - свойство в фильтр не выводится.

Это в стандарте, как у вас - никто не знает.

 

Есть, у меня свойств этих 4, и в настройках этих свойств стоит выборочно в каких категориях магазина их отображать и как бы всё в этом плане работает. Но когда захожу на страницу "Товары со скидкой" (ради чего я и прикручивал данный способ) то у меня там показываются вообще все свойства которые есть в магазине... Я  так понимаю что у меня немного другая ситуация, если просто смотреть "Все товары" то фильтр работает отлично, он по сути и должен показывать все свойства, а у меня "Товары со скидкой", как быть? Может подскажите а то я что то не могу въехать...)

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...