The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

OpenNews: Система инвентаризации компьютерной и оргтехники GLPI v0.65, opennews (?), 30-Мрт-06, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


93. "Система инвентаризации компьютерной и оргтехники 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/
на тот что приложен в аттаче

Ответить | Правка | Наверх | Cообщить модератору

94. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Дмитрий (??), 27-Янв-09, 10:41 
>[оверквотинг удален]
>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/
>на тот что приложен в аттаче

либо приложить забыли, либо у меня аттачи не просматриваются :)
можно ссылочку на шрифт?

Ответить | Правка | Наверх | Cообщить модератору

95. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Renso (?), 29-Янв-09, 13:44 
>
>Тестируем, кириллица должна быть нормально видна и в OCS и после импорта
>в GLPI !!!
>

Не работает... Таблицы в utf8 созданы, в /usr/lib/perl5/XML/Parser/Encodings/windows-1251.enc положен, preferences пропатчен, агент шлёт с 1251 в заголовке, в результате в базе всё равно кракозябры, в отчётах вообще вместо русского текста пустота.

OCSNG_UNIX_SERVER_1.02RC3

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

99. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Дмитрий (??), 06-Фев-09, 13:06 

>стандартная utf8_decode() может декодировать только в ISO-8859-1 !!!
>
>плюс надо заменить шрифт в lib/ezpdf/fonts/
>на тот что приложен в аттаче

"источник вдохновения", ты где?
попробовал взять виндовые шрифты и сконвертить их ttf2afm, не помогло.
аттач в студию :)

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

132. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от gullson (?), 08-Май-09, 09:00 
>[оверквотинг удален]
>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/
>на тот что приложен в аттаче

+ 1. OCS без патча клиента
Ocsinventory.pm перед строкой:  $CURRENT_CONTEXT{'DATA'} = \$inflated;
вставляем
a) $inflated =~ s/encoding=\"ISO-8859-1\"/encoding=\"windows-1251\"/;
требует установки таблицы для xml::parser
б) или use Text::Iconv;
    $inflated =~ s/encoding=\"ISO-8859-1\"/encoding=\"utf-8\"/;
    $temp_inflated = Text::Iconv->new("windows-1251","utf-8");
    $inflated = $temp_inflated->convert($inflated);


2. GLPi pdfs
ftp://ftp.vsu.ru/pub/tex/font-packs/pscyr/PSCyr-0.4c-patch2-...
берём afm и в lib/ezpdf/fonts

glpi/inc/export.functions.php перед вызовом selectFont()

$diff=array(192=>'afii10017',
193=>'afii10018',
194=>'afii10019',
195=>'afii10020',
196=>'afii10021',
197=>'afii10022',
198=>'afii10024',
199=>'afii10025',
200=>'afii10026',
201=>'afii10027',
202=>'afii10028',
203=>'afii10029',
204=>'afii10030',
205=>'afii10031',
206=>'afii10032',
207=>'afii10033',
208=>'afii10034',
209=>'afii10035',
210=>'afii10036',
211=>'afii10037',
212=>'afii10038',
213=>'afii10039',
214=>'afii10040',
215=>'afii10041',
216=>'afii10042',
217=>'afii10043',
218=>'afii10044',
219=>'afii10045',
220=>'afii10046',
221=>'afii10047',
222=>'afii10048',
223=>'afii10049',
224=>'afii10065',
225=>'afii10066',
226=>'afii10067',
227=>'afii10068',
228=>'afii10069',
229=>'afii10070',
230=>'afii10072',
231=>'afii10073',
232=>'afii10074',
233=>'afii10075',
234=>'afii10076',
235=>'afii10077',
236=>'afii10078',
237=>'afii10079',
238=>'afii10080',
239=>'afii10081',
240=>'afii10082',
241=>'afii10083',
242=>'afii10084',
243=>'afii10085',
244=>'afii10086',
245=>'afii10087',
246=>'afii10088',
247=>'afii10089',
248=>'afii10090',
249=>'afii10091',
250=>'afii10092',
251=>'afii10093',
252=>'afii10094',
253=>'afii10095',
254=>'afii10096',
255=>'afii10097');

$encoding = array('encoding'=>'WinAnsiEncoding','differences'=>$diff);

в самом вызове selectFont("имя_шрифта.afm",$encoding)


Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

135. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Velby (?), 14-Май-09, 14:08 
>
>$encoding = array('encoding'=>'WinAnsiEncoding','differences'=>$diff);
>
>в самом вызове selectFont("имя_шрифта.afm",$encoding)

Делаю все как написано по пункту 2, все равно русский не показывает.
Может я шрифт не тот выбираю или делаю не все?
Подскажите правильное имя шрифта и по пунктам распишите что делать


Ответить | Правка | Наверх | Cообщить модератору

160. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Xaferemail (?), 02-Окт-09, 10:23 
>>
>>$encoding = array('encoding'=>'WinAnsiEncoding','differences'=>$diff);
>>
>>в самом вызове selectFont("имя_шрифта.afm",$encoding)
>
>Делаю все как написано по пункту 2, все равно русский не показывает.
>
>Может я шрифт не тот выбираю или делаю не все?
>Подскажите правильное имя шрифта и по пунктам распишите что делать

Интересно, существуют люди у которых все получилось с экспортом?
Все сделал разными способами - не работает...

Ответить | Правка | Наверх | Cообщить модератору

161. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от tsolodovemail (?), 02-Окт-09, 10:34 
>[оверквотинг удален]
>>>
>>>в самом вызове selectFont("имя_шрифта.afm",$encoding)
>>
>>Делаю все как написано по пункту 2, все равно русский не показывает.
>>
>>Может я шрифт не тот выбираю или делаю не все?
>>Подскажите правильное имя шрифта и по пунктам распишите что делать
>
>Интересно, существуют люди у которых все получилось с экспортом?
>Все сделал разными способами - не работает...

У меня все получилосьс языками, единственная проблема, по которой я еще и не парился, это из glpi экспорт в пдф не отображает русские символы, а так все ок, смотри на форуме проекта OCS там есть тема про поддержку UTF-8. Там в теме есть ссылки на собранный сервак OCS

Ответить | Правка | Наверх | Cообщить модератору

162. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от Xaferemail (?), 02-Окт-09, 11:35 
>У меня все получилосьс языками, единственная проблема, по которой я еще и
>не парился, это из glpi экспорт в пдф не отображает русские
>символы, а так все ок, смотри на форуме проекта OCS там
>есть тема про поддержку UTF-8. Там в теме есть ссылки на
>собранный сервак OCS

Я не уточнил про экспорт :) В pdf экспорт у меня не получается.
OCS не трогал совсем так что с ним проблем нет.
Экспорт в pdf по методу описанному выше ну не хочет работать никак...

Уже и отмел все возможные косяки: права на чтение, синтаксис, шрифты - все выглядит работающим.
Сейчас начну поэтапно выводить содержимое функций, которые запускаются из export.function.php и смотреть на каком месте он может вылетать.

Очень хочу найти у кого получилось это сделать, чтобы точно понять можно это осуществить или нет.
эй! отзовитесь!

Ответить | Правка | Наверх | Cообщить модератору

184. "Система инвентаризации компьютерной и оргтехники GLPI v0.65"  +/
Сообщение от phoenix (??), 08-Окт-10, 09:59 
>[оверквотинг удален]
>          $this->dbenc="latin1";
>            
>          
>          $this->DBmysql();
>            
>          
>  }
> меняем кодировку latin1 на utf8
> Тестируем, кириллица должна быть нормально видна и в OCS и после импорта
> в GLPI !!!

в GLPI при мипорте все-равно кракозябры

Ответить | Правка | К родителю #93 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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