Описание проблемы – в выводе результатов поиска появляются “ромбики” вместо слов, то есть проблема с кодировкой.
Давно попадалась эта проблема, но все ни как не доходили руки к описанию решения. Итак, поискав аналогичные проблемы в интернете, я нашел решение.
Нам нужен файл, отвечающий за логику работы поиска. Идем по пути core/components/simplesearch/model/simplesearch/ и открываем файл simplesearch.class.php
Далее нам нужно будет заменить некоторые строки на новые, а именно:
нужно удалить или закомментировать строку 177
//if (!empty($str)) $this->searchString = strip_tags($this->modx->sanitizeString($str));
заменяем строку 247
$text = preg_replace(‘/(\[\[\+.*?\]\])/i’, ”, $text);
на
$text = preg_replace(‘/(\[\[\+.*?\]\])/iu’, ”, $text);
заменяем строку 261
$text = trim(preg_replace(‘/\s+/’, ‘ ‘, $this->sanitize($text)));
на
$text = trim(preg_replace(‘/\s+/u’, ‘ ‘, $this->sanitize($text)));
заменяем строку 361
$string = preg_replace(‘/’ . $quoteValue . ‘/i’, ‘<’.$tag.’variable”>$cls.’”>$0</’.$tag.’>’, $string);
на
$string = preg_replace(‘/’ . $quoteValue . ‘/iu’, ‘<’.$tag.’variable”>$cls.’”>$0</’.$tag.’>’, $string);