Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Сортировка товаров по количеству просмотров


Recommended Posts

Доброго времени суток! Помогите реализовать сортировку товаров в категориях по количеству просмотров.

Пробовал добавлять в controller'e

$this->data['sorts'][] = array(

'text' => 'Популярность',

'value' => 'p.viewed-DESC',

'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)

);

не помогло. OC 1.5.1.3.

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 year later...
  • 3 weeks later...
  • 2 years later...

Все очень просто! в catalog\controller\product\category.php

ищем строчку     $this->data['sorts'] = array();

Это сортировки которая есть у вас на сайте!

добавляем:

 

$this->data['sorts'][] = array(
        'text'  => $this->language->get('Популярные!'),
        'value' => 'p.viewed-DESC',
        'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)
);
 
где: 'text'  => $this->language->get('Популярные!'),
Популярные - можете заменить на любое слово которое вам ближе к душе! 
 
В начале этого файла можно выставить сортировку которая будет по умолчанию:
 
$this->load->model('tool/image');
 
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.viewed';
}
 
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'DESC';
}
 
тут вы ставите тип сортировки 
$sort = 'pd.name'; - по Имени 

$sort = 'p.price'; - по Ценам
$sort = 'rating'; - по Рейтингу

$sort = 'p.viewed'; - по Просмотрим

Направление 
$order = 'ASC'; - от А до Я (Низкому)
$order = 'DESC' - от Я до А (Высокому) 

 

 

Еще одно не мало важно изменение (без которого ничего не будет работать!)

Нужно зайти в catalog\model\catalog\product.php

ищем строчку:

         $sort_data = array(
         'pd.name',
         'p.model',
         'p.quantity',
         'p.price',
         'rating',
         'p.sort_order',
         'p.date_added',

 

Добавляем: 'p.viewed'  (будь внимательный с точками и запятыми!)

Должно выглядеть вот так! 

 

$sort_data = array(
'pd.name',
'p.model',
'p.quantity',
'p.price',
'rating',
'p.sort_order',
'p.date_added',
                        'p.viewed'
);

 

:)

  • +1 2
Надіслати
Поділитися на інших сайтах


  • 1 year later...
  • 3 years later...
  • 2 weeks later...
В 05.05.2015 в 10:32, rrommka сказал:

Все очень просто! в catalog\controller\product\category.php

ищем строчку     $this->data['sorts'] = array();

Это сортировки которая есть у вас на сайте!

добавляем:

 

$this->data['sorts'][] = array(
        'text'  => $this->language->get('Популярные!'),
        'value' => 'p.viewed-DESC',
        'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.viewed&order=DESC' . $url)
);
 
где: 'text'  => $this->language->get('Популярные!'),
Популярные - можете заменить на любое слово которое вам ближе к душе! 
 
В начале этого файла можно выставить сортировку которая будет по умолчанию:
 
$this->load->model('tool/image');
 
if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
$sort = 'p.viewed';
}
 
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'DESC';
}
 
тут вы ставите тип сортировки 
$sort = 'pd.name'; - по Имени 

$sort = 'p.price'; - по Ценам
$sort = 'rating'; - по Рейтингу

$sort = 'p.viewed'; - по Просмотрим

Направление 
$order = 'ASC'; - от А до Я (Низкому)
$order = 'DESC' - от Я до А (Высокому) 

 

 

Еще одно не мало важно изменение (без которого ничего не будет работать!)

Нужно зайти в catalog\model\catalog\product.php

ищем строчку:

         $sort_data = array(
         'pd.name',
         'p.model',
         'p.quantity',
         'p.price',
         'rating',
         'p.sort_order',
         'p.date_added',

 

Добавляем: 'p.viewed'  (будь внимательный с точками и запятыми!)

Должно выглядеть вот так! 

 

$sort_data = array(
'pd.name',
'p.model',
'p.quantity',
'p.price',
'rating',
'p.sort_order',
'p.date_added',
                        'p.viewed'
);

 

:)

 

Подскажите кто нибудь, такой вариант на опенкарт 3 работает?

У меня ошибка:

Notice: Indirect modification of overloaded property ControllerProductCategory::$data has no effect in /home/liebchen/ustim.pro/homeparfums/system/storage/modification/catalog/controller/product/category.php on line 322

 

Змінено користувачем DarkEinstein
Надіслати
Поділитися на інших сайтах


9 минут назад, DarkEinstein сказал:

Подскажите кто нибудь, такой вариант на опенкарт 3 работает?

У меня ошибка:

 

на опенкарт 3 не $this->data а $data

Надіслати
Поділитися на інших сайтах

8 минут назад, spectre сказал:

 

на опенкарт 3 не $this->data а $data

ааа, он в ошибке указывал на system/storage/ потому что там запомнило $this->data вначале)

Теперь работает)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.