Вывести несколько категорий

Тема в разделе "Общие вопросы", создана пользователем Metallikus, 9 апр 2016.

  1. Metallikus

    Metallikus Новичок

    Сообщения:
    16
    Симпатии:
    5
    Возникла одна проблемка. В категории "А" после её товаров нужно выводить товары из категорий "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"
     
    Последнее редактирование: 9 апр 2016
  2. Vlad

    Vlad Эксперт

    Сообщения:
    4.161
    Симпатии:
    1.013
    Решение ведь рабочее. В чем у вас загвоздка? То что вам приходится вручную прописывать или что?
     
  3. Metallikus

    Metallikus Новичок

    Сообщения:
    16
    Симпатии:
    5
    Когда создавал тему, ещё не знал в каком направлении двигаться. Сейчас ломается пагинация: на первой странице выводится 15 товаров родной категории и все товары неродных. На последующих страницах присутствуют только родные товары.
     
  4. Metallikus

    Metallikus Новичок

    Сообщения:
    16
    Симпатии:
    5
    Наговнокодил для теста вот такие вставки вместо тех, что описаны в первом посте:

    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); //а теперь из полученного массива выбираю тот кусок, что должен соответствовать текущей странице в пагинации.

                
    }
    Вроде работает пока.
     
    Vlad нравится это.