Хак: Автозаполнение для поиска

Давненько я не писал… и так к делу.
Автозаполнение/подсказки (autocomplete) для поиска современная и весьма полезная вещь. Тут просматривая ЛС обнаружил, что данная функция здесь отсутствует.

Решил сделать на базе тегов. Реализация — минутное дело. Зато весьма удобно.
header_nav.tpl — в форме поиска, к input:

<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" />


добавить аттрибут id равный скажем search_form и autocomplete в off т.е.

<input class="text" type="text" onblur="if (!value) value=defaultValue" onclick="if (value==defaultValue) value=''" value="{$aLang.search}" name="q" id="search_form" autocomplete="off" />


А перед формой или в header.tpl добавить следующий код:

{literal}
<script language="JavaScript" type="text/javascript">
document.addEvent('domready', function() {	
	new Autocompleter.Request.HTML($('search_form'), DIR_WEB_ROOT+'/include/ajax/tagAutocompleter.php', {
		'indicatorClass': 'autocompleter-loading', 
		'minLength': 2, 
		'selectMode': 'pick', 
		'multiple': false 
	}); 
});	
</script>
{/literal}



Вуаля! Набираем два символа и вылезает подсказка:)

P.S. Если уже было — извините, не нашел.

28 комментариев

avatar
Спасибо, классно, поставил — понравилось. Пользователю тоже в помощь
avatar
Это для любого поиска, тут ведь поиск сам у всех по разному реализован, у кого сфинкс у кого модули...???
avatar
Да.
avatar
Простите, а перед формой это куда, если не трудно уточните несведущим?
avatar
Все догнал, спасибо, +1 вам
avatar
Спасибо! Все просто и классно!
avatar
Все гениальное — просто, спасибо, пригодится.
  • gran
  • +2
avatar
и не говори :)
автору хака спасибо — полезная вещица
avatar
как-то даже странно стало, что в движке этого до сих пор нет!
avatar
Спасибо! Добавил у себя на проекте =)
avatar
правда немного не логично для поиска подставлять теги
  • ort
  • 0
avatar
Не то чтобы не логично… Я бы сказал вообще бессмысленно.
А вот почему этого нету на поиске по тегам вообще не понятно… ведь функционал то есть!
avatar
Шикарная вещь! Огромное спасибо.

Есть небольшая проблема — появляется спустя приличное время — это из за моего сервера или у всех такая проблема?
avatar
Да, у меня тоже тормозит с выводом.
avatar
Поставил на поиск без сфинкса, работает, спасибо:)
avatar
Поставил у себя, со сфинксом не фурычит:(
avatar
Отлично фурычит со сфинксом. Правда, я сфинкс юзаю не через mysql.sock (directadmin конечно штука хорошая, но иногда вставляет палки в колеса неслабо =))
avatar
почему-то при написании слов в строку ничего не происходило (вываливался запрос с текстом «Hacking attempt»), с чего понял, что не передается в запрос параметр security_ls_key. Решилось так: (вместо скрипта, что перед формой)
{literal}
<script language="JavaScript" type="text/javascript">
document.addEvent('domready', function() {      
        new Autocompleter.Request.HTML($('search_form'), DIR_WEB_ROOT+'/include/ajax/tagAutocompleter.php', {
                'indicatorClass': 'autocompleter-loading', 
                'minLength': 2, 
                'selectMode': 'pick', 
                'multiple': false ,
                'postData': {
                    security_ls_key: LIVESTREET_SECURITY_KEY
                }
        }); 
});     
</script>
{/literal}


По сути в объект третьего параметра функции добавить
'postData': {
    security_ls_key: LIVESTREET_SECURITY_KEY
}
avatar
а все же перед формой это куда?
avatar
Выполнил хак в ввиде плагина.
После модерации будет доступен в каталоге
avatar
Не видно в каталоге. В чем загвоздка?
avatar
Уже 4 день модерируют.
avatar
уже есть
avatar
Отличная и очень полезная модификация..!!! Спасибо Автору..:)
avatar
0.4.2 — недавно установил, в програминге вообще не шарю, но когда пробовал реализовать этот хак заметил что у меня поиск вооще не работает
хак кстати тоже, загрузку запроса показывает но результат не выдает;
из плагинов только админ панель и 'pages'
avatar
для поиска нужен Sphinx, либо плагин aceMySearch
avatar
а к aceMySearch обязательно ещё и aceAdminPanel
avatar
А не по тегам, а, скажем — по топикам, возможно сделать автокомплитер?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.