Перейти к содержанию
mario512

OCFilter 4.19 сортировка значений фильтра

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

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

Спасибо за любые советы. Горит.

 

58bea7289a60c_.jpg.3a9629b54d1c4c00444c50923c1a1570.jpg

Изменено пользователем mario512

Поделиться сообщением


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

Если не ошибаюсь, то порядок значений в фильтре = порядку атрибутов.

Сделайте бэкап и скопируйте в модуле значения

Изменено пользователем n3bo

Поделиться сообщением


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

Спасибо, пробую...

Поделиться сообщением


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

Всё по прежнему

Поделиться сообщением


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

У кого то получилось добиться сортировки значений фильтра? Это просто жесть! Таких крайне важных функций попросту нет! НЕ могу пока в коде найти где этот запрос который работает на вывод значений в фильтре. В БД вроде нашел нужное поле в таблице oc_ocfilter_option_value .Поле sort_order. Правда изменяя эти значения в БД - ни какой реакции. Видимо в коде просто нет сортировки. Где же ее добавить? Подскажите, плиз! Уже третий час бьюсь.

Поделиться сообщением


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

ну это такой особенный фильтр. Зато он единственный доступный в исходниках.

разбирайтесь и пилите.

Не умеете - тогда берите другой фильтр. Увы.

Поделиться сообщением


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

Хы... )) Не, я понимаю... хочется что то сказать. Но если знаете где пилить - то будьте добры. А такой совет... прошу прощения - но выше я кажется и написал что пилить - пилю.

Поделиться сообщением


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

очевидно что в функции getOCFilterOptionsByCategoryId

и конечно же кэш очистить не забудьте.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 minutes ago, nikifalex said:

очевидно что в функции getOCFilterOptionsByCategoryId

и конечно же кэш очистить не забудьте.

 

СПАСИБО! Ща буду копать! ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
52 minutes ago, nikifalex said:

очевидно что в функции getOCFilterOptionsByCategoryId

и конечно же кэш очистить не забудьте.

 

ВСЕ! Еще раз спасибо! Вроде нашел то что нужно! :) Поменял сортировку с name на value_id. Тоже не совсем удобно, но покарйней мере более разумно ;) Сроки поджимают. Надо работу сдавать. Пока пойдет так! Жаль не могу лайкнуть ваш пост. Наверно еще не достаточно прав. Но СПАСИБО за подсказку!

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 01.07.2017 в 20:53, volfr сказал:

ВСЕ! Еще раз спасибо! Вроде нашел то что нужно! :) Поменял сортировку с name на value_id. Тоже не совсем удобно, но покарйней мере более разумно ;) Сроки поджимают. Надо работу сдавать. Пока пойдет так! Жаль не могу лайкнуть ваш пост. Наверно еще не достаточно прав. Но СПАСИБО за подсказку!

Где правили, если не секрет?

Поделиться сообщением


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

Можна в базе в таблице oc_ocfilter_option_value напрямую проставить сортировку для каждого option_id как хочется с помощью поля sort_order

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 8/28/2017 at 6:55 PM, mario512 said:

Где правили, если не секрет?

Я уже и не помню... :) все равно пришлось отказаться отOCFilter в сторону Мегафильтра. Все таки у него больше преимуществ. Не помню уже какие именно критерии оказались решающими. Долго искал оптимальный вариант. Остановился на Мегафильтре.

Поделиться сообщением


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

Добрый день
Та же проблема,  

Цитата

Поменял сортировку с name на value_id.

Подскажите пожалуйста где Вы поменяли?) Спасибо.

Поделиться сообщением


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

С горем по полам победил, как и писал @nikifalex

Нужно поменять значение name на value_id в методе  getOCFilterOptionsByCategoryId
Этот метод находится в файле catalog/controller/extension/module/ocfilter.php

 $values_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "ocfilter_option_value oov LEFT JOIN " . DB_PREFIX . "ocfilter_option_value_description oovd ON (oov.value_id = oovd.value_id) WHERE oov.option_id IN (" . implode(',', $options_id) . ") AND oovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY (oovd.value_id = '-') DESC, (oovd.value_id = '0') DESC, (oovd.value_id + 0 > 0) DESC, (oovd.value_id + 0), LENGTH(oovd.value_id), oovd.value_id");

Криворуко, через жопу, но работает.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 22.09.2017 в 12:23, FLV сказал:

С горем по полам победил, как и писал @nikifalex

Нужно поменять значение name на value_id в методе  getOCFilterOptionsByCategoryId
Этот метод находится в файле catalog/controller/extension/module/ocfilter.php


 $values_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "ocfilter_option_value oov LEFT JOIN " . DB_PREFIX . "ocfilter_option_value_description oovd ON (oov.value_id = oovd.value_id) WHERE oov.option_id IN (" . implode(',', $options_id) . ") AND oovd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY (oovd.value_id = '-') DESC, (oovd.value_id = '0') DESC, (oovd.value_id + 0 > 0) DESC, (oovd.value_id + 0), LENGTH(oovd.value_id), oovd.value_id");

Криворуко, через жопу, но работает.

Спасибо!

Поделиться сообщением


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

Обсуждение технических моментов платных продуктов проводится в их темах поддержки, если дополнение представлено на этом форуме или с разработчиком дополнения. Закрыто.

Изменено пользователем shoputils

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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