Как подключить русский язык для редактора (utf-8):
Устанавливаем пакет руссификации для MODx. Переключаемся на русский.
Затем заходим сюда:
http://tinymce.moxiecode.com/language.php и качаем пакет для ru.
Разкладываем по нужным папочкам.
В недостающих папках, там где есть папочка lang тупо копируем en.js в ru.js (попутно их можно перевести на русский - их там пара штук по паре строчек).
Затем заходим в плагины (в админке) и подкручиваем TinyMCE
В функции getTinyMCELang($lang) в любом месте в case но до default вставляем:
case "russian-utf8":
$returnlang = "ru";
break;
В функции getTinyMCEScript($elmList,$webTheme=’’,$width=’’,$height=’’,$lang=’’) добавляем глобальную переменную
global $manager_language;
Всё - заговорило по русски. Ура.
Если в попапах (типа вставка ссылки) нет русских буковок (для данных из базы), значит нужно еще подрутить места подлюкчения к базе данных. Хотя в немцы советовали просто поставить в настройка редактора чего-то там вместо named -> row. Но мы не ищем легких путей
Начинаем (жирным отмечено чего добавлять):
\assets\plugins\tinymce\modxLinkList.php
// Connecting, selecting database
$link = mysql_connect($database_server, $database_user, $database_password) or die('Could not connect: ' . mysql_error());
$dbase = str_replace('`', '', $dbase);
mysql_select_db($dbase) or die('Could not select database');
mysql_query("SET NAMES ’utf8’;",$link);
mysql_query("SET CHARACTER SET ’utf8’;",$link);
mysql_query("SET SESSION collation_connection = ’utf8_general_ci’;",$link);
\manager\index.php
// connect to the database
if(@!$modxDBConn = mysql_connect($database_server, $database_user, $database_password)) {
die("<h2>Failed to create the database connection!</h2>. Please run the MODx <a href='../install'>install utility</a>");
} else {
mysql_select_db($dbase);
mysql_query("SET NAMES ’utf8’;",$modxDBConn);
mysql_query("SET CHARACTER SET ’utf8’;",$modxDBConn);
mysql_query("SET SESSION collation_connection = ’utf8_general_ci’;",$modxDBConn);
\manager\includes\extenders\dbapi.mysql.class.inc.php
function connect($host = '', $dbase = '', $uid = '', $pwd = '', $persist = 0) {
…
$this->isConnected = true;
// FIXME (Fixed by line below):
// this->queryTime = this->queryTime + $totaltime;
$modx->queryTime += $totaltime;
mysql_query("SET NAMES ’utf8’;", $this->conn);
mysql_query("SET character_set_results = ’utf8’;", $this->conn);
mysql_query("SET collation_connection = ’utf8_general_ci’;", $this->conn);
Попутно лечим баг в переводе:
\assets\modules\quick_edit\lang\russian-utf8.inc.php
//$QE_lang['QE_charset'] = 'windows-1251';
$QE_lang[’QE_charset’] = ’UTF-8’;
PS: Всё это актуально только для utf8, в том числе базы данных. В другую кодировку думаю по аналогии будет совсем не сложно перегнать.