Расширенный поиск

  • 2 Ответов
  • 256 Просмотров

gamma

  • Сообщений: 88
  • люблю музон
    • Просмотр профиля
    • Полный доступ
Расширенный поиск
« : 20 Мая 2018, 21:19:08 »
Случайно увидел что в форме поиска по каталогу есть расширенный поиск с поиском по цене от и до. Поле ввода скрыто скриптом. Никак не врублюсь как включить этот самый расширенный поиск. И почему он вдобавок ко всему не работает? Убираю display:none на форме расширенного поиска ввожу цены от и до плюс слово (название товара), поиск выкидывает в ерор.
Может это просто ещё не доделанная функция?
И ещё вопрос - кто нибудь реализовывал сортировку в каталоге, например по цене?
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

gamma

  • Сообщений: 88
  • люблю музон
    • Просмотр профиля
    • Полный доступ
Re: Расширенный поиск
« Ответ #1 : 24 Мая 2018, 15:02:09 »
Наверно никто не пользуется расширенным поиском, я так понимаю. И почему он не работает как должен никто не в курсе. Самое интересное что перечитав список функционала увидел то, что ранее упустил - Каталог товаров : Поиск по товарам. Отключение поиска. Отключение форм поиска, без отключения поиска.
Расширенный поиск при входе в категорию. Поиск по дополнительным полям.
Почему это не работает?
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.

gamma

  • Сообщений: 88
  • люблю музон
    • Просмотр профиля
    • Полный доступ
Re: Расширенный поиск
« Ответ #2 : 28 Мая 2018, 15:23:21 »
Так и не дождался ответов, решил сделать хотя бы сортировку по результатам поиска. Может кому понадобится.
Так как мне нужна была сортировка по цене то я сделал такой вариант, в файле form.search.tpl каталога я добавил следующий код после формы ввода поискового слова
<fieldset>
<label for="word">Цена</label>
<select id="sort" name="sort" class="sw165">
<option value="ASC">По возрастанию</option>
<option value="DESC">По убыванию</option>
                </select>
</fieldset>
В файле search.php того же мода каталог я добавил следующий код
$sorttable = $sort;
в районе 50-х строчек после
/**
 * REDIRECT
 */
if ($conf['search'] == 'no')
{
redirect($ro->seo('index.php?dn='.WORKMOD));
}
а в районе 440 строки (нумерация может немного смещаться если что то добавляли или удаляли в коде)
в строку запроса
$inq = $db->query("SELECT * FROM ".$basepref."_".WORKMOD." WHERE ".$sql." ORDER BY price ASC LIMIT ".$sf.", ".$config['searchcol']);
вместо ASC вставил переменную которую передаю из form.search.tpl (код выше)
Получилось так
$inq = $db->query("SELECT * FROM ".$basepref."_".WORKMOD." WHERE ".$sql." ORDER BY price ".$sorttable." LIMIT ".$sf.", ".$config['searchcol']);
В принципе можно наверно удалить этот фрагмент
$sorttable = $sort;

и в запрос сразу вставить переменную $sort, я не проверял.
По такому принципу можно сделать сортировку по любому полю при выдаче результатов поиска.
Свободный фрилансер. 90% сайтов которые с успехом сдал под ключ на Даннео.