Борьба с кракозябрами на кодировке CP1251. (обновлено 13.08.2007)
Исходные данные: База с сопоставлением cp1251_general_ci. Свежая версия
modx-0.9.6
Устанавливаю CMS согласно мануала. Выбираю english в качестве языка инсталляции. Дабы не было неприятностей с кодировками. Выбираю сопоставление для бызы cp1251_general_ci. Завершаю установку.
Далее беру файл, который лежит в аттаче. Ставлю языковые файлы в систему. Причём там не один файл, а много файлов. В двух кодировках. В UTF-8, называются ru.js. И в CP1251, называются ru_CP1251.js. После этого идём в assets/plugins/tinymce2111/tinymce.lang.php (спасибо Metaller`у за идею). И меняем
$tinyLang[] = array("russian","ru");
на
$tinyLang[] = array("russian","ru_CP1251");
Заходим в manager/includes/config.inc.php (спасибо Metaller`у ещё раз) и ставим $database_connection_charset = ’cp1251’; У меня, например, там было пусто.
В административной части ставим Язык Системы Управления: russian и Кодировка: Cyrillic Windows-(windows-1251)
После этого кракозябры уступают место русской кодировке.
Теперь боремся с QickEdit. (Спасибо ur001) Квик эдит сохранял кодировку в UTF-8.
assets/modules/quick_edit/editor.class.inc.php
меняем:
$value_prep = $modx->db->escape($value);
//////////////////////////////////////////////////////////////////////////////////// <-добавляем
$charset = $modx->config['etomite_charset'];
if (mb_detect_encoding($value_prep, "UTF-8, $charset") == 'UTF-8')
$value_prep = mb_convert_encoding($value_prep, $charset, "UTF-8");
////////////////////////////////////////////////////////////////////////////////////
if(is_numeric($cv->id)) {
Теперь боремся с несохранением алиасов (Спасибо aleksey.stepanov)
Меняем в файле /manager/processors/save_content.processor.php
$alias = strtr($alias, $replace_array)
на
if($replace_array) $alias = strtr($alias, $replace_array)
После этого алиасы сохраняются.
Теперь следует переименовать ht.access в .htaccess. Иначе по алиасам вы получите 404. (Опять на помощь пришёл Metaller) И не забудьте правильно настроить mod_rewrite.
На повестке дня пара нерешённых вопросов:
Регистрация на сайте/логин на сайте. Не работает.