We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 12880
    • 4 Posts
    Для поиска по сайту использую HyperTextSearchForm. И всё хорошо, кроме регистронезависимого поиска

    По умолчанию он не работает. mbstring на хостинге нет (и поставить нельзя). Поэтому проводить mb_stringtolower невозможно.
    Сайт (PHP 5) в юникоде. База (MySQL 5) тоже в юникоде (collation utf8_general_ci).
    По идее это означает, что поиск В БАЗЕ регистронезависим изначально (и действительно в phpMyAdmin ’слово’ = ’СлоВо’).
    Но при поиске через формочку на сайте ’слово’ не находит ’СлоВо’.

    HyperFlexSearchForm сам формирует запрос к базе и использует вызов modx->dbQuery($sql). modx использует для соединения с базой параметр $database_connection_encoding из конфигурационного файла. Сейчас он у меня установлен в ’’ (пустая строка). Если там написать ’utf8’, то слетает весь текст на сайте (и поиск продолжает не работать)

    Какие могут быть пути решения?
      • 785
      • 2,113 Posts
      Quote from: iNdigo at Oct 27, 2007, 09:29 AM

      $database_connection_encoding из конфигурационного файла. Сейчас он у меня установлен в ’’ (пустая строка). Если там написать ’utf8’, то слетает весь текст на сайте
      Надо было добавить ’utf8’ сразу после установки, до того, как в базу попали русские документы. На форуме несколько раз описывалось, что делать, чтобы исправить кодировку. Правда, конкретно по HyperTextSearchForm ничего сказать не могу, не пользовался.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации