AjaxSearch. Поиск по сайту.

Опубликовано: 01 Мая 2014

Сниппет AjaxSearch служит для организации поиска по сайту. Существует два режима работы сниппета: с применением Ajax (без перезагрузки страницы) и без применения Ajax (с перезагрузкой страницы). Вывод результатов поиска можно сделать как на той же странице, где расположена форма поиска, так и на целевой странице, предназначенной для отображения результатов. Можно расположить несколько форм поиска на одной странице. Сниппет позволяет оставлять комментарии о полученных результатах поиска, сортировать найденные документы по категориям и рангу и т.д. Сниппет поставляется в комплекте с MODx Evolution.

Параметр

Описание

По умолчанию

Пример

&addJscript

(Ajax параметр)

Добавить mootools библиотеку к заголовку веб-страницы

1

&addJscript=`0`

 

&advSearch

Установить дополнительные параметры поиска

- exactphrase: предоставляет документы, которые содержат точную фразу
- allwords: предоставляет документы, которые содержат все слова
- nowords: предоставляет документы, которые не содержат указанных слов
- oneword: предоставляет документы, которые содержат хотя бы одно слово

oneword

&advSearch=`exactphrase`

 

&ajaxMax

(Ajax параметр)

Количество отображаемых результатов без перезагрузки

6

&ajaxMax=`10`

 

&ajaxSearch

Использовать Ajax в работе сниппета

1

&ajaxSearch=`0`

&asId

Уникальный идентификатор сниппета

нет

&asId=`abc123`

 

&asLog

Включить комментирование результатов поиска

level:
0: запретить использование ajaxSearch журнала (по умолчанию)
1: регистрировать неудавшиеся запросы поиска
2: все ajaxSearch запросы заносятся в журнал
comment:
0: комментарии пользователей не допускаются (по умолчанию)
1: комментарии пользователей разрешенены
Purge: число регистраций, до автоматической очистки таблицы
0: неограниченное число регистраций
по умолчанию: 200
&asLog = `x` эквивалентен &asLog = `x:0:200`
&asLog = `x:y` эквивалентен &asLog = `x:y:200`
&asLog = `1:1:500` означает, что возможно 500 неудачных запросов поиска, разрешены комментарии, неудавшиеся запросы храниться в таблице ajaxSearch_log

0:0:200

&asLog=`1:1:500`

 

&breadcrumbs

Показать пути к найденным документам

нет

&breadcrumbs=`Breadcrumbs, showHomeCrumb: 0, showCrumbsAtHome:1`

&category

Вывод результатов по категориям

нет

&category=`tv1`

 

&clearDefault

Очистка текста по умолчанию

0

&clearDefault=`1`

 

&config

Загрузить пользовательские настройки

default

&config=`example`

 

&debug

Включить/выключить режим отладки

0

&debug=`1`

 

&depth

Глубина поиска документов

10

&depth=`5`

 

&display

Смешивать или не смешивать вывод результатов поиска с категориями

unmixed

&display=`mixed`

 

&documents

ID документов в которых производить или не производить поиск

&documents = `in:28,29,30,31` поиск в документах 28,29,30,31
&documents = `not in:28,29,30,31` поиск во всех документах кроме 28,29,30,31

По всем опубликованным документам

&documents=`in:28,29,30,31`

 

&extract

Количество выдержек из документа и какие поля будут использоваться

n: максимальное количество выдержек
1:content,description,introtext,tv_value - одна выдержка

1:content, description, introtext, tv_content

&extract=`99:content`

 

&extractEllips

Начало и конец выдержки из документа

...

&extractEllips=`***`

&extractLength

Длина отдельного извлечения

200

&extractLength=`300`

 

&extractSeparator

&extractSeparator - html-тэг, разделяющий извлечения

<br />

&extractSeparator=` <hr />`

&filter

Исключить нежелательные документы

(Аналогично параметру filter для Ditto 2.1.)

нет

&filter=` pagetitle ,#,8`

 

&formatDate

Формат выводимых дат

'd/m/y : H:i:s' - результат: 21/01/08 : 23:09:22

&formatDate=` %d.%m.%Y`

 

