На форуме 9558 тем, 76452 сообщений, 44664 участников
тема · 486 просмотров · 2 ответа

Как в Opencart вывести 100 товаров, но с условием, только у категорий с id более 1077?

Общие вопросы
читают: 0 участников и 1 гость
порядок
8 июн 2023 10:49#1
Добрый день!
В php почти полный ноль, нужна помощь решить маленькую задачку.
Opencart 2.3.0.2, версия php на сайте 7.2.24.
В файле \catalog\controller\product\category.php есть участок кода, который определяет сколько товаров выводить на странице категории по умолчанию:
php
if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else {
$limit = $this->config->get($this->config->get('config_theme') . '_product_limit');
}

Лимит задается в настройках шаблона Модули / Расширения - Темы. Там установлено 15 товаров.
Мне нужно вывести 100 товаров, но с условием, только у категорий с id более 1077.
Методом "тыка" нашел как вывести 100 товаров:
php
if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else {
$limit = 100;
}

Но при добавлении условия:
php
if (isset($this->request->get['limit'])) {
$limit = (int)$this->request->get['limit'];
} else
if ($category_id > 1077 ) {
$limit = 100;
} else {
$limit = $this->config->get($this->config->get('config_theme') . '_product_limit');
}

вылезает ошибка Notice: Undefined variable: category_id in /var/www/www-root/data/www/.../system/storage/modification/catalog/controller/product/category.php on line 39
Ругается на if ($category_id > 1077 ) {.
Как я понял, нужно сначала что-то типа массив обработать, но это уже за гранью моих знаний.
8 июн 2023 11:19#2
e.lodyanov написал(а): ↑вылезает ошибка Notice: Undefined variable: category_id in /var/www/www-

потому что объявление переменной $category_id происходит позже чем вы вызываете
перенесите строку
php
$category_id = (int)array_pop($parts);

выше
php
if (isset($this->request->get['limit'])) {
8 июн 2023 21:23#3
fanatic написал(а): ↑
перенесите строку
php
$category_id = (int)array_pop($parts);

выше
php
if (isset($this->request->get['limit'])) {


Ошибка Warning: array_pop() expects parameter 1 to be array, null given in /var/www/www-root/data/www/.../system/storage/modification/catalog/controller/product/category.php on line 35
ругается на перенесенную строку.
Но если сделать по другому, оставить строку на месте и перенести все мое условие после нее, то все ок.

Благодарю за ответ!
сообщения 1–3 из 3
Чтобы ответить, войдите или зарегистрируйтесь.

Похожие темы