The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Система инвентаризации компьютерной и оргтехники GLPI v0.65"
Отправлено источник вдохновения, 22-Янв-09 13:56 
Для корректного импорта кириллицы из 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/
на тот что приложен в аттаче

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру