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

Просмотренные НЕ из текущей категории


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

Привет, ребят!

 

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

 

При этом важно сохранить стандартный вывод просмотренных товаров.

 

По аналогии из топа можно было бы в view/View.php изменить строку

foreach($this->products->get_products(array('id'=>$browsed_products_ids)) as $p) 

на

foreach($this->products->get_products(array('id'=>$browsed_products_ids, 'category_id'=>$params['category_id'])) as $p)

(только с правильным оператором сравнения), но тогда нарушится работа стандартного вывода просмотренных.

 

Подскажите, как правильнее сделать - продублировать в view/View.php get_browsed_products, переименовать и сделать как писал выше или есть более правильное решение?

 

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

можете заменить

 

foreach($this->products->get_products(array('id'=>$browsed_products_ids)) as $p)

на

$params['id'] = $browsed_products_ids;
foreach($this->products->get_products($params) as $p)

 

 и вызывать в шаблоне как хотите.

 

так с категорией

{get_browsed_products var=browsed_products limit=20 category_id=$category->id}

или без

{get_browsed_products var=browsed_products limit=20}
Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

 

можете заменить

 

foreach($this->products->get_products(array('id'=>$browsed_products_ids)) as $p)

на

$params['id'] = $browsed_products_ids;
foreach($this->products->get_products($params) as $p)

 

 и вызывать в шаблоне как хотите.

 

так с категорией

{get_browsed_products var=browsed_products limit=20 category_id=$category->id}

или без

{get_browsed_products var=browsed_products limit=20}

 

Попробовал, приведенный пример вывода

{get_browsed_products var=browsed_products limit=20 category_id=$category->id}

ограничивает показ только товаров из текущей категории. А мне нужно показать товары НЕ текущей категории.

пробовал участок category_id=$category->id

менять на:

1. category_id!=$category->id

и на 

2. category_id!==$category->id

 

в обоих случаях страница начинает отдавать 500 ошибку. Что не так?

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

Попробовал, приведенный пример вывода

{get_browsed_products var=browsed_products limit=20 category_id=$category->id}

ограничивает показ только товаров из текущей категории. А мне нужно показать товары НЕ текущей категории.

 

вам нужно в api/Products.php дописать свой фильтр, который бы исключал эту категорию.

 

 

пробовал участок category_id=$category->id

менять на:

1. category_id!=$category->id

и на 

2. category_id!==$category->id

 

в обоих случаях страница начинает отдавать 500 ошибку. Что не так?

 

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

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

Вам нужно в Products::get_products() добавить обработку параметра что-то типа exclude_category_id
И в запрос добавить условие NOT IN, тогда вы сможете просто использовать так везде (например в виджете), где нужно исключить:
 

$this->products->get_products([
    'id'=>$browsed_products_ids,
    'exclude_category_id'=>$params['exclude_category_id'],
]);

 

В шаблоне это использовалось бы так:

{get_browsed_products var=browsed_products limit=20 exclude_category_id=$category->id}

 

На память не скажу по коду, но нужно еще учесть детей исключаемой категории

 

 

...

 

На эти дрожжах можно заморочиться и вообще сделать полноценный фильтр "БЕЗ" -- чтобы исключать и бренды и категории или конкретные товары (по товару весьма полезно -- а то в виджетах бывает вылезает текущий товар)

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

Еще стоит подумать, а стоит ли такое делать.

Простая ситуация - пришел посетитель на сайт, зашел в интересующую категорию, облазил там полсотни товаров. А при текущих планах Вы ему покажете просмотренных - 0.

Если такое делать, надо менять и функционал формирования списка просмотренных - например, формировать с запасом, и при показе сортировать по признаку принадлежности к категории...

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

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

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

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

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

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

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

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

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

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