Поиск по сайту , сниппет AjaxSearch

AjaxSearch - один из наиболее популярных сниппетов из поставляемых в комплекте дистрибутива MODx. На текущий момент версия 1.8.3a, в которой исправлено множество ошибок и на сегодняшний день вполне рабочая. Сниппет не зря получил такую популярность - невероятно мощное, современное и гибкое решение для создания поиска в рамках сайта. С помощью AjaxSearch можно организовать поиск по всем ресурсам сайта, по группам документов, с фильтрацией результатов, с настраиваемым видом отображения результатов поиска. Позволяет ограничить область поиска перечислением необходимых полей документов, подключить плагин PHx если необходима дополнительная логика.  Отображение результатов поиска может быть как в классическом стиле - на отдельной странице , так и во всплывающем окне с поддержкой "поиска на лету". Возможна подсветка найденных слов. Как и для прочих сниппетов modx, AjaxSearch может использовать пользовательские шаблоны.  AjaxSearch достаточно хорошо документирован, есть русский перевод параметров, отдельный раздел анклийского wiki(рекомендую) и русский wikibooks

Здесь приведу лишь пару простых, наиболее востребованных  примеров.

Обычный поиск с выводом результатов на отдельной странице:

1) Создаём новый документ ( ресурс ) , отключаем возможность поиска по нему и html редактор. В область контента помещаем строку:

[!AjaxSearch? &ajaxSearch=`0` &parents=`ID1,ID2,ID3` &AS_showForm=`0`!]

2) Создаём чанк {{search}} и копируем в него следующее:

[!AjaxSearch? &ajaxSearch=`0` &parents=`ID1,ID2,ID3` &AS_landing=`XX` &AS_showResults=`0`!]

XX - ID страницы которую сделали в пункте 1.
ID1,ID2,ID3 - список родительских ресурсов (папок) , в пределах которых будет осуществляться поиск.

3) Добавляем описание стилей , каждый по вкусу... , ну что-нибудь вроде:

  1.  
  2. #ajaxSearch_form {
  3. color: #444;
  4. width: auto;
  5. }
  6. #ajaxSearch_input {
  7. width: auto;
  8. display: inline;
  9. height: 17px;
  10. border: 1px solid #ddd;
  11. border-left-color: #c3c3c3;
  12. border-top-color: #7c7c7c;
  13. background: #fff url(images/input-bg.gif) repeat-x top left;
  14. margin: 0 3px 0 0;
  15. padding: 3px 0 0;
  16. vertical-align: top;
  17. }
  18. #ajaxSearch_submit {
  19. display: inline;
  20. height: 22px;
  21. line-height: 22px;
  22. }
  23. #ajaxSearch_output {
  24. border: 1px solid #444;
  25. padding: 10px;
  26. background: #fff;
  27. display: block;
  28. height: auto;
  29. vertical-align: top;
  30. }
  31. .AS_ajax_result {
  32. color: #444;
  33. margin-bottom: 3px;
  34. }
  35. .AS_ajax_resultLink {
  36. text-decoration: underline;
  37. }
  38. .AS_ajax_resultDescription{
  39. color: #555;
  40. }
  41. .AS_ajax_more {
  42. color: #555;
  43. }
  44.  

Вставляем в шаблоне {{search}}и проверяем работоспособность

Поиск с отображением результатов в плавающем окне с использованием Ajax и поиском на лету:

Чуть позже в продолжении....

 

Последнее изменение документа: 04 Октябрь 2009
Showing comments 1 to 10 of 12 | Next | Last
Julliet
Posts: 12
Comment
Re: Поиск по сайту , сниппет AjaxSearch
Reply #12 on : Втр Август 24, 2010, 02:31:24
Может, имеет смысл указать, для какой версии MODx и сниппета в частности, данная статья политически верна? Я затр***ась честно, пока нашла, что ошибка у меня тупо в другой версии сниппета! kick - у Вас наверно тоже самое! Короче, всем у кого версия MODx 1.0.4 посвящается, ряд необходимых изменений при вызове сниппета:

