Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


rhymer
 Поделиться

Рекомендованные сообщения

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

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

 

Ссылка на комментарий
Поделиться на других сайтах


Каким фильтром пользуетесь? Тот что в боковой панели. Спросить у его создателя пробовали?

Ссылка на комментарий
Поделиться на других сайтах

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

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

Ссылка на комментарий
Поделиться на других сайтах

Доделываю за другим верстальщиком, так что не имею представления, меняли ли что-либо. Сверху стоит тема 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, но в ней нигде нет настроек сортировки, а данные она подхватывает из стандартной. Буду копать в этом направлении.

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.