MODx Revo - поиск по сайту SimpleSearch modx
Для создания поиска по сайту необходимо установить пакет SimpleSearch.
Затем в ресурсах создаем ресурс ПОИСК и вписываем туда
[[!SimpleSearch]]
Запоминаем id этого ресурса, это страница вывода результатов поиска. В шаблон где находится сама форма поиска вставляем следующий код:
[[!SimpleSearchForm? &landing=`1` &tpl=`MySForm`]]
где вместо 1 вставляем ID страницы вывода результатов поиска
Затем копируем содержимое файла core/components/simplesearch/elements/chunks/searchform.chunk.tpl в новый чанк с названием MySForm и создаем тот шаблон отображения окна поиска, который нам необходим
Все, поиск на сайте под управлением Revo Modx готов.
Далее решаем проблемы с кодировкой.
Находим файл core/components/simplesearch/model/simplesearch/simplesearch.class.php в нем заменяем строку
$text = trim(preg_replace('/\s+/', ' ', $this->sanitize($text)));
на
$text = trim(preg_replace('/\s+/u', ' ', $this->sanitize($text)));
Затем заменяем строку
$string = preg_replace('/' . $quoteValue . '/i', '<'.$tag.' class="'.$cls.'">$0', $string);
на
$string = preg_replace('/' . $quoteValue . '/iu', '<'.$tag.' class="'.$cls.'">$0', $string);
А так же заменяем строку
$text = preg_replace('/(\[\[\+.*?\]\])/i', '', $text);
на
$text = preg_replace('/(\[\[\+.*?\]\])/iu', '', $text);
И последнее, надо закомментировать строчку
if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));