Modx SimpleSearch: кириллица не найдена

Описание проблемы: Есть сайт на Revo 2.4.2. Установил Babel с тремя контекстами (Ru, Ua, En). Установлен SimpleSearch 1.9.2. Проблема в невозможности посмотреть кириллицу (ничего не нашел). Латинский поиск правильный. Везде ставим UTF-8.

Ожидаемый результат: начать поиск русских символов.

  • Версия MODX: 2.4.2
  • Версия PHP: 5.4.45
  • Версия базы данных: 5.5.46
  • Установленные надстройки MODX: Ace, Archivist, Articles, Babel, BreadCrumb, FAQ Manager, filedownload, getPage, getResources, GoogleSiteMap, MetaX, modxtalks, phpThumbOf, Quip, SimpleSearch, taglister, TinyMCE, транслит
  • Содержимое журнала ошибок: ничего.

Форма:

[[!SimpleSearchForm? &method=`GET` &landing=`[[++searchlid]]` &tpl=`lisearch` &searchIndex=`query`]]

searchlid — разные для каждого контекста.

поиск:

<form class="search" action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]">
       <input type="text" placeholder="[[%babel.placeholder_[[++cultureKey]]]]" name="[[+searchIndex]]" id="[[+searchIndex]]"/>
                            <input type="submit" id="search_btn" value=""/>
                            <input type="hidden" name="id" value="[[+landing:default=[[*id]]]]" />
</form>

mysql> показывать переменные типа 'char%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.03 sec)

mysql> показывать переменные, такие как 'collation%';

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

В шаблоне:

<meta charset="utf-8"/>
<meta http-equiv="content-language" content="ru" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

В чем может быть проблема?

Заранее спасибо.


person Roman Sobol    schedule 10.01.2016    source источник


Ответы (2)


Не могли бы вы поискать таблицы базы данных и параметры сортировки полей? Они должны использовать все UTF8 и utf_general_ci или utf8_unicode_ci.

Другая проблема может быть вызвана символами UTF-8, закодированными как объекты html в полях форматированного текста. Возможно, эти объекты не найдены, потому что выполняется только необработанный поиск (я не знаю, как простой поиск подготавливает поиск).

Третья проблема может быть вызвана неправильной кодировкой html в шаблоне. Это может привести к неправильным символам в опубликованной строке поиска.

person Jako    schedule 10.01.2016
comment
Добавлен код. Как проверить кодировку в форматированных текстовых полях? - person Roman Sobol; 10.01.2016
comment
Откройте редактор форматированного текста в режиме HTML или быстро отредактируйте ресурс, если вы видите объекты html вместо кириллических знаков, это может быть проблемой. - person Jako; 11.01.2016
comment
Я не вижу никакой информации о полях таблицы базы данных в ваших дампах выше. Не могли бы вы, например, выполнить mysql› SHOW CREATE TABLE modx_site_content и посмотреть, есть ли в выводе какие-либо другие кодировки, кроме utf8. - person Jako; 11.01.2016
comment
Текстовый редактор вроде проблем не вызвал. Команда show: ENGINE=MyISAM AUTO_INCREMENT=5573 НАБОР ШИМОВ ПО УМОЛЧАНИЮ=utf8. - person Roman Sobol; 11.01.2016
comment
Команда должна была показать еще несколько строк. Используются ли в полях какие-либо другие кодировки? - person Jako; 12.01.2016

Удивительно, но проблема решилась удалением из сниппета параметров. Я не знаю, с чем это связано.

Рабочая версия:

[[!SimpleSearchForm? &landing=`[[++searchlid]]` &tpl=`lisearch`]]

и просто

[[!SimpleSearch]]

на целевой странице.

person Roman Sobol    schedule 12.01.2016