Сортировка в разделе Производители по просмотротрам.

Тема в разделе "OpenCart", создана пользователем Vivec, 5 фев 2017.

  1. Vivec

    Vivec

    Регистрация:
    24 ноя 2014
    Сообщения:
    126
    Симпатии:
    22
    Вечер добрый!
    Столкнулся с такой проблемой: в разделе производителя выводиться товар по дефолту по названию.
    Хотел сделать что бы выводило товары по кол.просмотров по убыванию.

    Полез в catalog/controller/product/manufacturer.php

    заменил сортировку по названию на просмотры:
    $sort = 'p.sort_order'; => $sort = 'p.viewed';
    $order = 'ASC'; => $order = 'DESC';

    После чего начало выводить продукты по кол. просмтров по убыванию, НО, к примеру первые 3 продукта идут с кол. просмотров (9980)..., а 4й уже может быть (90) и дальше опять (9890). Вообщем получается что оно проверят только первые 2-3 цифры...

    Подскажите как решить это или в каком направлении копать?

    П.С: к примеру сортировку если указать по цене (p.price) то с ценами все просто отлично, а с просмотрами беда.

    П.С.С: Я так понимаю ковырять нужно модель (catalog/model/catalog/product.php) метод - getProducts(),
    там идет запрос на выборку продукции. Но где только там не птался вснунуть "ORDER BY p.viewd DESC/ ORDER BY " . DB_PREFIX . "product.viewed DESC " все глухо...
     
    Последнее редактирование: 5 фев 2017
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Не надо там никуда ничего всовывать.
    Найдите такой блок кода (взято из 2.3, в других версиях может немного отличаться список) в getProducts:
    PHP:
    $sort_data = array(
                
    'pd.name',
                
    'p.model',
                
    'p.quantity',
                
    'p.price',
                
    'rating',
                
    'p.sort_order',
                
    'p.date_added'
            
    );
    Добавьте туда p.viewed и тогда код из контроллера заработает.

    Там сделана дополнительная проверка, поскольку вид сортировки передаётся явно через адресную строку и туда можно вписать что угодно.
     
    Vivec нравится это.