Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не выводить товары в категории не имеющие изображений


yourmaze

Recommended Posts

Здравствуйте, уважаемые форумчане!

Стоит задача: не выводить в категории товары у которых нет изображений. Простое добавление условия в контроллере или в отображении не подходит, так как этот метод getTotalProducts() считает количество товаров с изображениями и без, в связи с этим при пагинации могут быть пустые страницы. Да и просто не правильно подобные вещи не в модели делать. Но отсюда вытекает проблема: у меня плохо с построением sql запросов(тем более модели opencart это что-то). Не могу разобраться куда что добавить.

 

Поиск по форумам дал несколько подобных тем, но ни в одной решения я не нашел.

 

Буду очень благодарен за помощь)

Надіслати
Поділитися на інших сайтах


В общем там где у Вас создается массив в контроллере категории

$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

До 

$data['products'][] = array(

Написать следующее
 

if (!empty ($image)) {

И после 

);

Поставить 

}

 

Надіслати
Поділитися на інших сайтах

Чтобы не изменять файлы контроллера лучше написать модификатор.

Могу сделать.

Надіслати
Поділитися на інших сайтах

3 минуты назад, thentru сказал:

добавить в модель условие
 

 

Зачем лезть в модель? А если гдето еще она будет использоваться, тогда что?

Надіслати
Поділитися на інших сайтах

6 минут назад, legioner26 сказал:

Зачем лезть в модель? А если гдето еще она будет использоваться, тогда что?

Логично, что если товар скрывается на витрине, то и в любых других местах его не должно быть

Надіслати
Поділитися на інших сайтах


Только что, thentru сказал:

Логично, что если товар скрывается на витрине, то и в любых других местах его не должно быть

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

Надіслати
Поділитися на інших сайтах

6 минут назад, legioner26 сказал:

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

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

В данном вот случае ваше решение будет актуальным ? :)

В контроллере если делать, то можно доп условие задать, к примеру кроме этой категории.

Надіслати
Поділитися на інших сайтах

1 минуту назад, legioner26 сказал:

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

 

В модели самое правильное решение, т.к. в случае правки контроллера придется отнимать от product_total товары без картинок, а так добавил условие и туда и туда и все в порядке, при этом при заходе напрямую товар будет работать

Надіслати
Поділитися на інших сайтах

3 минуты назад, legioner26 сказал:

В данном вот случае ваше решение будет актуальным ? :)

В такой задаче добавить проверку на логин админа

Надіслати
Поділитися на інших сайтах


5 минут назад, spectre сказал:

 

В модели самое правильное решение, т.к. в случае правки контроллера придется отнимать от product_total товары без картинок, а так добавил условие и туда и туда и все в порядке, при этом при заходе напрямую товар будет работать

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

Надіслати
Поділитися на інших сайтах

2 часа назад, legioner26 сказал:

Зачем лезть в модель? А если гдето еще она будет использоваться, тогда что?

 

Ответ

3 часа назад, yourmaze сказал:

Простое добавление условия в контроллере или в отображении не подходит, так как этот метод getTotalProducts() считает количество товаров с изображениями и без, в связи с этим при пагинации могут быть пустые страницы.

 

Надіслати
Поділитися на інших сайтах

17 hours ago, legioner26 said:

В общем там где у Вас создается массив в контроллере категории


$data['products'][] = array(
					'product_id'  => $result['product_id'],
					'thumb'       => $image,
					'name'        => $result['name'],
					'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
					'price'       => $price,
					'special'     => $special,
					'tax'         => $tax,
					'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
					'rating'      => $result['rating'],
					'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
				);

До 


$data['products'][] = array(

Написать следующее
 


if (!empty ($image)) {

И после 


);

Поставить 


}

 

 

Спасибо за ответы, но указанный метод не поможет, так как

14 hours ago, Tom said:

Простое добавление условия в контроллере или в отображении не подходит, так как этот метод getTotalProducts() считает количество товаров с изображениями и без, в связи с этим при пагинации могут быть пустые страницы.

 

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

 

17 hours ago, thentru said:

добавить в модель условие
 

 

Да, до этого я дойти смог) Но не понял где добавлять. Добавлял везде, но метод начал возвращать просто пустые ячейки с id товарами. Моэете уточнить, куда именно мне дописать это условие?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.