Модуль поиска с подсказками из ключевых слов

+33
3.6K
Всем привет!
Понадобилось сделать вот такой поиск с рендомным выбором слова из ключевых слов.
Иллюстрация

Ключевые слова берутся из таблицы cms_tags.
Ниже обновленный код файла modules/mod_search/module.php
  1. <?php
  2. function mod_search($module_id){
  3. global $rndword;
  4.  
  5. $inCore = cmsCore::getInstance();
  6. $inDB = cmsDatabase::getInstance();
  7. $cfg = $inCore->loadModuleConfig($module_id);
  8.  
  9. echo $rndword;
  10.  
  11. $sql = 'SELECT COUNT(*) as `count` from cms_tags WHERE (target="content" OR target="catalog")';
  12. $result = $inDB->query($sql);
  13. $cnt = $inDB->fetch_assoc($result);
  14. $rnd = rand(0,$cnt['count']);
  15.  
  16. $sql= 'SELECT tag FROM cms_tags WHERE (target="content" OR target="catalog") LIMIT '.$rnd.',1 ';
  17.  
  18. $result = $inDB->query($sql);
  19. if ($inDB->num_rows($result)){
  20. $tag = $inDB->fetch_assoc($result);
  21. }
  22. echo '<script language="JavaScript" type="text/javascript">$(document).ready(function() {$(".searchfield").attr("value", "Я ищу ..."); var text = "Я ищу ..."; $(".searchfield").focus(function() {$(this).addClass("active");if($(this).attr("value") == text) $(this).attr("value", "");}); $(".searchfield").blur(function() {$(this).removeClass("active");if($(this).attr("value") == "") $(this).attr("value", text);});}); $(function() { $(\'.searchtag\').click(function() { $(\'.searchfield\').attr(\'value\', \''.$tag['tag'].'\'); });});</script>';
  23. echo '<div><form name="searchform" id="search" action="/index.php" method="get">';
  24. echo '<input type="hidden" class=1 name="view" value="search"/>';
  25. echo '<input class="searchfield" type="text" name="query" />';
  26. echo '<input id="searchsubmit" type="submit" onclick="document.searchform.submit()" value="&#1053;&#1072;&#1081;&#1090;&#1080;" />';
  27. echo '</form></div>';
  28. echo '<div class="forexample">Например: <span class=searchtag style="color: #7b7b7b; border-bottom: 1px dashed; cursor: pointer;">'.$tag['tag'].'</div>';
  29. return true;
  30. }
  31. ?>
Каталог моих других дополнений для InstantCMS http://soft-solution.ru/catalog/instantcms
0
qwest qwest 12 лет назад #
А по подробнее.....
0
Blit Blit 12 лет назад #
Чего подробнее? Это, например, как в Яндексе:
0
12 лет назад #
Хорошая штука smile
Но у меня вопрос: как вообще работает поиск в Инстант? чисто по ключам?
0
Blit Blit 12 лет назад #
А как сделать чтобы слова в "Например", автоматически менялись без перезагрузки страницы?
+2
AlexG AlexG 12 лет назад #
Немного переписать запрос - сделать чтобы выбор был не одного случайного слова, а нескольких - после этого подцепить какую-нибудь крутилку.
+1
Blit Blit 12 лет назад #
Хорошо бы на AJAX
0
Егор Егор 12 лет назад #
а как увеличить длину поля поиска?
+4
AlexG AlexG 12 лет назад #
Можно так - при помощи класса css
Код PHP:
.searchfield{
-moz-border-radius:2px 2px 2px 2px;
height:2em;
line-height:1.4em;
margin-top:1px;
padding:0.2em 0.5em !important;
vertical-align:top;
[b]width:280px !important;[/b]
margin-right:5px;
}
+3
AlexG AlexG 12 лет назад #
b и /b - удалить
0
Егор Егор 12 лет назад #
этот код нужно добавить в новый код модуля поиска?
+2
AlexG AlexG 12 лет назад #
Класс .searchfield добавить в вашу таблицу стилей styles.css
0
Егор Егор 12 лет назад #
спасибо...
0
lezginka.ru lezginka.ru 12 лет назад #
+
AlexG,отличная вещь, всю "свою жизнь на инстанте" думал об этом :)
только как бы туда добавить выбору(расширенный поиск) : только в статьях, только на форуме, только в комментариях, только в блогах, только в клубах и т.д.
это сложно сделать ?
0
lezginka.ru lezginka.ru 12 лет назад #
к любой версии подходит ?
0
AlexG AlexG 12 лет назад #
работало полгода на 1.62, на старших не проверял - но по идее все должно работать.
0
Web FloMaster Web FloMaster 12 лет назад #
Очень полезная штука!!! Спасибо Большое! +
0
Edik_Salonikski Edik_Salonikski 12 лет назад #
спасибо+
0
vitalson9 vitalson9 12 лет назад #
на 1.8 ругаеться с плагином видео
0
12 лет назад #
А как изменить размер поля куда вводить текст - Я ищу ...?

У меня дыло 100% , а тут что-то не могу найти где меняется...
0
Егор Егор 12 лет назад #
смотри посты выше, мне уже ответили на этот вопрос
+1
SeaLord SeaLord 12 лет назад #
Умничкаsmileя же говорил - елси не разработчики так пользователи сделают )))

Еще от автора

Плагин музыка для клубов для InstantCMS1.10
Всем привет! Плагин добавляет раздел музыка для всех клубов.
Загрузка фотографий в админке для Фотоальбомов InstantCMS 1.10+
В InstantCMS 1.10+ разработчики убрали загрузку фотографий в админке в целях безопасности.
Компонент Поздравления
Всем привет. Представляю компонент Поздравления для InstantCMS. Компонент позволяет оставлять пользователям сообщения-поздравления на вашем сайте.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.