Для того чтобы вывести 100 товаров только у категорий с id более 1077 в Opencart, вам потребуется изменить код в соответствующем файле.
1. Откройте файл catalog/controller/product/category.php.
2. Найдите функцию index() и добавьте следующий код в начале функции:
if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) { $limit = 100; } else { $limit = $this->config->get('config_product_limit'); }
Этот код проверяет, если текущий маршрут является product/category и id категории больше 1077, то устанавливается лимит выводимых товаров в 100. Если условие не выполняется, используется лимит из настроек.
3. Найдите следующий код в той же функции:
$data['products'] = array();
И добавьте следующий код сразу после него:
$filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'filter_sub_category' => true, 'start' => ($page - 1) * $limit, 'limit' => $limit );
Этот код создает массив $filter_data, который содержит информацию о фильтрации, пагинации и лимите выводимых товаров.
4. Найдите следующий код в той же функции:
$product_total = $this->model_catalog_product->getTotalProducts($filter_data);
И замените его на:
if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) { $product_total = 100; } else { $product_total = $this->model_catalog_product->getTotalProducts($filter_data); }
Этот код проверяет условие, и если id категории больше 1077, то устанавливает общее количество товаров в 100. Если условие не выполняется, используется общее количество товаров по фильтру.
5. Найдите следующий код в той же функции:
$results = $this->model_catalog_product->getProducts($filter_data);
И замените его на:
if ($this->request->get['route'] == 'product/category' && isset($this->request->get['path']) && $this->request->get['path'] > 1077) { $results = $this->model_catalog_product->getProductsByCategoryId($category_id, 100); } else { $results = $this->model_catalog_product->getProducts($filter_data); }
Этот код проверяет условие, и если id категории больше 1077, то получает только 100 товаров по конкретной категории, используя созданный метод getProductsByCategoryId(). Если условие не выполняется, используется метод getProducts().
6. Сохраните файл и обновите страницу с категорией в административной панели или чистый кэш браузера для применения изменений.
Теперь, при посещении категории с id больше 1077, будут выводиться только первые 100 товаров. В остальных случаях будут использоваться настройки лимита, указанные в настройках Opencart.