• Авторизация


как добавить "сортировка по поступлению"? 25-06-2014 20:05 к комментариям - к полной версии - понравилось!


как добавить "сортировка по поступлению" на страницах товаров и вообще где правиться это выпадающее меню "сортировка"?

взято с другого форума у пользователя sunny8u

Меняем сортировку товаров в витрине по умолчанию
по дате добавления, имени, модели, количеству, цене или рейтингу.
Долго мучилась, нигде не могла найти информацию. Нашла - делюсь=)
З.Ы. Кстати, этот метод позволит устранить повторение одних и тех же товаров на разных страницах одной категории.
Ибо сортировка По умолчанию очень часто творит подобные гадости...
З.Ы.Ы. У меня в примере товары будут отсортированы по дате добавления, но по образцу можно сделать любой вид сортировки.
Переменные в OpenCart 1.5.4 выглядят следующим образом. Далее поймёте, где это нужно будет вставлять [показать]

'pd.name', - сортировка по имени.
'p.model', - сортировка по модели.
'p.quantity', - сортировка по количеству.
'p.price', - сортировка по цене.
'rating', - сортировка по рейтингу.
'p.sort_order', - сортировка, которая стоит по умолчанию.
'p.date_added' - сортировка по дате добавления.

Соответственно, для каждого типа сортировки нужно будет задать направление, это:

DESC - по убыванию,
ASC - по возрастанию.
1. Меняем тип сортировки По умолчанию на сортировку по Дате добавления (без добавления в список "Сортировать по").
Просто меняем принцип отображения товаров для метода "По умолчанию".
Открываем файл \catalog\controller\product\category.php

В самом начале файла находим вот это:

if (isset($this->request->get['sort'])) {
  $sort = $this->request->get['sort'];
  } else {
  $sort = 'p.sort_order';
  }
  if (isset($this->request->get['order'])) {
  $order = $this->request->get['order'];
  } else {
  $order = 'ASC';

и меняем

$sort = 'p.sort_order';

на
$sort = 'p.date_added';

Для того, чтобы изменить порядок отображения (По убыванию/По возрастанию), нужно изменить

$order = 'ASC';

где DESC - сначала новые, потом старые,

а ASC - сначала старые потом новые.

В принципе, этого уже достаточно. Можно оставить название метода сортировки прежним "По умолчанию", а можно переименовать переменную 'text_default' в файле \catalog\language\russian\product\category.php. И радоваться жизни [показать]

2. Но если нужно, чтобы новый вариант был добавлен в выбор сортировки и назывался по-другому, делаем следующее:

Остаёмся в том же файле \catalog\controller\product\category.php.

Ищем вот этот кусок кода (примерно 200 строка):

$this->data['sorts'][] = array(
'text' => $this->language->get('text_date_desc'),
'value' => 'p.sort_order-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
);

и добавляем сразу после него вот этот код:
$this->data['sorts'][] = array(
        'text'  => $this->language->get('text_date_desc'),
        'value' => 'p.date_added-DESC',
        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
  );
  $this->data['sorts'][] = array(
        'text'  => $this->language->get('text_date_asc'),
        'value' => 'p.date_added-ASC',
        'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=ASC' . $url)
  );

Где в качестве 'text_date_desc' и 'text_date_asc' выступают наши новые названия для сортировки по дате добавления товаров в прямом и обратном порядке.

3. Чтобы настроить корректный вывод названия новых типов сортировки 'text_date_desc' и 'text_date_asc'
редактируем соответствующий языковой файл.
Для моего примера просто добавляем эти строки в файл: \catalog\language\russian\product\category.php

$_['text_date_asc'] = 'Сначала старые товары';
$_['text_date_desc']  = 'Сначала новые товары';

 

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник как добавить "сортировка по поступлению"? | Yuliakir - Дневник Yuliakir | Лента друзей Yuliakir / Полная версия Добавить в друзья Страницы: раньше»