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

Не работает сортировка фильтров внутри группы фильтров.


rhymer

Recommended Posts

В настройках группы фильтров каждому значению в админке задал порядок сортировки (по возрастающей).

Но на сайте в боковой панели отображаются вразноброс. Проверил - сортировка идёт в соответствии с id каждого фильтра, а не в соответствии с порядком сортировки. Подскажите, пожалуйста, как это исправить?

 

Сортировка.png

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


Из коробки должно быть так как вам надо, значит стоят какие-то модификаторы, изменяющие поведение вывода (запрос к базе изменен)

или что-то меняли в коде.

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

Доделываю за другим верстальщиком, так что не имею представления, меняли ли что-либо. Сверху стоит тема Journal, но она стандартные фильтры не трогает, только оформление.

Подскажите, пожалуйста, где искать?

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


по идее это файл
catalog\model\catalog\category.php и его функция getCategoryFilters
Там задается сортировка в запросе к фильтрам по полю сортировки ( ORDER BY  f.sort_order, LCASE(fd.name) ).
Но это может быть модифицировано каким-то модулем, поэтому надо смотреть этот файл в папке модификаторов, проверять там и искать модификатор, который запрос поменял.
Это если запрос. А могло быть в контроллере - просто по id запихивают в массив эти фильтры, а не в той сортировке, в которой получено из базы.
Это все гадание на кофейной гуще...

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

18 часов назад, Prooksius сказал:

по идее это файл
catalog\model\catalog\category.php и его функция getCategoryFilters
Там задается сортировка в запросе к фильтрам по полю сортировки ( ORDER BY  f.sort_order, LCASE(fd.name) ).

Нашёл эту функцию, там вижу следующее:
 

	public function getCategoryFilters($category_id) {
		$category_filter_data = array();

		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category_filter WHERE category_id = '" . (int)$category_id . "'");

		foreach ($query->rows as $result) {
			$category_filter_data[] = $result['filter_id'];
		}

		return $category_filter_data;
	}

Я с PHP практически не сталкивался, подскажите пожалуйста, как именно задать сортировку по полю сортировки, чтобы не поломать код.

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


Прошу прощения, действительно ошибся файлом. В искомом файле запрос действительно оформлени так:

				$filter_query = $this->db->query("SELECT DISTINCT f.filter_id, fd.name FROM " . DB_PREFIX . "filter f LEFT JOIN " . DB_PREFIX . "filter_description fd ON (f.filter_id = fd.filter_id) WHERE f.filter_id IN (" . implode(',', $implode) . ") AND f.filter_group_id = '" . (int)$filter_group['filter_group_id'] . "' AND fd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY f.sort_order, LCASE(fd.name)");

Я так понимаю, нужно искать где-то ещё? И спасибо за терпение - я понимаю, как это выглядит со стороны.

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


Тут правильно.
Теперь нужно найти этот же файл, но в папке модификаторов и смотреть его. Если он вообще там существует...
storage\modification\catalog\model\catalog\category.php
И тоже смотреть на этот запрос.
Если он другой - тогда нужно искать, какой модификатор этот файл подменяет. И по возможности его отключать или переделывать.

 

Если такого файла нет - тут уже начинаются гадания на кофейной гуще и проще будет просто дать доступы  кому-то чтобы он исправил.

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

В 28.01.2022 в 18:35, Prooksius сказал:

Если он вообще там существует...
storage\modification\catalog\model\catalog\category.php

Спасибо огромное за ответ. Там нет не только такого фйала, но и папки. 

/storage/modification/catalog/model

И всё, дальше тупик. У меня есть подозрение, что виной может быть тема Journal, но в ней нигде нет настроек сортировки, а данные она подхватывает из стандартной. Буду копать в этом направлении.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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