Артём Мáлков

Поиск по определенным категориям в DLE

3 янв11 комм

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

Расскажу, как быстро и просто решить эту проблему и расширить функционал стандартного поиска в DLE.

Поиск по определенным категориям

Стандартная форма поиска в DataLife Engine выглядит следующим образом:

<form action="" name="searchform" method="post">

	<input type="hidden" name="do" value="search" />
	<input type="hidden" name="subaction" value="search" />
	<input id="story" name="story" value="" type="text" />
	<input title="Найти" alt="Найти" type="image" src="{THEME}/images/spacer.gif" />

</form>

Для того чтобы сделать возможность поиска только по определенным категориям, внесем в форму небольшие изменения.

Между тегами <form></form> после

<input type="hidden" name="do" value="search" />

вставьте

<input type="hidden" name="catlist[]" value="7" />

Если вы хотите определить несколько категорий, по которым будет осуществляться поиск, то вставьте этот код несколько раз и замените в нем value="7" на нужные вам категории, например:

<input type="hidden" name="catlist[]" value="7" />
<input type="hidden" name="catlist[]" value="10" />
<input type="hidden" name="catlist[]" value="11" />
<input type="hidden" name="catlist[]" value="15" />

Выбор нужной категории для поиска

Если же вы хотите предоставить пользователям выбор, в какой категории нужно выполнить поиск, то воспользуйтесь следующим кодом, который также нужно вставить между <form></form>

<select name="catlist[]">

	<option value="7">Комедии</option>
	<option value="10">Приключения</option>
	<option value="15">Отечественные</option>

</select>

Здесь вы тоже можете добавить нужные вам категории и их количество.

Рекомендуем к просмотру
Как установить лимит выбора checkbox из группы на jQuery?
Статьи и советы
10-балльная оценка в отзыве о товаре в OpenCart
Хаки
Решаем проблему с возвратом на страницу поиска с полной новости в DLE
Хаки
11
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1
      •  Проверенный
    12 ноя в 03:48

    Замечательный сайт и очень полезный хак. Ничего подобного нигде не нашел. Но в 15-й версии уже не работает - ищет сразу всё, не обращая внимания на опции. Может, кто-нибудь пробовал подстроить?

    • 1
    766
      •  Гости
    17 июн в 05:51

    Как то пробовал на 12.1 все работало, но стоило перейти на 2 станицу результатов поиска как он уже выдавал результаты с других категорий.

    • 1
    766
      •  Гости
    22 июл в 15:18

    Спасибо большое!!!

    Это я сам ступил :) Все работает на ура!

    Возможно подскажите, как добавить в форму поиск по дополнительному полю город? :)

    Чтобы поиск фильтровался по категории и одному доп полю :)

    • 9
    1067
      •  Команда Pandoge
    21 июл в 17:02

    Олег, Здравствуйте! Пришлите пожалуйста сайт, где установлена эта форма - проверю корректность работы.

    • 2
    766
      •  Гости
    21 июл в 13:57

    Здравствуйте.

    Очень полезный хак и спасибо за работу, но у меня (11.3) поиск осуществляется только во всех категориях.

    Если категория выбрана, то ничего не находит.

    [code]

    <form action="" name="searchform" method="post">

    <div class="form-group">

    <input type="hidden" name="do" value="search">

    <input type="hidden" name="subaction" value="search">

    <input type="text" id="story" name="story" class="form-control" placeholder="Ключевое слово" />

    </div>

    <div class="form-group">

    <input type="text" id="search_location" class="form-control" name="search_location" placeholder="Ваша локация" />

    </div>

    <div class="form-group">

    <div class="select-style">

    <select name="catlist[]" class='form-control' >

    <option value='0' selected='selected'>Выыбор категории</option>

    <option class="level-7" value="7">Кошки</option>

    <option class="level-8" value="8">Собаки</option>

    <option class="level-10" value="10">Птички</option>

    <option class="level-11" value="11">Рыбки</option>

    <option class="level-12" value="12">Грызуны</option>

    <option class="level-13" value="13">Другие питомцы</option>

    <option class="level-14" value="14">Сопутствующие товары</option>

    </select>

    </div>

    </div>

    <div class="form-group">

    <button type="submit" class="btn btn-primary btn-block">Поиск</button>

    </div>

    </form>

    [/code]

    • 1
    766
      •  Гости
    22 мар в 19:42

    А когда будет статья для быстрого поиска?

    • 1
    766
      •  Гости
    27 фев в 21:53

    Буду очень Вам благодарен. Вещь хорошая и нужная.

    • 9
    1067
      •  Команда Pandoge
    27 фев в 20:29

    Александр, этот вариант работает только с обычным поиском - но по возможности, мы постараемся написать руководство для быстрого поиска.

    • 2
    766
      •  Гости
    27 фев в 19:55

    Здравствуйте. Проделал все как Вы описали, но в быстром поиске почему-то не работает.

    Ни <input type="hidden" name="catlist[]" value="" />, ни <select name="catlist[]"></select>

    Все равно ищет во всех категориях

    • 13
    1067
      •  Команда Pandoge
    3 фев в 20:06

    Спасибо вам за комментарии. По поводу кнопки - все будет, но всему свое время. Т.к очень много идей, как по этому проекту, так и по материалам, которыми хочется поделиться с читателями. Но, время не на нашей стороне - и приходиться расставлять приоритеты.

    • 3
    766
      •  Гости
    3 фев в 19:40

    На сайте десятки полезностей и странно что нет кнопки благодарности "Спасибо" Ведь некоторым в лом написать пару слов.

    И к слову, у вас нету такого скрипта для DLE во времена когда я искал его нормальна работающего или вообще работающего не было.

Подняться наверх
«Pandoge» - помощник вебмастера