AS_showForm => showInputForm
AS_landing => landingPage
AS_showResults => showResults
AS_search => search

Все, после такой насыщенной еб*и мозга можно и поспать!Всем удачи!
Julliet
Posts: 12
Comment
Бесполезная статья
Reply #11 on : Втр Август 24, 2010, 02:10:36
Абсолютно. Кто не нашел тут полезной информации, советую написать в гугле ajaxsearch wiki.

НУ ПРАВДА БЕСТОЛКОВАЯ.

Хотя спасибо и на том.
Julliet
Posts: 12
Comment
Странно
Reply #10 on : Пнд Август 23, 2010, 18:54:10
Уважаемый kick, простите, но
"#ajaxSearch_form fieldset {border:none;
color: #444;
width: auto;
}"

это вы тут указали, что границы типа быть не должно?
а для чего кстати указывать цвет и ширину для блока, который вообще в принципе не должен отображаться? а попробуйте убрать, оставьте только про бордер.
Julliet
Posts: 12
Comment
Дизайн и результаты
Reply #9 on : Пнд Август 23, 2010, 18:49:52
Так же как у kick, результаты выводятся "не туда"
и стили отчего-то упорно игнорируются. (ладно хоть отвратную рамку убрала)))
kick
Posts: 12
Comment
search
Reply #8 on : Чтв Август 12, 2010, 21:23:48
Или он производится, но просто не выводится на отдельную страницу с результатами поиска.
kick
Posts: 12
Comment
search
Reply #7 on : Чтв Август 12, 2010, 21:18:02
И ещё вопрос. Все сделал в точности как написано, но поиск не производится. может это зависит от версии движка?
в CSS прописал тоже как вы сказали
#ajaxSearch_form fieldset {border:none;
color: #444;
width: auto;
}
но странная рамка вокруг формы поиска не убралась.
kick
Posts: 12
Comment
Поиск
Reply #6 on : Чтв Август 12, 2010, 20:50:00
Классная статья. Вы по-моему единственный сайт (из огромной кучи ModX-совцев), где администратор отвечает в комментариях=) Ваш сайт в закладках с момента, как я его увидел=)
А не подскажете, почему так получается, что когда я вставляю стандартно -то окно результатов поиска выводится там же, сдвигая контент вниз? Это нормально?
...и ещё вопрос, вот в этот &parents=`ID1,ID2,ID3` список нужно включить ВСЕ ID по которым я хочу чтобы производился поиск?
P.S.: ID в ModX имеется ввиду "позиция в меню"?
kick
Posts: 12
Comment
Re: Поиск по сайту , сниппет AjaxSearch
Reply #5 on : Чтв Август 12, 2010, 20:49:00
Классная статья. Вы по-моему единственный сайт (из огромной кучи ModX-совцев), где администратор отвечает в комментариях=) Ваш сайт в закладках с момента, как я его увидел=)
А не подскажете, почему так получается, что когда я вставляю стандартно -то окно результатов поиска выводится там же, сдвигая контент вниз? Это нормально?
...и ещё вопрос, вот в этот &parents=`ID1,ID2,ID3` список нужно включить ВСЕ ID по которым я хочу чтобы производился поиск?
P.S.: ID в ModX имеется ввиду "позиция в меню"?
Anonymous
Posts: 12
Comment
Re: Поиск по сайту , сниппет AjaxSearch
Reply #4 on : Чтв Май 20, 2010, 13:25:46
Николай, все просто - #ajaxSearch_form fieldset{border:none;}
Николай
Posts: 12
Comment
стили
Reply #3 on : Пнд Апрель 26, 2010, 18:27:04
А как убрать рамку (границу) вокруг формы поиска, указываю border:none в #ajaxSearch_form - не помогает, где это вообще задать?
Showing comments 1 to 10 of 12 | Next | Last

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.