Возникла одна проблемка. В категории "А" после её товаров нужно выводить товары из категорий "B" и "C". В категории "D" после её товаров нужно выводить товары из категорий "A" и "F". Может быть, у кого есть какие-нибудь мысли как это можно реализовать? Для начала можно добиться вывода просто из двух разных категорий, а дальше уже будет ясно что и где редактировать. Самое умное к чему я пришёл, это для каждого ID категории добавить строки PHP: if ($category_id==59){ $filter_data = array( 'filter_category_id' => 60, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total += $this->model_catalog_product->getTotalProducts($filter_data); $results = array_merge($results, $this->model_catalog_product->getProducts($filter_data)); } после строки PHP: $results = $this->model_catalog_product->getProducts($filter_data); В файле "catalog/controller/product/category.php"
Когда создавал тему, ещё не знал в каком направлении двигаться. Сейчас ломается пагинация: на первой странице выводится 15 товаров родной категории и все товары неродных. На последующих страницах присутствуют только родные товары.
Наговнокодил для теста вот такие вставки вместо тех, что описаны в первом посте: PHP: if ($category_id==59){ /*сначала получаю все товары родной категории*/ $filter_data = array( 'filter_category_id' => $category_id, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => 0, //от начала 'limit' => 99999999 //и до конца, есть ли другой способ? ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data);/*Теперь беру все товары первой неродной категории*/ $filter_data = array( 'filter_category_id' => 60, 'filter_sub_category' => true, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => 0, 'limit' => 9999999999 ); $product_total += $this->model_catalog_product->getTotalProducts($filter_data); //считаю общее кол-во товаров $results = array_merge($results, $this->model_catalog_product->getProducts($filter_data)); //добавляю их в конец массива $results = array_slice($results, ($page - 1) * $limit, $limit); //а теперь из полученного массива выбираю тот кусок, что должен соответствовать текущей странице в пагинации. } Вроде работает пока.