Источник!
При создании базы (
OCSNG_UNIX_SERVER_1.02_RC1/ocsreports/files/ocsbase.sql) важно что бы она была в кодировке UTF-8
@@ -1,4 +1,4 @@
-CREATE DATABASE ocsweb;
+CREATE DATABASE ocsweb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE ocsweb;
Для таблиц
files и
tags принудительно прописать в sql скрипте создания базы (
OCSNG_UNIX_SERVER_1.02_RC1/ocsreports/files/ocsbase.sql) кодировку
latin1 (
строка 143 и 468):
) ENGINE=MYISAM DEFAULT CHARSET=latin1;
Не знаю насколько это актуально если агент пропатчен под UTF-8, НО....
OCS для импорта XML использует модуль XML:Parser, этот модуль по умолчанию не понимает кодировку Windows-1251 (в которой шлет отчет виндовый агент)
требуется добавить ему поддержку кириллицы (файлы кодировок брать тут: http://uucode.com/xml/perl/#enc
В браузере набираем
http://имя_сервера/ocsreports и попадаем на страницу авторизации. При необходимости выбираем русский язык (флажки в правом верхнем углу). Пользователь:
admin, пароль:
admin.
На этом установку можно считать оконченной.
Теперь решаем проблемы с отображением русских символов.
В файле
/usr/share/ocsinventory-server/ocsreports/preferences.php в строке 21:
- 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( $txt ) {
for( $i=0; $i<UTF8_DEGREE; $i++ ) {
$txt = utf8_decode( $txt );
}
return $txt;
}
после
function textDecode( $txt ) {
global $l;
for( $i=0; $i<UTF8_DEGREE; $i++ ) {
$txt = iconv("UTF-8", $l->g(0), $txt );
}
return $txt;
}
В файлах
/usr/share/ocsinventory-server/ocsreports/group_show.php, header.php и
machine.php меняем все вхождения charset=ISO-8859-1 на
charset=UTF-8
При просмотре через www неправильно отображаются русские названия программ. Открываем для редактирования
/usr/share/ocsinventory-server/ocsreports/machine.php и правим
function print_softwares($systemid)
до
echo "$td3".htmlentities(textDecode($item->PUBLISHER))."</td>
$td3".htmlentities(textDecode($item->NAME))." </td>
$td3".textDecode($item->VERSION)." </td>
$td3".(htmlentities(textDecode($item->COMMENTS))?htmlentities(textDecode($item->COMMENTS)):"N/A")." </td>";
после
echo "$td3".textDecode($item->PUBLISHER)."</td>
$td3".textDecode($item->NAME)." </td>
$td3".textDecode($item->VERSION)." </td>
$td3".(htmlentities(textDecode($item->COMMENTS))?textDecode($item->COMMENTS):"N/A")." </td>";
Для отображения на главной странице имен пользователей на русском языке в файле
preferences.php следует внести изменения в
строку 763:
- echo $item[$chmp]."</span></a></font></td>\n";
+ echo textDecode($item[$chmp])."</span></a></font></td>\n";