Для поиска по сайту использую HyperTextSearchForm. И всё хорошо, кроме регистронезависимого поиска
По умолчанию он не работает. mbstring на хостинге нет (и поставить нельзя). Поэтому проводить mb_stringtolower невозможно.
Сайт (PHP 5) в юникоде. База (MySQL 5) тоже в юникоде (collation utf8_general_ci).
По идее это означает, что поиск В БАЗЕ регистронезависим изначально (и действительно в phpMyAdmin ’слово’ = ’СлоВо’).
Но при поиске через формочку на сайте ’слово’ не находит ’СлоВо’.
HyperFlexSearchForm сам формирует запрос к базе и использует вызов modx->dbQuery($sql). modx использует для соединения с базой параметр $database_connection_encoding из конфигурационного файла. Сейчас он у меня установлен в ’’ (пустая строка). Если там написать ’utf8’, то слетает весь текст на сайте (и поиск продолжает не работать)
Какие могут быть пути решения?
Quote from: iNdigo at Oct 27, 2007, 09:29 AM
$database_connection_encoding из конфигурационного файла. Сейчас он у меня установлен в ’’ (пустая строка). Если там написать ’utf8’, то слетает весь текст на сайте
Надо было добавить ’utf8’ сразу после установки, до того, как в базу попали русские документы. На форуме несколько раз описывалось, что делать, чтобы исправить кодировку. Правда, конкретно по HyperTextSearchForm ничего сказать не могу, не пользовался.