При обновлении MODx до версии 1.0.4 система предлагает обновить и основные сниппеты. Предыдущие обновления негативно на работе сайта не сказывались и я решил накатить новые обновления. Практически сразу «съехал» и перестал работать поиск. Причины поломки в том, что разработчики переименовали ряд параметров кастомизации, не обеспечив обратной совместимости. Эта информация содержится в файле изменений новой версии сниппета.
Итак:
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 следующую строчку:
где paging1_rus.tpl.html – шаблон с русскими аналогами слова «previous» и «next».
Хочется обратить внимание, что кодировка файлов должна соответствовать кодировке сайта. Т.е. если на сайте используется кодировка utf-8, то и файл должен быть создан в этой кодировке. Если кодировки не будут совпадать, в результате работы будут отображаться иероглифы или «знаки вопроса на черном фоне».