&grabMax

Количество результатов на странице в режиме без Ajax (&ajaxSearch=`0`)

0

&grabMax=`20`

&hideLink

Включить поиск по документам с типом ресурса Веб-ссылка

1

&hideLink=`0`

 

&hideMenu

Поиск в документах, не показываемых в меню

0: поиск только в документах, видимых в меню
1: поиск только в документах, не видимых в меню
2: поиск в видимых и невидимых в меню документах

2

&hideMenu=`0`

 

&highlightResult

Создайте ссылки так, чтобы поисковые термины выделялись, при переходе на страницу

1

&highlightResult=`0`

 

&jsClearDefault

Местоположение js библиотеки clearDefault

js/ clearDefault/clearDefault.js

&jsClearDefault=``

 

&jscript

(Ajax параметр)

Выбор между Mootools или jQuery.

mootools2

&jscript=`@FILE:assets/snippets /ajaxSearch/js/mootools2/mootools-1.2.4.js`

 

&jsJquery

(Ajax параметр)

Расположение Jquery JavaScript библиотеки

js/jQuery/jquery.js

&jsJquery=``

 

&jsMooTools (Ajax параметр)

Расположение MooTools JavaScript библиотеки

manager/ media/script/ mootools/mootools.js

&jsMooTools=``

 

&jsMooTools2 (Ajax параметр)

Расположение MooTools2 JavaScript библиотеки

js/mootools2/ mootools1.2.js

&jsMooTools2=``

 

&landingPage

ID страницы, на которой будет реализован вывод результатов поиска в режиме без Ajax (&ajaxSearch=`0`)

нет

&landingPage=`12`

&language

Устанавливает языковой пакет для ajaxSearch

язык, установленный для MODx

&language=`english`

 

&liveSearch (Ajax параметр)

Включение автоматического поиска

0

&liveSearch=`1`

 

&maxWords

Максимальное количество слов для поиска

5

&maxWords=`7`

 

&mbstring

Расширение php_mbstring

1

&mbstring=`0`

 

&minChars

Минимальное количество символов для поиска

3

&minChars=`5`

 

&moreResultsPage  (Ajax параметр)

ID страницы на которой будет вывод всех результатов поиска в режиме с Ajax

0

&moreResultsPage=`12`

 

&opacity (Ajax параметр)

Прозрачность выводимого результата

1

&opacity=`0.9`

 

&order

Порядок сортировки документов

publishedon, pagetitle (сортировка по дате опубликования, затем по заголовоку документа)

&order=`pagetitle DESC, publishedon`

 

&output

Расположение формы поиска и результатов поиска

0

&output=`1`

 

&pageLinkSeparator

Разделитель между страницами

| (вертикальная черта)

&pageLinkSeparator=`-`

 

&pagingType

Выбор типа нумерации страниц

0: Без постраничного разбиения
1: Previous - X-Y /Z - Next
2: X-Y/Z - больше 10 результатов

1

&pagingType=`0`

 

&parents

ID папок через запятую, в дочерних ресурсах которых необходимо осуществлять поиск

&parents=`in:2,3` поиск только в дочерних ресурсах указанных папок.
&parents=`not in:2,3` поиск по всем документам кроме дочерних ресурсов папок с идентификаторами 2 и 3.
Глубина задается параметром &depth

по всем опубликованным документам

&parents=`in:2,3`

 

&rank

Ранжирование результатов поиска

pagetitle:100 ,extract

&rank=` pagetitle:100,alias:10, extract`

 

&showInputForm

Показать форму поиска с результатами

1

&showInputForm=`0`

 

&showIntro

Показать или скрыть сообщение под формой поиска

1

&showIntro=`0`

 

&showMoreResults

(Ajax параметр)

Показать ссылку на все результаты через Ajax

0

&showMoreResults=`1`

 

&showPagingAlways

Показывать номер страницы, даже если страница одна

0

&showPagingAlways=`1`

 

&showResults

Выводить результаты поиска на странице вызова

1

&showResults=`0`

 

&stripInput

Преобразование на лету входных данных для поиска

defaultStripInput

