Перед тем, как заливать дистрибутив MODx и устанавливать его, полезно исправить некоторые файлы. Я описал действия, выполняемые мною. Если кто-то скажет, что еще полезно сделать, или отметит, что некоторые мои действия лишние, буду признателен.
Все описано для MODx 0.9.6, PHP 5 и MySQL 5, кодировка сайта и базы UTF-8, сравнение utf8_unicode_ci.
Действия по подготовке дистрибутива MODx
1. Добавить в
manager/ncludes/lang дополнительно переведенные
russian.inc.php и russian-
UTF8.inc.php
Взять их можно здесь:
http://modxcms.com/forums/index.php/topic,15621.0.html
2. Папку
manager/media/style/MODx/images/icons скопировать в
manager/media/images/icons
3. Скопировать в нужную папку русские файлы для Jot
4. Изменить
index.php и
index-ajax.php
В обоих файлах после строки
// initialize the variables prior to grabbing the config file вставить строку
mb_internal_encoding("UTF-8");
5. В файле
manager/includes/document.parser.class.inc.php
Для отображения статистики на русском языке кодировать этот файл в UTF-8 (без BOM), найти строки и заменить английские названия на русские:
$queryTime= sprintf("%2.4f с", $queryTime);
$totalTime= sprintf("%2.4f с", $totalTime);
$phpTime= sprintf("%2.4f с", $phpTime);
$source= $this->documentGenerated == 1 ? "базы" : "кэша";
6. Отредактировать файл
manager/includes/lang/russian-UTF8.inc.php
Заменить
setlocale (LC_ALL, ’ru_RU ’); на
setlocale (LC_ALL, ’ru_RU.UTF8’);
7. Поменять несколько файлов для
AjaxSearch и в папке
install изменить
snippet.ajaxSearch.tpl
Подробнее о том, что и где менять, в теме
http://modxcms.com/forums/index.php/topic,18599.0.html
8. Изменения в каталоге сниппета Ditto
Файл
classes/ditto.class.inc.php заменить на аналогичный из версии Ditto 2.0.3 (защита от обнаруженной уязвимости)
В файле
configs/default.config исправить
<? на
<?php чтобы не выдавалось ошибок при генерации RSS
В начало файла
lang/russian-UTF8.inc.php после заголовка вставить две строки:
setlocale(LC_ALL, 'ru_RU.UTF8');
$_lang['language'] = "russian";
9. Изменения в каталоге сниппета Eform
В файле
lang/russian-UTF8.inc.php строку
$_lang["ef_validation_message"] = "<div class=\"errors\"><strong>В вашей форме обнаружены следующие ошибки:</strong><br />[+ef_wrapper+]</div>";
Заменить на
$_lang["ef_validation_message"] = "<strong>В вашей форме обнаружены следующие ошибки:</strong><br />[+ef_wrapper+]";
10. Изменения в каталоге сниппета Weblogin
В файле
weblogin.inc.php вынести JavaScript в отдельный файл, то есть добавить строку
<script type="text/JavaScript" src="assets/snippets/weblogin/weblogin.js"></script>
А то, что раньше было, записать в файл
weblogin.js
В строках
$tpl = "<div id='WebLoginLayer0' style='position:relative'>".$tpls[0]."</div>";
$tpl.= "<div id='WebLoginLayer2' style='position:relative;display:none'>".$tpls[2]."</div>";
убрать
style=’position:relative’ (при необходимости это можно описать в файле стиля)
Теперь можно скопировать файлы в нужное место и выполнить установку, при этом лично я помню о двух тонкостях:
1. Базу данных лучше создать вручную и убедиться, что установлена кодировка UTF-8, и сравнение utf8_unicode_ci. Возможно, придется исправлять параметры, устанавлимые по умолчанию.
2. Сразу после установки до первого захода на сайт прописать
$database_connection_charset = ’utf8’; в файл
config.inc.php
После этого у меня вроде бы все нормально работает. А как у вас?