AjaxSearch 1.9.0 в MODx

При обновлении MODx до версии 1.0.4 система предлагает обновить и основные сниппеты. Предыдущие обновления негативно на работе сайта не сказывались и я решил накатить новые обновления. Практически сразу «съехал» и перестал работать поиск. Причины поломки в том, что разработчики переименовали ряд параметров кастомизации, не обеспечив обратной совместимости. Эта информация содержится в файле изменений новой версии сниппета.

Итак:

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

В вызове сниппета вышеописанные параметры надо заменить.
Кроме этого, поменялась и структура подключения шаблонов для AjaxSearch. Если ранее шаблон формы был в файле tplLayout, то теперь он находится в tplInput. С чем связана такая замена, сказать трудно.

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

В вызове AjaxSearch можно переопределить практически все шаблоны, которые используются сниппетом. Это очень полезно делать на сайтах со сложным дизайном. Если шаблоны переопределены, обновление сниппета их затронуть не должно.

Параметры:

&tplInput – шаблон формы
&tplResult – шаблон результатов поиска
&tplComment – шаблон формы ввода комментария (для вызовов с использованием ajax)
&tplPaging0, &tplPaging1, &tplPaging2 – шаблоны вывода постраничной навигации в результатах поиска.

Кстати слова «previous» и «next» в шаблоне paging1.tpl.html прописаны жестко и не берутся из языкового файла. Если есть необходимость, то слова-указатели можно заменить их русскими эквивалентами. Наиболее корректно было бы сохранить этот шаблон в отдельный файл и добавить в вызов AjaxSearch следующую строчку:

&tplPaging1=@FILE:assets/snippets/ajaxSearch/templates/paging1_rus.tpl.html

где paging1_rus.tpl.html – шаблон с русскими аналогами слова «previous» и «next».
Хочется обратить внимание, что кодировка файлов должна соответствовать кодировке сайта. Т.е. если на сайте используется кодировка utf-8, то и файл должен быть создан в этой кодировке. Если кодировки не будут совпадать, в результате работы будут отображаться иероглифы или «знаки вопроса на черном фоне».

  • так а причем здесь в названии статьи eForm, когда речь идет о ajaxSearch?

    • Ссори, уже исправил.

  • Julliet

    Огромное спасибо за статью! пыталась настроить поиск по каким-то мануалам 2009 года и педивикии,и ну ничего, совсем ничего не работало, гнусный поиск выводился куда-то в .. подмышку сайта, простите.
    Спасибо, сама бы не додумалась.
    )

  • Спасибо.
    Полезно, если нет желания читать документацию на английском 🙂
    Не совсем понятна позиция разработчиков по «совместимости», а точнее «несовместимости»..
    Хотя, отказ от поддержки IE 6, например, сильно упростил разработку

  • Спасибо большое — долго не мог понять, в чем проблема. Ваш пост меня спас!!

  • Сергей

    Спасибо за статью.. я то думаю что же всё разваливается.. а открыть в нормальном редакторе с подсветкой сниппет раньше и не додумался.
    Начал его копать да включать\выключать что надо\не надо и получилось очень даже интересно. Свой шаблон для инпута в чанке, прозрачность блока с результатами, живой поиск — на квери, получается даже очень и очень. Спасибо ещё раз за пинок в каком направлении копать))
    [code][!AjaxSearch? &tplInput=ajsearchTpl &ajaxSearch=1 &showIntro=0 &highlightResult=1 &opacity=0.9 &liveSearch=1 &jscript=jquery &addJscript=0` !][/code]

  • Можно ли сделать так, что бы поиск искал и по полям модулей?