Ipplan

Материал из ALT Linux Wiki

Настройка ipplan на корректную работу с русской кодировкой

Решение проблемы с некорректным отображением русских символов при установке русского интерфейса:

  • в файле config.php найти список кодировок $iso_codes = array (
  • заменить 'ru_RU'=>'Russian', на 'ru_RU.UTF-8'=>'Russian',

Итоговый вариант:

$iso_codes = array (
    'en_EN'=>'English',
    'bg_BG'=>'Bulgarian',
    'fr_FR'=>'French',
    'ja_JP'=>'Japanese',
    'pt_BR'=>'Português - Brasileiro',
    'ru_RU.UTF-8'=>'Russian',
    'de_DE'=>'Deutsch',
    'it_IT'=>'Italian',
    'no_NO'=>'Norwegian - Auto Translation',
    'pt_PT'=>'Portuguese - Auto Translation',
    'es_ES'=>'Spanish - Auto Translation');

Решение проблемы с записью в mysql в неправильной кодировке:

  • найти class.dbflib.php
  • после команд соединения с базой PConnect(DBF_HOST, DBF_USER, DBF_PASSWORD, DBF_NAME)) и Connect(DBF_HOST, DBF_USER, DBF_PASSWORD, DBF_NAME) != false) добавить $this->ds->Execute('SET NAMES utf8');

Итоговый вариант:

// open a database connection
    function IPplanDbf() {
        // create a connection id
        $this->ds = &ADONewConnection(DBF_TYPE);
        $this->ds->debug = DBF_DEBUG;
        // some local locales only accept 24 hour date formats - MSSQL?
        if (DBF_TYPE=="mssql" or DBF_TYPE=="ado_mssql" or DBF_TYPE=="odbc_mssql") {
            $this->ds->fmtTimeStamp = "'Y-m-d H:i:s'";
        }
        if (DBF_PERSISTENT) {
            // Fix issue with Reverse DNS imports that use nested database calls
            if (DBF_TYPE=="mysql" or DBF_TYPE=="maxsql" or DBF_TYPE=="postgres7")
                $this->ds->autoRollback = FALSE;
            if ($this->ds->
                PConnect(DBF_HOST, DBF_USER, DBF_PASSWORD, DBF_NAME)) {
                $this->ds->SetFetchMode(ADODB_FETCH_ASSOC);
                $this->ds->Execute('SET NAMES utf8');
                return $this->ds;
            }
        }
        else {
            if ($this->ds->
                Connect(DBF_HOST, DBF_USER, DBF_PASSWORD, DBF_NAME) != false) {
                $this->ds->SetFetchMode(ADODB_FETCH_ASSOC);
                $this->ds->Execute('SET NAMES utf8');
                return $this->ds;
            }
        }
        // kill connection info if error - probably bogus database name
        unset($this->ds);
        return false;
    }