&stripInput=``

 

&stripOutput

Преобразование на лету выходных данных для поиска

defaultStripOutput

&stripOutput=``

 

&timeLimit

Максимальное время выполнения AjaxSearch

60

&timeLimit=`30`

 

&tplAjaxGrpResult

Шаблон результатов поиска для групп, с Ajax

templates/ ajaxGrpResult.tpl.html

&tplAjaxGrpResult=`assets/ snippets/ajaxSearch/templates / myAjaxGrpResult.tpl.html`

 

&tplAjaxResult

Шаблон для каждого результата поиска, с Ajax

templates/ ajaxResult.tpl.html

&tplAjaxResult=`@FILE:assets/ snippets/ ajaxSearch/templates /myAjaxResult.tpl.html`

 

&tplAjaxResults

Шаблон результатов поиска, с Ajax

templates/ ajaxResults.tpl.html

&tplAjaxResults=`@FILE:assets/ snippets/ajaxSearch/ templates / myAjaxResults.tpl.html`

 

&tplComment

Шаблон формы комментариев

@FILE:assets/ snippets/ ajaxSearch/templates/ comment.tpl.html

&tplComment=``

 

&tplGrpResult

Шаблон результатов поиска для груп, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ grpResult.tpl.html

&tplGrpResult=``

 

&tplInput

Шаблон формы поиска

Примеры шаблонов находятся в папке: templates/inputTemplates/
Input 1: простой поиск с простым вводом
Input 2: расширенный поиск. Переключатели для выбора варианта поиска
Input 3: поиск по параметрам из выпадающего списка (multi-select)
Параметр расширенного поиска может быть смешан с шаблонами (2 & 3).
При liveSearch кнопка поиска не отображается.

@FILE:assets /snippets/ajaxSearch/templates/ input.tpl.html

&tplInput=`@FILE:assets/ snippets/ajaxSearch/templates/ inputTemplates/input2.tpl.html`

 

&tplPaging0

Шаблон для pagingType=`0`

@FILE:assets/ snippets/ ajaxSearch/templates/ Paging0.tpl.html

&tplPaging0=``

 

&tplPaging1

Шаблон для pagingType=`1`

@FILE:assets/ snippets/ajaxSearch/ templates/ Paging1.tpl.html

&tplPaging1=``

 

&tplPaging2

Шаблон для pagingType=`2`

@FILE:assets snippets/ajaxSearch/ templates/ Paging2.tpl.html

&tplPaging2=``

 

&tplResult

Шаблон для каждого результата поиска, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ result.tpl.html

&tplResult=``

 

&tplResults

Шаблон результатов поиска, без Ajax

@FILE:assets/ snippets/ajaxSearch/ templates/ results.tpl.html

&tplResults=``

 

&tvPhx

Включить в поиск плэйсхолдеры

+: - использовать только эти параметры
-: - исключить эти параметры из поиска
&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам
&tvPhx=`+:tv1,tv2,tv3` // поиск по указанным параметрам
&tvPhx=`+` // поиск по всем параметрам
&tvPhx=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих

все параметры

&tvPhx=`tv1, tv2, tv3`

 

&whereSearch

Список таблиц и полей, по которым осуществляется поиск

Вы можете использовать ключевые слова:
"content" для site_content, "tv" для site_tmplvar_contentvalues, "jot" для jot_content, "maxigallery" для maxigallery.

content|tv что означает: content:pagetitle,longtitle,description,alias,in trotext,menutitle,content | tv:tv_value

&whereSearch=`content:null| maxigallery`

 

&withTvs

Список TV-параметров, по которым необходимо произвести поиск

+: - использовать только эти TV-параметры
-: - исключить эти TV-параметры из поиска
&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам
&withTvs=`+:tv1,tv2,tv3` // поиск по указанным параметрам
&withTvs=`+` // поиск по всем параметрам
&withTvs=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих

все TV-параметры

&withTvs=`tv1, tv2,tv3`

 

 

Плэйсхолдеры сниппета AjaxSearch

