Поиск по сайту , сниппет 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) Добавляем описание стилей , каждый по вкусу... , ну что-нибудь вроде:
#ajaxSearch_form { color: #444; width: auto; } #ajaxSearch_input { width: auto; display: inline; height: 17px; border: 1px solid #ddd; border-left-color: #c3c3c3; border-top-color: #7c7c7c; background: #fff url(images/input-bg.gif) repeat-x top left; margin: 0 3px 0 0; padding: 3px 0 0; vertical-align: top; } #ajaxSearch_submit { display: inline; height: 22px; line-height: 22px; } #ajaxSearch_output { border: 1px solid #444; padding: 10px; background: #fff; display: block; height: auto; vertical-align: top; } .AS_ajax_result { color: #444; margin-bottom: 3px; } .AS_ajax_resultLink { text-decoration: underline; } .AS_ajax_resultDescription{ color: #555; } .AS_ajax_more { color: #555; }
Вставляем в шаблоне {{search}}и проверяем работоспособность
Поиск с отображением результатов в плавающем окне с использованием Ajax и поиском на лету:
Чуть позже в продолжении....
Posts: 12
Reply #12 on : Втр Август 24, 2010, 02:31:24
Posts: 12
Reply #11 on : Втр Август 24, 2010, 02:10:36
Posts: 12
Reply #10 on : Пнд Август 23, 2010, 18:54:10
Posts: 12
Reply #9 on : Пнд Август 23, 2010, 18:49:52
Posts: 12
Reply #8 on : Чтв Август 12, 2010, 21:23:48
Posts: 12
Reply #7 on : Чтв Август 12, 2010, 21:18:02
Posts: 12
Reply #6 on : Чтв Август 12, 2010, 20:50:00
Posts: 12
Reply #5 on : Чтв Август 12, 2010, 20:49:00
Posts: 12
Reply #4 on : Чтв Май 20, 2010, 13:25:46
Posts: 12
Reply #3 on : Пнд Апрель 26, 2010, 18:27:04
Write a comment