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

2959
Всем привет!
Понадобилось сделать вот такой поиск с рендомным выбором слова из ключевых слов.


Ключевые слова берутся из таблицы cms_tags.
Ниже обновленный код файла modules/mod_search/module.php
Код 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
Кросспостинг в ЖЖ
Комментарии (21)
qwest 29 мая 2011 в 07:49 0
А по подробнее.....
Blit 29 мая 2011 в 08:09 0
Чего подробнее? Это, например, как в Яндексе:
0 29 мая 2011 в 08:49 0
Хорошая штука smile
Но у меня вопрос: как вообще работает поиск в Инстант? чисто по ключам?
Blit 29 мая 2011 в 08:53 0
А как сделать чтобы слова в "Например", автоматически менялись без перезагрузки страницы?
AlexG 29 мая 2011 в 09:15 +2
Немного переписать запрос - сделать чтобы выбор был не одного случайного слова, а нескольких - после этого подцепить какую-нибудь крутилку.
Blit 29 мая 2011 в 09:38 +1
Хорошо бы на AJAX
Егор 29 мая 2011 в 09:54 0
а как увеличить длину поля поиска?
AlexG 29 мая 2011 в 10:09 +4
Можно так - при помощи класса 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;
}
AlexG 29 мая 2011 в 10:12 +3
b и /b - удалить
Егор 29 мая 2011 в 11:09 0
этот код нужно добавить в новый код модуля поиска?
AlexG 29 мая 2011 в 11:21 +2
Класс .searchfield добавить в вашу таблицу стилей styles.css
Егор 29 мая 2011 в 11:41 0
спасибо...
lezginka.ru 29 мая 2011 в 15:14 0
+
AlexG,отличная вещь, всю "свою жизнь на инстанте" думал об этом :)
только как бы туда добавить выбору(расширенный поиск) : только в статьях, только на форуме, только в комментариях, только в блогах, только в клубах  и т.д.
это сложно сделать ?
lezginka.ru 29 мая 2011 в 15:16 0
к любой версии подходит ?
AlexG 29 мая 2011 в 16:45 0
работало полгода на 1.62, на старших не проверял - но по идее все должно работать.
Web FloMaster 29 мая 2011 в 15:30 0
Очень полезная штука!!! Спасибо Большое! +
Edik_Salonikski 29 мая 2011 в 16:56 0
спасибо+
vitalson9 29 мая 2011 в 20:56 0
на 1.8 ругаеться с плагином видео
0 30 мая 2011 в 09:20 0
А как изменить размер поля куда вводить текст - Я ищу ...?

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