Плэйсхолдеры используются в шаблонах. Форма поиска тоже доступна как плэйсхолдер [+as.searchString +]. Вставьте этот плэйсхолдер в шаблоне в том месте, где хотите видеть форму поиска.

Любой TV-параметр может превратиться в плэйсхолдер с помощью параметров &withTvs и &tvPhx. Эти плэйсхолдеры можно использовать, например, в шаблонах tplResult и tplAjaxResult :

[+as.****+]

вместо **** укажите имя TV-параметра.

Для того, чтобы проверить, содержит или не содержит TV-параметр какое-нибудь значение, применяется такой плэйсхолдер:

[+as.****Show+]

который принимает значения [0 | 1], и равен 0 когда **** = '', иначе принимает значение 1.

[+as.descriptionShow:is=`1`:then=`
  <span class="[+as.descriptionClass+]">[+as.description+]</span>
`+]

Т.е. если поле description не заполнено, то оно не выведется.

Для того, чтобы задать класс элементу, используется плэйсхолдер:

[+as.****Class+]

название класса будет следующим:

1. ajaxSearch_result**** для результатов в не Ajax режиме (&tplResult)

2. AS_ajax_result**** для Ajax режима (&tplAjaxResult)

Например, при &whereSearch="content,tv" можно получить следующие плэйсхолдеры:

[+as.id+]

[+as.publishedon+]

 Плэйсхолдеры документа

[+as.pagetitle+], [+as.pagetitleShow+], [+as.pagetitleClass+]
[+as.longtitle+], [+as.longtitleShow+], [+as.longtitleClass+]
[+as.description+], [+as.descriptionShow+], [+as.descriptionClass+]
[+as.alias+], [+as.aliasShow+], [+as.aliasClass+]
[+as.introtext+], [+as.introtextShow+], [+as.introtextClass+]
[+as.menutitle+], [+as.menutitleShow+], [+as.menutitleClass+]
[+as.content+], [+as.contentShow+], [+as.contentClass+]
[+as.breadcrumbs+],[+as.breadcrumbsShow+],[+as.breadcrumbsClass+]

Переменные шаблона

[+as.tv_value+], [+as.tv_valueShow+], [+as.tv_valueClass+]

Breadcrumbs

[+as.breadcrumbs+], [+as.breadcrumbsShow+], [+as.breadcrumbsClass+]

Параметр &extract

[+as.extract+], [+as.extractShow+], [+as.extractClass+]

Именаклассов:

AS_ajax_resultExtract (Ajax режим)
ajaxSearch_resultExtract (не Ajax режим)

&whereSearch=`content,tv,maxigallery,jot`

[+as.jot_content], [+as.jot_contentShow], [+as.jot_contentClass]
[+as.gal_title], [+as.gal_titleShow], [+as.gal_titleClass]
[+as.gal_descr], [+as.gal_descrShow], [+as.gal_descrClass]

 Модификаторы

Служат для подключения изображений в результаты поиска. Применяются в шаблонах. Возможны следующие модификаторы:

imgwidth : ширина изображения

<img src="[+as.imgTag+]" width="[+as.imgTag:imgwidth+]" />

imgheigth : высота изображения

<img src="[+as.imgTag+]" width="[+as.imgTag: imgheigth+]" />>

Imgattr : атрибуты изображения

задает изображению атрибуты, такие как height="xxx" и width="yyy"

<img src="[+as.imgTag +]" [+as.imgTag:imgattr+] />

Imgmaxwidth : максимальная ширина изображения

Ограничивает изображение по ширине. Не может быть больше истинной ширины.

<img src="[+as.imgTag +]" width="[+as.imgTag:imgmaxwidth=`60`+]" />

Imgmaxheight : максимальная высота изображения

Ограничивает изображение по высоте. Не может быть больше истинной высоты.

<img src="[+as.imgTag +]" width="[+as.imgTag:imgmaxheight=`90`+]" />

Плагины Highlight

Плагины предназначены для выделения в результатах поиска слов из поискового запроса.

Плагин searchHighlight

Выделение между тегами <body></body>

Плагин advSearchHighlight

Выделение между тегами <!--start highlight--> и <!--end highlight-->. Возможно многократное использование на странице.

 

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: