2010
Как оказалось, AjaxSearch нигде и ничего не ищет, когда системные поля Modx-а YAMS заменяет на TV-параметры.
На официальном форуме предлагается решение в подробностях, которое у меня так и не заработало. Всё это делалось на версии Modx Evolution 1.0.3.
А нашлось оно совершенно случайно (как обычно, впрочем). Надо было поставить чуть постарше версию AjaxSearch-a.
А именно версию 1.8.4. Она лежит в Previous Releases AjaxSearch-a.
Либо вот прямая ссылка на неё.
Как выглядит сам вызов:
На всех страницах сайта (ну, или на тех, где поле для поиска нужно) разместить вызов сниппета:
[!AjaxSearch? &parents=`0` &mbstring=`0` &AS_landing=`25` &addJscript=`0` &extract=`0` &AS_showResults=`0` &ajaxSearch=`0` &language=`(yams_mname)` &withTvs=`+:pagetitle_en,longtitle_en,introtext_en,description_en,content_en,pagetitle_ru,longtitle_ru,introtext_ru,description_ru,content_ru` &tplLayout=`search_tpl`!]
mbstring я отключаю сразу, оно у меня не работает. Поиск без перезагрузки я не проверял, он не нужен мне в 99%, а то и во всех 100% случаев, вроде как он всё равно корректно не работает. Ну, а дальше, собственно, куда будет выводиться результат поиска, на каком языке будет всё описание и, то, по каким полям AjaxSearch будет искать. Ну и сами TV-параметры, которые создаёт YAMS и не находит AJAxSearch.
Шаблон формы поиска стандартный:
[+as.showForm:is=`1`:then=`
<form [+as.formId+] action=[+as.formAction+]«„ method=“post»>
<fieldset>
<input type="hidden" name="advSearch" value=[+as.advSearch+]«„ />
<label for=“ajaxSearch_input»>
<input id="ajaxSearch_input" type="text" name="search" value=[+as.inputValue+]«[+as.inputOptions+]„ />
</label>
<label for=“ajaxSearch_submit»>
<input id="ajaxSearch_submit" type="image" src=[(site_url)]«images/search.gif» name="sub" value=[+as.submitText+]«« />
</label>
</fieldset>
</form>
`+]
[+as.showIntro:is=`1`:then=`
<p id="ajaxSearch_intro">[+as.introMessage+]</p>
`+]
[+as.showResults:is=`1`:then=`
[+as.results+]
`+]
Страница вывода результатов:
[!AjaxSearch? &mbstring=`0` &AS_showResults=`1` &ajaxSearch=`0`, &AS_landing=`25`, &AS_showForm=`0` &language=`(yams_mname)` &withTvs=`+:pagetitle_en,longtitle_en,introtext_en,description_en,content_en,pagetitle_ru,longtitle_ru,introtext_ru,description_ru,content_ru` &tplResult=`searchresult_`!]
Шаблон вывода результатов:
<a href=»(yams_doc:[+as.id+])» title=[[YAMS? &get=`content` &from=`pagetitle` &docid=`[+as.id+]«`]]»>[[YAMS? &get=`content` &from=`pagetitle` &docid=`[+as.id+]`]]</a>
[+as.descriptionShow:is=`1`:then=`
<span>[+as.description+]</span>
`+]
[+as.extractShow:is=`1`:then=`
<div><p>[+as.extract+]</p></div>
`+]
[+as.breadcrumbsShow:is=`1`:then=`
<span>[+as.breadcrumbs+]</span>
`+]
Тут стоит обратить внимание, что вызовы плейсхолдеров AjaxSearch-а заменяются на вызовы сниппета YAMS.
Чтобы ссылка работала верно, она обязательно должна быть заменена на (yams_doc:[+as.id+])
Ну, а показать title или заголовок, то надо вызывать сниппет YAMS:
[[YAMS? &get=`content` &from=`pagetitle` &docid=`[+as.id+]`]]
Такой поиск работает корректно, ищет и находит и правильно ссылается на страницы из результатов поиска.






Здравствуй. Спасибо за пост, очень помог. Я ещё покапался по форумам и сделал вот такой вызов AjaxSearch v.1.9.0:
[!AjaxSearch? &showResults=`1` &ajaxSearch=`0`, &landing=`22`, &showForm=`0` &language=`(yams_mname)` &withTvs=`+:content_(yams_id)`&tplResult=`searchresult`&highlightResult=`1`&extractLength=`500`&whereSearch=`content:content`&extract=`1:content_(yams_id)`!]
При твоём [+as.extract+] пропадал. Ну, пока, не разобрался как сделать, чтоб подсветка была, yams съедает все $_GET — ы из строки запроса.
Ну, я делал на 1.8.4, может, в 1.9 автор уже всё поправил, я пока ещё не проверял, там уже и YAMS вроде новее версия есть. Там либо новые глюки, либо уже поправлено всё. :)
А так вообще, на здоровье. Хорошо, что это не мне одному нужно. :)