AjaxSearch
MODX Docs
Перейти
AjaxSearch
MODX Forums
Перейти
AjaxSearch
MODX Wiki
Перейти
AjaxSearch
PDF
Перейти

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

Установка

1. Скачайте последнюю версию сниппета AjaxSearch
2. Создайте новый сниппет с именем AjaxSearch и поместите в Код сниппета содержимое файла snippet.ajaxSearch.txt из скачанного архива
3. Создайте папку с именем ajaxSearch в папке assets/snippets
4. Скопируйте файлы из архива в папку ajaxSearch
5. Разместите в шаблоне такой вызов сниппета: [!AjaxSearch? &showResults=`0` &landingPage=`17` &showMoreResults=`1` &moreResultsPage=`17`!]
6. Настройте стили для отображения внешнего вида формы поиска и вывода результатов
7. Проверьте работу сниппета в режиме AJAX
8. Создайте целевую страницу (дла параметров landingPage и moreResultsPage) и разместите на ней еще один вызов сниппета: [!AjaxSearch? &showInputForm=`0` &ajaxSearch=`0`!]

Параметры

Основные параметры

Формат: default | custom_example | @FILE
Значение по умолчанию: default
Примечание: Конфигурационные файлы должны вызываться в виде: <config_name>.config.php. Устанавливаются в папку configs или другую папку через @FILE
Пример:
&config=`example`
Формат: 0 | 1 | 2 | 3
Значение по умолчанию: 0
Примечание:
0 : Режим не активирован.
Файл отчета (ajaxSearch/debug/ajaxSearch_log.txt):

1 : Parameters, search context and sql query logged.
2 : Parameters, search context, sql query AND templates logged
3 : Parameters, search context, sql query, templates AND Results logged
Пример:
&debug=`1`
Формат: chinese | english | finish | francais | german | hebrew | italian | japanese | nederlands | norsk | persian | portuguese | portuguese-br | russian | slovak | spanish | svenska
Значение по умолчанию: язык, установленный для MODx
Примечание: Вы можете самостоятельно добавлять языковые файлы в папку /ajaxSearch/lang/
Пример:
&language=`english`
Формат: 1 | 0
Значение по умолчанию: 1
Примечание: 1 - использовать | 0 - не использовать
Пример:
&ajaxSearch=`0`
Формат: exactphrase | allwords | nowords | oneword
Значение по умолчанию: oneword
Примечание:
exactphrase: предоставляет документы, которые содержат точную фразу
allwords: предоставляет документы, которые содержат все слова
nowords: предоставляет документы, которые не содержат указанных слов
oneword: предоставляет документы, которые содержат хотя бы одно слово
Пример:
&advSearch=`exactphrase`
Формат: a-z, _ , 0-9 (с учетом регистра)
Значение по умолчанию: нет
Примечание: Необходим при многократном (более одного) вызове AjaxSearch на одной странице. Может состоять из: латинских букв (с учетом регистра), цифр, знака подчеркивания.
ВАЖНО! При многократном вызове сниппета на странице в режиме &ajaxSearch=`1` у первого сниппета &asId не используется.
Пример:
&asId=`abc123`
Формат: время в секундах
Значение по умолчанию: 60
Примечание: при значении 0 - в течении неограниченного времени.
Пример:
&timeLimit=`30`
Формат: content:pagetitle,longtitle,description,alias,introtext,menutitle,content | tv:tv_value | jot:jot_content | maxigallery:gal_title,gal_descr,gal_filename
Значение по умолчанию: content|tv
Примечание: Вы можете использовать ключевые слова:
"content" для site_content, "tv" для site_tmplvar_contentvalues, "jot" для jot_content, "maxigallery" для maxigallery.
Формат: keywords:table fields
По умолчанию: content|tv что означает: content:pagetitle,longtitle,description,alias,in trotext,menutitle,content | tv:tv_value
Примеры:
content:null|maxigallery - для поиска только в maxigallery.
content:pagetitle,introtext,content|tv:tv_value|maxigallery:gal_title - поиск по всем основным полям
Пример:
&whereSearch=`content:null|maxigallery`
Формат: [ [ + | - ] [ : tvlist] ] список TV-параметров, разделенный запятой
Значение по умолчанию: все TV-параметры
Примечание:
+: - использовать только эти TV-параметры
-: - исключить эти TV-параметры из поиска
&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам
&withTvs=`+:tv1,tv2,tv3` // поиск по указанным параметрам
&withTvs=`+` // поиск по всем параметрам
&withTvs=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих
Пример:
&withTvs=`tv1,tv2,tv3`
Формат: [ [ + | - ] [ : tvlist] ] список параметров, разделенный запятой
Значение по умолчанию: все параметры
Примечание:
+: - использовать только эти параметры
-: - исключить эти параметры из поиска
&withTvs=`tv1,tv2,tv3` // поиск по указанным параметрам
&tvPhx=`+:tv1,tv2,tv3` // поиск по указанным параметрам
&tvPhx=`+` // поиск по всем параметрам
&tvPhx=`-:tv1,tv2,tv3` // поиск по всем параметрам кроме этих

В коде сниппета другое описание:
&tvPhx - display and set placeHolders for TV (template variables)
0 : disallow the feature
1 : allow the display of all Modx TVs of the document found (default)
'tb_alias:display_function_name[,[tb_alias:display_function_name]*]' : set up placeholders for custom joined tables
Default: 1 - tvPhx allowed for TV only
Пример:
&tvPhx=`tv1,tv2,tv3`
Формат: любое корректное имя TV параметра
Значение по умолчанию: нет
Примечание: Необходимо создать TV параметр с названиями категорий и указать его при вызове сниппета в качестве значения &category.
Пример:
&category=`tv1`
Формат: mixed | unmixed
Значение по умолчанию: unmixed
Примечание: mixed -смешивать, unmixed - не смешивать
Пример:
&display=`mixed`
Формат: разделенный запятыми список параметров с указанием направления сортировки "DESC"
Значение по умолчанию: publishedon, pagetitle (сортировка по дате опубликования, затем по заголовоку документа)
Примечание:
Пример:
&order=`pagetitle DESC, publishedon`
Формат: разделенный запятыми список полей с указанием веса кадждого поля [string[:Integer][|[string[:Integer]]]]
Значение по умолчанию: pagetitle:100,extract
Примечание: Результаты с одинаковым рангом будут отсортированы согласно значению параметра &order
Пример:
&rank=`pagetitle:100,alias:10,extract`
Формат: число от 1 до 10
Значение по умолчанию: 5
Примечание:
Пример:
&maxWords=`7`
Формат: число от 2 до 100
Значение по умолчанию: 3
Примечание: Не применяется при &advSearch = 'allwords', 'oneword' или 'nowords'
Возможно при &advSearch = 'exactphrase' с учетом пробелов
В AjaxSearch 1.9.3 число от 1 до 100.
Пример:
&minChars=`5`
Формат: 0 (false) | 1 (true)
Значение по умолчанию: 1
Примечание: В версии 1.8.4 применяется параметр &AS_showForm
Пример:
&showInputForm=`0`
Формат: 0 (отключить) | 1 (включить)
Значение по умолчанию: 1
Примечание: фраза "Пожалуйста, введите поисковый запрос, чтобы начать поиск" под окном поиска (отображается по умолчанию)
Пример:
&showIntro=`0`
Формат: число:разделенный запятыми список полей
Значение по умолчанию: 1:content,description,introtext,tv_content
Примечание:
n: максимальное количество выдержек
1:content,description,introtext,tv_value - одна выдержка
Пример:
&extract=`99:content`
Формат: 50 < число < 800
Значение по умолчанию: 200
Примечание:
Пример:
&extractLength=`300`
Формат: строка, используемая вместо многоточия для обозначения начала и конца извлечения
Значение по умолчанию: ... (многоточие)
Примечание:
Пример:
&extractEllips=`***`
Формат: <br /> | <hr /> | другой html тэг
Значение по умолчанию: <br />
Примечание:
Пример:
&extractSeparator=`<hr />`
Формат: любой валидный формат времени, который соответствует правилам функции PHP - strftime
Значение по умолчанию: 'd/m/y : H:i:s' - результат: 21/01/08 : 23:09:22
Примечание:
Пример:
&formatDate=`%d.%m.%Y`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание: Необходимо использовать плагин highligth
Пример:
&highlightResult=`0`
Формат: 0 | 1 (без использования ajax) 1 | 2 (при использовании ajax)
Значение по умолчанию: 1
Примечание:
0: Без постраничного разбиения
1: Previous - X-Y /Z - Next
2: X-Y/Z - больше 10 результатов
Пример:
&pagingType=`0`
Формат: строка
Значение по умолчанию: | (вертикальная черта)
Примечание:
Пример:
&pageLinkSeparator=`-`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание: В версии 1.8.4: &AS_showResults
Пример:
&showResults=`0`
Формат: [ in | not in ] :список ID через запятую
Значение по умолчанию: по всем опубликованным документам
Примечание:
&parents=`in:2,3` поиск только в дочерних ресурсах указанных папок.
&parents=`not in:2,3` поиск по всем документам кроме дочерних ресурсов папок с идентификаторами 2 и 3.
Глубина задается параметром &depth
Пример:
&parents=`in:2,3`
Формат: число больше 0
Значение по умолчанию: 10
Примечание: должен использоваться с &parents
Пример:
&depth=`5`
Формат: [ in | not in ] :список 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`
Формат: 0 | 1 | 2
Значение по умолчанию: 2
Примечание:
0: поиск только в документах, видимых в меню
1: поиск только в документах, не видимых в меню
2: поиск в видимых и невидимых в меню документах
Пример:
&hideMenu=`0`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
0: искать в документе с типом ресурса Веб-страница и Веб-ссылка
1: искать в документе с типом ресурса Веб-страница
Пример:
&hideLink=`0`
Формат: Аналогично параметру filter для Ditto 2.1.
Значение по умолчанию:
Примечание:
Аналогично параметру filter для Ditto 2.1.
'#' Метасимвол заменяется строкой поиска, предоставляемого веб-пользователем при использовании параметра фильтра. AdvSearch параметр также принимается во внимание. Если advSearch = 'oneword', 'nowords','allwords' тогда # может применяться вместо множественного фильтра.
Возможен фильтр по TV-параметрам.
&filter=`pagetitle,#,8` при поисковом запросе `school child` при advSearch='oneword' эквивалентно &filter=`pagetitle,school,8|pagetitle,child,8`
&filter=`articleTags,вулкан,7` покажет документы с `вулкан`. Документы отфильтруются по TV-параметру 'articleTags'
Пример:
&filter=`pagetitle,#,8`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание: 0 - стандартный вывод, результаты отображаются под формой поиска
1 - пользовательский вывод с использованием плейсхолдеров [+as.inputForm+] и [+as.results+]
Пример:
&output=`1`
Формат: имя пользовательской PHP функции, определенной в файле конфигурации.
Значение по умолчанию: defaultStripInput
Примечание:
Пример:
&stripInput=``
Формат: имя пользовательской PHP функции, определенной в файле конфигурации.
Значение по умолчанию: defaultStripOutput
Примечание: Before to extract the relevant piece of text around the search term, the document is parsed. By definig a stripOutput function the user could change the output
Пример:
&stripOutput=``
Формат: 0 | строка
Значение по умолчанию:
Примечание: Breadcrumbs is the default function provided for the "content" table. The function name could be followed by some parameter initialization
Пример:
&breadcrumbs=`Breadcrumbs,showHomeCrumb: 0,showCrumbsAtHome:1`
Формат: 1 | 0
Значение по умолчанию: 0
Примечание:
добавить класс "cleardefault" в форму ввода текста и установить этот параметр.
0: не активирован
1: активирован

Пример:
&clearDefault=`1`
Формат: путь к файлу
Значение по умолчанию: js/clearDefault/clearDefault.js
Примечание:
Пример:
&jsClearDefault=``
Формат: 0 (off) | 1 (on)
Значение по умолчанию: 1
Примечание:
Пример:
&mbstring=`0`
Формат: ajaxSearch log [ level [: comment [: Purge]]]
Значение по умолчанию: 0:0:200
Примечание:
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
Пример:
&asLog=`1:1:500`

Ajax параметры

Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Есть два режима работы формы ajaxSearch:
0 - форма и кнопка отображаются и поиск не начинается до нажатия кнопки пользователем.
1 - поиск запускается автоматически, как только пользователь вводит поисковый запрос
Пример:
&liveSearch=`1`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&showMoreResults=`1`
Формат: ID документа
Значение по умолчанию: 0
Примечание: эта страница должна содержать другой вызов сниппета для того, чтобы показать результаты
Пример:
&moreResultsPage=`12`
Формат: 0 < число < 1
Значение по умолчанию: 1
Примечание:
Пример:
&opacity=`0.9`
Формат: jquery | mootools2 | mootools
Значение по умолчанию: mootools
Примечание:
Пример:
&jscript=`mootools2`
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример:
&addJscript=`0`
Формат: Путь к библиотеке MooTools
Значение по умолчанию: manager/media/script/mootools/mootools.js
Примечание:
Пример:
&jsMooTools=``
Формат: Путь к библиотеке MooTools2
Значение по умолчанию: js/mootools2/mootools1.2.js
Примечание: mootools2 - альтернатива mootools библиотеке. Mootools1.2.4 уже установлена
Пример:
&jsMooTools2=``
Формат: Путь к библиотеке Jquery
Значение по умолчанию: js/jQuery/jquery.js
Примечание: совместимость с Jquery 1.4.2 библиотекой
Пример:
&jsJquery=``

Не Ajax параметры

Формат: ID документа
Значение по умолчанию: нет
Примечание: В версии 1.8.4: &AS_landing
Пример:
&landingPage=`12`
Формат: число=>0
Значение по умолчанию: 0
Примечание: 0 - неограниченное количество результатов
Пример:
&grabMax=`20`
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&showPagingAlways=`1`

Шаблоны

Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ input.tpl.html
Примечание:
Примеры шаблонов находятся в папке: templates/inputTemplates/
Input 1: простой поиск с простым вводом
Input 2: расширенный поиск. Переключатели для выбора варианта поиска
Input 3: поиск по параметрам из выпадающего списка (multi-select)
Параметр расширенного поиска может быть смешан с шаблонами (2 & 3).
При liveSearch кнопка поиска не отображается.
Пример:
&tplInput=`@FILE:assets/snippets/ajaxSearch/templates/inputTemplates/input2.tpl.html`
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ grpResult.tpl.html
Примечание:
Пример:
&tplGrpResult=``
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ results.tpl.html
Примечание:
Пример:
&tplResults=``
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ result.tpl.html
Примечание:
Пример:
&tplResult=``
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ comment.tpl.html
Примечание:
Пример:
&tplComment=``
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ Paging0.tpl.html
Примечание:
Пример:
&tplPaging0=``
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ Paging1.tpl.html
Примечание:
Пример:
&tplPaging1=``
Формат: имя чанка | @FILE
Значение по умолчанию: templates/ ajaxGrpResult.tpl.html
Примечание:
Пример:
&tplAjaxGrpResult=`assets/snippets/ajaxSearch/templates /myAjaxGrpResult.tpl.html`
Формат: имя чанка | @FILE
Значение по умолчанию: templates/ ajaxResults.tpl.html
Примечание:
Пример:
&tplAjaxResults=`@FILE:assets/snippets/ajaxSearch/templates /myAjaxResults.tpl.html`
Формат: имя чанка | @FILE
Значение по умолчанию: templates/ ajaxResult.tpl.html
Примечание:
Пример:
&tplAjaxResult=`@FILE:assets/snippets/ajaxSearch/templates /myAjaxResult.tpl.html`
Формат: имя чанка | @FILE
Значение по умолчанию: @FILE:assets/snippets/ajaxSearch/templates/ Paging2.tpl.html
Примечание:
Пример:
&tplPaging2=``

Плейсхолдеры

Плэйсхолдеры используются в шаблонах. Форма поиска тоже доступна как плэйсхолдер [+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]

Конфигурация

Файл конфигурации default.config.php используется по умолчанию, и содержит значения всех параметров. Можно подключить другой кофигурационный файл. В конфигурационном файле значения параметров должны быть добавлены с помощью синтаксиса:

$param = 'значение'  - чтобы назначить значение параметру, например $hideLink = '0';

$ __ param =  'значение' - для глобального параметра, например $__hideLink = '0';

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

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

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-->. Возможно многократное использование на странице.

Виды форм

Варианты формы поискового запроса:

Форма ввода в сниппете AjaxSearch может быть трех видов:

1. Простой поиск
2. Расширенный поиск с переключателями типа Check Box
3. Поиск по параметрам из выпадающего списка (multi-select)

Если пользователь кликает на окно поиска, то текст, установленный по умолчанию, стирается, чтобы пользователь мог ввести поисковый запрос. Если он кликнет вне окна, не введя поискового запроса, то текст по умолчанию, появится вновь. Для управления этим параметром, используйте параметр &clearDefault.

В режиме Ajax (MooTools или Jquery), вы можете использовать режим livesearch. Когда режим liveSearch установлен, поиск происходит после ввода каждого символа и кнопка отправки поискового запроса не отображается.

Эти формы элементов и особенностей (liveSearch, clearDefault) используются в AjaxSearch по умолчанию. Но с дополнительными настройками, вы могли бы получить гораздо больше от AjaxSearch.

Возможности по умолчанию, в зависимости от вариантов вызова сниппета

Без использования Ajax режим (&ajaxSearch = `0`)

  • простой поиск: простой поиск с простым полем ввода.
  • расширенный поиск: расширенный поиск. Поле ввода с выбором параметров поиска
  • множественного выбора поиска
  • простой поиск с clearDefault.

В режиме Ajax (&ajaxSearch=`1`) - Mootools 1.11/Mootools 1.2.4/JQuery 1.4.2

  • простой поиск: простой поиск с простым полем ввода.
  • расширенный поиск: расширенный поиск. Поле ввода с выбором параметров поиска
  • множественного выбора поиска
  • простой поиск с liveSearch.

Примеры

Без режима Ajax

Примеры в этом разделе для вызова сниппета без режима Ajax &ajaxSearch=`0`.

В этом режиме, после нажатия кнопки "Найти!", страница перегружается. При этом, результаты могут отображаться на той же странице, или на другой странице.

Этот режим не требует каких-либо скриптов.

Простой поиск

Поиск с простым полем для ввода поискового запроса. По умолчанию используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input1.tpl.html

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0`!]

Для того, чтобы убрать рамку вокруг формы, надо либо удалить из шаблона формы тег <fieldset>, либо прописать в стилях:

fieldset {border:none;}

Надпись Введите ваш запрос для начала поиска. убирается параметром &showIntro=`0` либо правкой шаблона.

Расширенный поиск

Расширенный поиск с выбором параметров поиска. Для демонстрации используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input2.tpl.html.

Попробуйте возможности этой формы, задав поисковый запрос MODX Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &tplInput=`@FILE:assets/snippets/ajaxSearch/templates/inputTemplates/input2.tpl.html`!]

Множественный выбор

Расширенный поиск с множественным выбором параметров поиска. Для демонстрации используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input3.tpl.html.

Чтобы выбрать несколько параметров, нажмите клавишу Ctrl.

[!AjaxSearch? &ajaxSearch=`0` &tplInput=`@FILE:assets/snippets/ajaxSearch/templates/inputTemplates/input3.tpl.html`!]

Стиль кнопки поиска

За основу возьмем поиск с простым полем ввода. По умолчанию, у нас установлена кнопка с текстом «Найти!». Чтобы заменить кнопку на изображение, необходимо добавить в файл со стилями примерно такую запись:

#ajaxSearch_submit {
    margin:0;
    height: 24px;
    width: 24px;
    background:#FFF url(assets/images/search.png) no-repeat;
    border: 0;
    cursor:pointer;
    font-size:0;
}

Попробуйте возможности этой формы, задав поисковый запрос MODX Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0`!]

Без целевой страницы

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

Поиск с простым полем для ввода поискового запроса. Это самый простой вызов сниппета, он использует по умолчанию режим Ajax с MooTools 1,11.

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0`!]

Пагинация

Постраничная нумерация результатов поиска.

Поиск с простым полем для ввода поискового запроса. Это самый простой вызов сниппета, он использует по умолчанию режим Ajax с MooTools 1,11.

По умолчанию тип пагинации для режима без Ajax &pagingType=`1`, который использовался во всех предыдущих примерах. Ниже пример для &pagingType=`0`, т.е. без кнопок "next" и "previous".

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &pagingType=`0`!]

С целевой страницей

Переход на страницу для результатов.

Данный вид поиска состоит из двух вызовов сниппета и требует создания отдельной страницы для вывода результатов поиска.

Первый вызов сниппета размещается на странице, где должен производиться поисковый запрос и служит только для вывода формы поиска и передачи запроса на целевую страницу. &landingPage=`28` - ID страницы, на которой будут отображены результаты поиска.

[!AjaxSearch? &ajaxSearch=`0` &landingPage=`28`!]

Второй вызов сниппета размещается на целевой странице и служит для вывода результатов поискового запроса. Дополнительные параметры поиска такие как пагинация, фильтрация, сортировка и т.д. указываются именно на целевой странице.

[!AjaxSearch? &ajaxSearch=`0` &showInputForm=`0`!]

Комментирование

Комментирование результатов поиска.

Не стесняйтесь комментировать ваши результаты поиска!

Получить комментарии результатов поиска от пользователя можно с помощью параметра asLog.

Синтаксис: &asLog - ajaxSearch log [ level [: comment [: purge]]]

level:

0: запретить использование ajaxSearch журнала (по умолчанию)
1: регистрировать неудавшиеся запросы поиска
2: все ajaxSearch запросы заносятся в журнал

comment:

0: комментарии пользователей не допускаются (по умолчанию)
1: комментарии пользователей разрешено

Purge: число регистраций, до автоматической очистки

0: неограниченное число регистраций
по умолчанию: 200

Шаблон для комментариев по умолчанию assets/snippets/ajaxSearch/templates/comment.tpl.html. Чтобы использовать свой шаблон, создайте чанк с шаблоном и укажите его в качестве значения параметра &tplComment.

[!AjaxSearch? &ajaxSearch=`0` &asLog=`2:1`!]

Для того, чтобы скрыть поле hiddenField, необходимо добавить в ваш CSS-файл следующие стили:

.ajaxSearch_hiddenField {
    position:absolute;
    text-decoration:underline;
    background-color:#CC0000;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
 }

Несколько форм

Можно размещать несколько форм поиска на странице. При этом первый сниппет вызывается как обычно, а второй сниппет должен вызываться с параметром &asId=`as2`, где as2 - уникальный идентификатор.

Попробуйте возможности этих форм, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы форм, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

Первая форма

[!AjaxSearch? &ajaxSearch=`0`!]

Вторая форма

[!AjaxSearch? &asId=`as2`&ajaxSearch=`0`!]

Пользовательский вывод

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

Осуществляется это с помощью параметра &output=`1`, который выводит форму поиска и результаты поиска в плейсхолдеры [+as.inputForm+] и [+as.results+] соответственно.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &output=`1`!]

Форму поиска разместим здесь:

[+as.inputForm+]

Вывод результатов будет здесь:

[+as.results+]

Вывод категорий

Результаты поиска можно разбивать по категориям.

Необходимо создать TV параметр, например, articleCategory с возможными значениями: Категория1||Категория2||Карегория3 и т.д. Назначьте категории всем документам, которые участвуют в поиске. Укажите имя TV в качестве значения парметра &category=`articleCategory`.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &category=`articleCategory`!]

В режиме Ajax

В режиме Ajax &ajaxSearch=`1` после нажатия кнопки "Найти!" страница не перегружается.

Для работы в режиме Ajax подключается одна из трех библиотек на выбор:

  • Mootools 1.11
  • Mootools 1.2.4
  • JQuery 1.4.2

По умолчанию используется Mootools 1.11. Переключение между библиотеками происходит с помощью параметра &jscript=``.

Простой поиск

Поиск с простым полем для ввода поискового запроса. Это самый простой вызов сниппета, он использует по умолчанию режим Ajax с MooTools 1,11. Для формы по умолчанию используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input1.tpl.html

Попробуйте возможности этой формы, задав поисковый запрос MODX Evolution.

[!AjaxSearch!]

Автоматический поиск

Для поиска с LiveSearch кнопка отправки не нужна. Поиск происходит после каждого напечатанного символа. Минимальное количество 3 символа. Сниппет использует по умолчанию режим Ajax с MooTools 1,11

Попробуйте возможности этой формы, задав поисковый запрос MODX Evolution.

[!AjaxSearch? &liveSearch=`1`!]

Расширенный поиск

Расширенный поиск с выбором параметров поиска. Для демонстрации используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input2.tpl.html.

Попробуйте возможности этой формы, задав поисковый запрос MODX Evolution.

[!AjaxSearch? &tplInput=`@FILE:assets/snippets/ajaxSearch/templates/inputTemplates/input2.tpl.html`!]

Множественный выбор

Расширенный поиск с выбором параметров поиска. Для демонстрации используется шаблон assets/snippets/ajaxSearch/templates/inputTemplates/input3.tpl.html.

Чтобы выбрать несколько параметров, нажмите клавишу Ctrl.

[!AjaxSearch? &tplInput=`@FILE:assets/snippets/ajaxSearch/templates/inputTemplates/input3.tpl.html`!]

Пагинация тип 0

Пагинация тип 0 &pagingType=`0`, постраничное разбиение отключено и выведится только то количество документов, которое указано в параметре &ajaxMax. Но внизу будет ссылка на страницу без режима Ajax, на которой можно посмотреть все результаты поиска.

&landingPage=`28` - ID целевой страницы, на которой будет вывод всех результатов поиска.

&ajaxMax=`3` - количество отображаемых результатов.

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution.

[!AjaxSearch? &pagingType=`0` &ajaxMax=`3` &moreResultsPage=`28`!]

На целевой странице режим Ajax отключен. Из-за параметра grabMax, группы результатов с более чем 5 результатами являются пронумерованными. Здесь мы тоже используем &pagingType=`0`.

[!AjaxSearch? &ajaxSearch=`0` &showInputForm=`0` &grabMax=`5` &pagingType=`0`!]

Пагинация тип 1

Пагинация тип 1 &pagingType=`1`, выведится только то количество документов, которое указано в параметре &ajaxMax. Есть возможность пролистывать результаты поиска. Внизу будет ссылка на страницу без режима Ajax, на которой можно посмотреть все результаты поиска.

&landingPage=`28` - ID целевой страницы, на которой будет вывод всех результатов поиска.

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution.

[!AjaxSearch? &pagingType=`1` &ajaxMax=`3` &moreResultsPage=`28`!]

На целевой странице режим Ajax отключен. Из-за параметра grabMax, группы результатов с более чем 5 результатами являются пронумерованными. Здесь мы тоже используем &pagingType=`1`.

[!AjaxSearch? &ajaxSearch=`0` &showInputForm=`0` &grabMax=`5` &pagingType=`1`!]

Пагинация тип 2

Пагинация тип 2 &pagingType=`2`, выведится только то количество документов, которое указано в параметре &ajaxMax. Вместо пролистывания результатов, появилась ссылка "Показать оставшиеся 10", при нажатии на нее, в списке результатов появится еще 10 найденных документов. Внизу будет ссылка на страницу без режима Ajax, на которой можно посмотреть все результаты поиска.

&landingPage=`28` - ID целевой страницы, на которой будет вывод всех результатов поиска.

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution.

[!AjaxSearch? &pagingType=`2` &ajaxMax=`3` &moreResultsPage=`28`!]

На целевой странице режим Ajax отключен. Из-за параметра grabMax, группы результатов с более чем 5 результатами являются пронумерованными. Здесь мы используем &pagingType=`1`.

[!AjaxSearch? &ajaxSearch=`0` &showInputForm=`0` &grabMax=`5` &pagingType=`1`!]

Пользовательский вывод

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

Осуществляется это с помощью параметра &output=`1`, который выводит форму поиска и результаты поиска в плейсхолдеры [+as.inputForm+] и [+as.results+] соответственно.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution.

[!AjaxSearch? &output=`1`!]

Форму поиска разместим здесь:

[+as.inputForm+]

Вывод результатов будет здесь:

[+as.results+]

Вывод категорий

Результаты поиска можно разбивать по категориям.

Необходимо создать TV параметр, например, articleCategory с возможными значениями: Категория1||Категория2||Карегория3 и т.д. Назначьте категории всем документам, которые участвуют в поиске. Укажите имя TV в качестве значения парметра &category=`articleCategory`.

Результаты группируются по категориям. Каждая категория может иметь собственный шаблон. Документы, не связанные с категорией отображаются первыми.

Для того, чтобы задать шаблон каждой категори, необходимо создать конфигурационный файл custom.config.php с примерно таким кодом:

<?php
/*
 *  categConfig :   To define the display of categories (output)
 *  Add a category as a switch item. 'uncategorized' item describe the results outside of any category
 *  Add a switch for a new site. The default site is named 'defsite'.
 *  Allowed config parameters : grpLabel, tplResult, tplAjaxResult, display, extract, rank ...
 */
if(!function_exists('categConfig')) {
    function categConfig($site='defsite',$category){
        $config = array();
        $site = strtolower($site);
        $category = strtolower($category);
        switch($site) {
            case 'defsite':
            switch($category){
                case 'arts':
                    $config['grpLabel'] = 'Arts';
                    $config['tplAjaxResult'] = '@FILE:assets/snippets/ajaxSearch/templates/customs/imgAjaxResult.tpl.html';      // allow the display of an image
                    break;
                case 'music':
                    $config['grpLabel'] = 'Music';
                    $config['tplAjaxResult'] = '@FILE:assets/snippets/ajaxSearch/templates/customs/imgAjaxResult.tpl.html';      // allow the display of an image
                    break;
                case 'geography':
                $config['grpLabel'] = 'Geography';
                    $config['tplAjaxResult'] = '@FILE:assets/snippets/ajaxSearch/templates/customs/imgAjaxResult.tpl.html';      // allow the display of an image
                    break;
                case '':
                    $config['grpLabel'] = 'Site wide';
                    break;
            }
        }
        return $config;
    }
}
?>

и поместите его в папку assets/snippets/ajaxSearch/configs/ либо в другую папку, не забыв поменять путь в параметре &config=`custom`. Рекомендуется все конфигурационные файлы и шаблоны хранить в отдельной папке, чтобы при обновлении сниппета не пришлось все восстанавливать. Измените кофигурационный файл в соответствии с вашими категориями.

Создайте шаблон для вывода категорий imgAjaxResult.tpl.html, с примерно таким кодом:

<div class="[+as.resultClass+]">
  <a class="[+as.resultLinkClass+]" href="[+as.resultLink+]" title="[+as.longtitle+]">[+as.pagetitle+]</a>

[+as.descriptionShow:is=`1`:then=`
  <span class="[+as.descriptionClass+]">[+as.description+]</span>
`+]
[+as.articleImageShow:is=`1`:then=`
<div><a class="[+as.resultLinkClass+]" href="[+as.resultLink+]" title="[+as.longtitle+]"><img align="center" src="[+as.articleImage+]"></a></div>
`+]
[+as.extractShow:is=`1`:then=`
  <div class="[+as.extractClass+]"><p>[+as.extract+]</p></div>
`+]
[+as.breadcrumbsShow:is=`1`:then=`
  <span class="[+as.breadcrumbsClass+]">[+as.breadcrumbs+]</span>
`+]
</div>

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution.

[!AjaxSearch? &category=`articleCategory` &config=`custom` &tvPhx=`articleImage`!]

Несколько форм

Можно размещать несколько форм поиска на странице. При этом первый сниппет вызывается как обычно, а второй сниппет должен вызываться с параметром &asId=`as2`, где as2 - уникальный идентификатор.

Попробуйте возможности этих форм, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы форм, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

Первая форма

[!AjaxSearch? &pagingType=`2`!]

Вторая форма

[!AjaxSearch? &asId=`as2` &pagingType=`2`!]

Javascript отключен

Как использовать Ajax и не-Ajax режимы? Что произойдет, если JavaScript отключен?

Этот пример показывает правильное использование некоторых параметров, когда использовать режим Ajax не представляется возможным.

Ajax режим включен

По умолчанию используется режим Ajax, так что никаких параметров не требуется. Тем не менее здесь мы добавляем два параметра, параметр ajaxMax, чтобы определить, сколько результатов будет отображаться в окне результатов поиска и moreResultsPage параметр позволяет указать целевую страницу.

Ajax режим выключен

Если Javascript отключен, режим Ajax не будет использоваться , так что нам необходимо определить целевую страницу с помощью landingPage параметра. В этом примере мы используем ту же целевую страницу, что и в параметре moreResults.

В конце концов мы получаем следующий вызов сниппета. Для просмотра этого примера, необходимо запустить поиск при включенном JavaScript, а затем отключить JavaScript и повторить поиск.

Попробуйте возможности этой формы, задав поисковый запрос, например, MODX Evolution:

[!AjaxSearch? &ajaxMax=`3` &moreResultsPage=`28` &landingPage=`28`!]

Пример вызова на целевой странице

[!AjaxSearch? &ajaxSearch=`0` &showInputForm=`0` &grabMax=`3`!]

Комментирование

Комментирование результатов поиска.

Не стесняйтесь комментировать ваши результаты поиска!

Получить комментарии результатов поиска от пользователя можно с помощью параметра asLog.

Синтаксис: &asLog - ajaxSearch log [ level [: comment [: purge]]]

level:

0: запретить использование ajaxSearch журнала (по умолчанию)
1: регистрировать неудавшиеся запросы поиска
2: все ajaxSearch запросы заносятся в журнал

comment:

0: комментарии пользователей не допускаются (по умолчанию)
1: комментарии пользователей разрешено

Purge: число регистраций, до автоматической очистки

0: неограниченное число регистраций
по умолчанию: 200

Шаблон для комментариев по умолчанию assets/snippets/ajaxSearch/templates/comment.tpl.html. Чтобы использовать свой шаблон, создайте чанк с шаблоном и укажите его в качестве значения параметра &tplComment.

[!AjaxSearch? &asLog=`2:1`!]

Для того, чтобы скрыть поле hiddenField, необходимо добавить в ваш CSS-файл следующие стили:

.ajaxSearch_hiddenField {
    position:absolute;
    text-decoration:underline;
    background-color:#CC0000;
    left:0px;
    top:-500px;
    width:1px;
    height:1px;
    overflow:hidden;
 }

Общие варианты вызова

Здесь собраны примеры для демонстрации общих черт для не-Ajax и Ajax режимов. Все примеры используют не-Ajax режим с результатами на той же странице.

Фильтрация до поиска

Фильтрация до поиска ограничивает перечень документов, где применяется поиск.

Правильно настроенная фильтрация документов перед началом поиска позволяет сократить время поиска и нагрузку на сервер. Не пренебрегайте этими настройками. Исключайте из поиска ненужные документы, поля документов и TV-параметры.

Параметры, которые способствуют фильтрации до поиска следующие:

ПараметрПримерФильтр
parents(in) &parents=`in:24,25` поиск в дочерних документах папок 24 и 25
parents(not in) &parents=`not in:24,10` поиск по всем документам кроме дочерних документов папок 24 и 10
documents(in) &documents=`in:28,29,30,31` поиск в документах 28,29,30,31
documents(not in) &documents=`not in:28,29,30` поиск во всех документах кроме 28,29,30
hideLink &hideLink=`0` поиск по всем документам с типом ресурса Веб-страница и Веб-ссылка
hideMenu &hideMenu=`2` поиск в скрытых и видимых в меню документах
withTvs (+) &withTvs=`+:author,title` поиск по TV-параметрам author и title
withTvs (-) &withTvs=`-:login,check` поиск по всем TV-параметрам, кроме login и check

Параметр withTvs определяет, какой TV-параметр будет добавлен в поиск и по каким полям документа поиск будет происходить. TV-параметры должны иметь тип ввода Text.

Будьте осторожны, при использовании &withTvs=`-:tvName`, вы можете создать очень большой SQL запрос, что может привести к ошибке. Прежде, чем использовать такой вариант, проведите тестирование. Но если у вас есть множество документов и TV-параметров, лучше избежать этого варианта.

Ниже пример поиска в дочерних документах первого уровня папки с id=4, у которых стоит галочка "Показывать в меню". Поиск осуществляется по полям документа pagetitle и content.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &whereSearch=`content:pagetitle,content` &hideMenu=`0` &parents=`in:4` &depth=`1`!]

Фильтрация результатов поиска

Параметры фильтра позволяют выбрать необходимые документы или исключить нежелательные документы. Например, если мы хотим отобразить только документы, у которых в TV-параметре "articleTags" есть значение "сниппет", нам необходимо применить такой параметр: &filter=`articleTags,сниппет,7`.

Режим Исключить документ, если его значение в указанном поле
1 не соответствует критерию (!=)
2 соответствует криетрию (==)
3 меньше критерия (<)
4 больше критерия (>)
5 меньше или равен критерию (<=)
6 больше или равен критерию (>=)
7 не содержит текст критерия
8 содержит текст критерия

В этом примере, мы убираем из поиска все документы, в которых в поле content не содержится текст "Ditto".

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &filter=`content,Ditto,7` &whereSearch=`content:pagetitle,content` &ajaxSearch=`0`!]

Сортировка и ранжирование

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

В этом примере мы определим, каким образом результаты должны быть упорядочены. Параметр сортировки определяет, какие поля следует использовать для упорядочения результатов (до применения ранжирования). Параметр ранжирования определяет, какие поля должны использоваться для вычисления ранга каждого найденного результата.
Для вывода результатов поиска, мы будем использовать шаблон rankResult со следующим кодом:

<div class="[+as.resultClass+]">
  <a class="[+as.resultLinkClass+]" href="[+as.resultLink+]" title="[+as.longtitle+]">[+as.pagetitle+]</a>
[+as.descriptionShow:is=`1`:then=`
  <span class="[+as.descriptionClass+]">[+as.description+]</span>
`+]
[+as.extractShow:is=`1`:then=`
  <div class="[+as.extractClass+]"><p>[+as.extract+]</p></div>
`+]
[+as.rankShow:is=`1`:then=`
  <span class="[+as.rankClass+]"><strong>Ранг:</strong> [+as.rank+]</span><br>
`+]
[+as.publishedonShow:is=`1`:then=`
  <span class="[+as.publishedonClass+]"><strong>Дата публикации:</strong> [+as.publishedon+]</span><br><br>
`+]
[+as.breadcrumbsShow:is=`1`:then=`
  <span class="[+as.breadcrumbsClass+]">[+as.breadcrumbs+]</span>
`+]
</div>

Создайте чанк rankResult и поместите туда этот код.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &extract=`5` &rank=`pagetitle:100,content` &order=`publishedon DESC,pagetitle` &formatDate=`d.m.Y` &tplResult=`rankResult`!]

Ранжирование по TV-параметру

В этом примере мы определим, в каком порядке должны быть показаны результаты. Параметр rank определяет, какие поля будут использоваться для вычисления ранга каждого найденного результата. Мы можем использовать не только такие поля, как pagetitle или content, но и TV-параметры. Чтобы результаты ранжировались по TV-параметру articleCategory, создадим чанк rankResult с таким кодом:

<div class="[+as.resultClass+]">
  <a class="[+as.resultLinkClass+]" href="[+as.resultLink+]" title="[+as.longtitle+]">[+as.pagetitle+]</a>
[+as.descriptionShow:is=`1`:then=`
  <span class="[+as.descriptionClass+]">[+as.description+]</span>
`+]
[+as.extractShow:is=`1`:then=`
  <div class="[+as.extractClass+]"><p>[+as.extract+]</p></div>
`+]
[+as.rankShow:is=`1`:then=`
  <span class="[+as.rankClass+]"><strong>Ранг:</strong> [+as.rank+]</span><br>
`+]
[+as.articleCategoryShow:is=`1`:then=`
  <span class="[+as.articleCategoryClass+]"><strong>Категория: </strong> [+as.articleCategory+]</span><br><br>
`+]
</div>

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &extract=`5` &withTvs=`articleCategory` &rank=`articleCategory:100,pagetitle:10,content` &tplResult=`rankResult`!]

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

В этом примере параметр breadcrumbs определяет какую функцию или сниппет (с параметрами вызова) использовать. Здесь мы будем использовать сниппет Breadcrumbs.

Попробуйте возможности этой формы, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы формы, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &breadcrumbs=`Breadcrumbs,showHomeCrumb:0,showCrumbsAtHome:1`!]

Настройка выдержек

Каждой выдержке из документа можно задать обрамление, длину и разделяющий html тег.

Попробуйте возможности этих форм, задав поисковый запрос MODХ Evolution. Для удобства демонстрации работы форм, вместо стандартной надписи "Запрос для поиска..." подставлен тестовый запрос. Вам достаточно просто нажать кнопку "Найти!".

[!AjaxSearch? &ajaxSearch=`0` &extract=`3:content` &extractSeparator=`<br><br>` &extractEllips=`---` &extractLength=`100`!]

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram