mirajmv
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Собственно делал все по следующей схеме, непомню кто, но кто-то на opennet.ru писал. У меня все заработало, единственно не дошел до експорта в pdf Для корректного импорта кириллицы из OCS Inventory в GLPI требуются следующие телодвижения: 1. Таблицы в базе OCS Inventory должны быть созданы с DEFAULT CHARSET=utf8, за исключением таблицы FILES, она создается с DEFAULT CHARSET=latin1 2. OCS для импорта XML использует модуль XML:Parser, этот модуль по умолчанию не понимает кодировку Windows-1251 (в которой шлет отчет виндовый агент) требуется добавить ему поддержку кириллицы (файлы кодировок брать тут: http://uucode.com/xml/perl/#enc 3. Собранный авторами OCS Agent для винды формирует XML отчет в дефолтовой кодировке системы, но в заголовке ставит encoding="ISO-8859-1" для исправления глюка пропатчил OCSInventory.exe, единственное вхождение encoding="ISO-8859-1" заменил на encoding="Windows-1251". Придется пересобрать инсталятор, исходники качаем с официального CVS, собирается NSISом. после этих телодвижений, в базу OCS данные должны попадать уже в нормальном виде! 4. Патчим OCS, файл preferences.php меняем параметр: -define("UTF8_DEGREE", 0 ); // 0 For non utf8 database, 1 for utf8 +define("UTF8_DEGREE", 1 ); // 0 For non utf8 database, 1 for utf8 function textDecode - должна принят следующий вид: function textDecode( $txt ) { global $l; for( $i=0; $i<UTF8_DEGREE; $i++ ) { $txt = iconv("UTF-8", $l->g(0), $txt ); } return $txt; } 5. Патчим GLPI, файл / inc/ocsng.class.php if ($CFG_GLPI["ocs_mode"]) { $data = getOcsConf($ID); $this->dbhost = $data["ocs_db_host"]; $this->dbuser = $data["ocs_db_user"]; $this->dbpassword = rawurldecode($data["ocs_db_passwd"]); $this->dbdefault = $data["ocs_db_name"]; $this->dbenc="latin1"; $this->DBmysql(); } меняем кодировку latin1 на utf8 Тестируем, кириллица должна быть нормально видна и в OCS и после импорта в GLPI !!! Продолжаем русификацию ... Для того что бы из GLPI можно было корректно выгружать данные в PDF патчим inc/export.function.php: добавляем функу function utf8_decode_cyr($value){ return iconv("UTF-8","Windows-1251",$value); } и правим все вызовы utf8_decode() на utf8_decode_cyr() стандартная utf8_decode() может декодировать только в ISO-8859-1 !!! плюс надо заменить шрифт в lib/ezpdf/fonts/ на тот что приложен в аттаче Собственно сам исправленый агент __http:// depositfiles . com/files/wtxlo9ell И шрифты для PDF _http:// depositfiles . com/files/7rsv4jbzk | Всего записей: 11 | Зарегистр. 22-09-2008 | Отправлено: 14:09 28-05-2009 | Исправлено: mirajmv, 17:20 01-06-2009 |
|