Запретить вывод товаров в модуле «Новые поступления» (ocStore)

12
maximka77
На сайте с 15.10.2011
Offline
227
851

Здравствуйте. Необходимо сделать так, чтобы в магазине ocStore (Version 1.5.4.1) в модуле «Новые поступления» не выводились товары из определенной категории.

Подскажите, пожалуйста, возможно ли такое реализовать?

- Дизайн-радиаторы отопления ( https://velarshop.ru/design/) - Зарабатываю в РСЯ через ( https://app.adprofit.world/login/registration?u=219 ) пока что мне нравится, выплаты получаю каждый понедельник на USDT - Заказать обратные внешние ссылки с главных страниц PBN ( https://tier1.shop/ )
TA
На сайте с 12.06.2009
Offline
116
TiA
#1

maximka77, нужно немного поправить файл \catalog\controller\module\latest.php. Там нужно заменить


$data = array(
'sort' => 'p.date_added',
'order' => 'DESC',
'start' => 0,
'limit' => $setting['limit']
);

на


$data = array(
'sort' => 'p.date_added',
'order' => 'DESC',
'start' => 0,
'filter_category_exclude' => 'ID-категории, которую нужно исключить'
'limit' => $setting['limit']
);

В файле \catalog\model\catalog\product.php нужно для метода getProducts внести такие изменения:

if (!empty($data['filter_category_id'])) {

заменить на

if (!empty($data['filter_category_id']) or !empty($data['filter_category_exclude'])) {

И перед строкой

if (!empty($data['filter_manufacturer_id'])) {

добавить

if (!empty($data['filter_category_exclude'])) {
$sql .= " AND p2c.category_id != '" . (int)$data['filter_category_exclude'] . "'";
}
Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
maximka77
На сайте с 15.10.2011
Offline
227
#2

TiA, что-то не то с файлом latest.php. После изменения сайт становится недоступным. Из-за чего это может быть?

TA
На сайте с 12.06.2009
Offline
116
TiA
#3
maximka77:
Из-за чего это может быть?

Вероятно, возникает какая-то ошибка в коде, которая не выводится на экран из-за отключенного в настройках PHP вывода.

maximka77
На сайте с 15.10.2011
Offline
227
#4
TiA:
Вероятно, возникает какая-то ошибка в коде, которая не выводится на экран из-за отключенного в настройках PHP вывода.

Это на хостинге вы имеете в виду?

TA
На сайте с 12.06.2009
Offline
116
TiA
#5
maximka77:
Это на хостинге вы имеете в виду?

Да. На хостинге в настройках PHP отключен вывод ошибок.

SeVlad
На сайте с 03.11.2008
Offline
1609
#6
maximka77:
Из-за чего это может быть?

Запятая потерялась. В строке с filter_category_exclude

Но вывод ошибок включить надо.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
C
На сайте с 04.02.2005
Offline
277
#7
maximka77:
в модуле «Новые поступления» не выводились товары из определенной категории.

Далее потребуется не выводить из определенных категорий

'filter_category_exclude' => 'ID-категориЙ, которые нужно исключить через запятую' // или массивом

В модели не надо ничего заменять!!!!

А добавить

if (isset ($data['filter_category_exclude']) && $data['filter_category_exclude']) {

$sql .= " AND p2c.category_id NOT LIKE (" . (int)$data['filter_category_exclude'] . ")";

}

maximka77
На сайте с 15.10.2011
Offline
227
#8

Файл \catalog\controller\module\latest.php изменил.

Теперь какая-то беда с файлом \catalog\model\catalog\product.php

Если делать замены как сказал TiA, возникает ошибка:

Notice: Undefined index: filter_category_id in /var/www/****/data/www/сайт.ру/catalog/model/catalog/product.php on line 153

Если просто добавляю код как сказал Chukcha, сайт тухнет:

Notice: Error: Unknown column 'p2c.category_id' in 'where clause'
Error No: 1054
SELECT p.product_id, (SELECT AVG(rating) AS total FROM review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id NOT LIKE (206) GROUP BY p.product_id ORDER BY p.date_added DESC, LCASE(pd.name) DESC LIMIT 0,8 in /var/www/*****/data/www/сайт.ру/system/database/mysql.php on line 49

Может у меня файл product.php какой-нибудь неправильный. На всякий случай залил его сюда: https://cloud.mail.ru/public/MBzn/99MxXwGiG

Если не трудно - посмотрите, пожалуйста.

C
На сайте с 04.02.2005
Offline
277
#9

maximka77,

Я код писал на коленке

И он, действительно не будет работать

Потому что не подключается таблица product_to_category

Там еще очень аккуратно

обработать блок

if (!empty($data['filter_category_id']) || isset ($data['filter_category_exclude']) && $data['filter_category_exclude']) {

maximka77
На сайте с 15.10.2011
Offline
227
#10
Chukcha:
Там еще очень аккуратно
обработать блок
if (!empty($data['filter_category_id']) || isset ($data['filter_category_exclude']) && $data['filter_category_exclude']) {

Немного не понял. Куда именно этот кусок кода нужно поставить?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий