XPressME Integration Kit

Trac


Ignore:
Timestamp:
Apr 6, 2009, 6:49:20 PM (16 years ago)
Author:
toemon
Message:

Bump Ver0.25  #92 XOOPS mainfile.phpのdefine 定義が文字列でなくPHPコードで定義されている場合、XOOPS定義の取得に失敗するバグ修正
モジュール管理メニュー システム情報に「XPressMEがXOOPSより取得した設定値」の対比表を追加

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/class/config_from_xoops.class.php

    r133 r159  
    3232        var $xoops_upload_url; 
    3333        var $xoops_db_salt; 
     34        var $xoops_salt; 
    3435        var $is_impress; 
    3536        var $impress_db_config_file; 
     
    4142        
    4243    } 
     44     
     45    function xpress_eval($str){ 
     46        $eval_str = '$ret = ' . $str . ' ;'; 
     47        eval($eval_str); 
     48        return $ret; 
     49    } 
    4350 
    4451    function ConfigFromXoops()  //for PHP4 constructor 
     
    4956                if(file_exists($this->xoops_mainfile_path)){ 
    5057                        $array_file = file($this->xoops_mainfile_path); 
    51                         $pattern = '^\s*define\s*\(\s*(\'[^\']+\'|"[^"]+")\s*,\s*(\'[^\']*\'|"[^"]*"|[^\'"])\s*\)\s*;'; 
     58                        $pattern = '^\s*define\s*\(\s*(\'[^\']+\'|"[^"]+")\s*,\s*(\'.*\'|".*"|[^\'"]*)\s*\)\s*;'; 
    5259                        $impress_include_pattern = '^\s*(include_once|include)\s*\(\s*XOOPS_TRUST_PATH\s*.\s*[\'"]([^\'"]+)[\'"]\s*\)'; 
    5360                        for ($i = 0 ; $i <count($array_file) ; $i++){ 
     
    5764                                        if (preg_match('/^"[^"]*"$/',$keys)) $keys = preg_replace('/"/', '', $keys); 
    5865                                        $key_value = $matchs[2]; 
    59                                         if (preg_match('/^\'[^\']*\'$/',$key_value)) $key_value = preg_replace('/\'/', '', $key_value); 
    60                                         if (preg_match('/^"[^"]*"$/',$key_value)) $key_value = preg_replace('/"/', '', $key_value); 
     66 
    6167                                        switch ($keys){ 
    6268                                                case  'XOOPS_ROOT_PATH': 
    63                                                         $this->xoops_root_path = $key_value; 
     69                                                        $this->xoops_root_path = $this->xpress_eval($key_value); 
    6470                                                        $this->xoops_url . '/modules/' . $this->module_name; 
    6571                                                        break; 
    6672                                                case  'XOOPS_URL': 
    67                                                         $this->xoops_url = $key_value; 
     73                                                        $this->xoops_url = $this->xpress_eval($key_value); 
    6874                                                        $this->module_url = $this->xoops_url . '/modules/' . $this->module_name; 
    6975                                                        break; 
    7076                                                case  'XOOPS_TRUST_PATH': 
    71                                                         $this->xoops_trust_path = $key_value; 
     77                                                        $this->xoops_trust_path = $this->xpress_eval($key_value); 
    7278                                                        break; 
    7379                                                case  'XOOPS_DB_PREFIX': 
    74                                                         $this->xoops_db_prefix = $key_value; 
     80                                                        $this->xoops_db_prefix = $this->xpress_eval($key_value); 
    7581                                                        break; 
    7682                                                case  'XOOPS_DB_NAME': 
    77                                                         $this->xoops_db_name = $key_value; 
     83                                                        $this->xoops_db_name = $this->xpress_eval($key_value); 
    7884                                                        break; 
    7985                                                case  'XOOPS_DB_USER': 
    80                                                         $this->xoops_db_user = $key_value; 
     86                                                        $this->xoops_db_user = $this->xpress_eval($key_value); 
    8187                                                        break; 
    8288                                                case  'XOOPS_DB_PASS': 
    83                                                         $this->xoops_db_pass = $key_value; 
     89                                                        $this->xoops_db_pass = $this->xpress_eval($key_value); 
    8490                                                        break; 
    8591                                                case  'XOOPS_DB_HOST': 
    86                                                         $this->xoops_db_host = $key_value; 
     92                                                        $this->xoops_db_host = $this->xpress_eval($key_value); 
    8793                                                        break; 
    8894                                                case  'XOOPS_DB_SALT': 
    89                                                         $this->xoops_db_salt = $key_value; 
     95                                                        $this->xoops_db_salt = $this->xpress_eval($key_value); 
     96                                                        break; 
     97                                                case  'XOOPS_SALT': 
     98                                                        $this->xoops_salt = $this->xpress_eval($key_value); 
    9099                                                        break; 
    91100                                                default : 
     
    113122                                                if (preg_match('/^"[^"]*"$/',$keys)) $keys = preg_replace('/"/', '', $keys); 
    114123                                                $key_value = $matchs[2]; 
    115                                                 if (preg_match('/^\'[^\']*\'$/',$key_value)) $key_value = preg_replace('/\'/', '', $key_value); 
    116                                                 if (preg_match('/^"[^"]*"$/',$key_value)) $key_value = preg_replace('/"/', '', $key_value); 
     124 
    117125                                                switch ($keys){ 
    118126                                                        case  'SDATA_DB_SALT': 
    119                                                                 $this->xoops_db_salt = $key_value; 
     127                                                                $this->xoops_db_salt = $this->xpress_eval($key_value); 
    120128                                                                break; 
    121129                                                        case  'SDATA_DB_PREFIX': 
    122                                                                 $this->xoops_db_prefix = $key_value; 
     130                                                                $this->xoops_db_prefix = $this->xpress_eval($key_value); 
    123131                                                                break; 
    124132                                                        case  'SDATA_DB_NAME': 
    125                                                                 $this->xoops_db_name = $key_value; 
     133                                                                $this->xoops_db_name = $this->xpress_eval($key_value); 
    126134                                                                break; 
    127135                                                        case  'SDATA_DB_USER': 
    128                                                                 $this->xoops_db_user = $key_value; 
     136                                                                $this->xoops_db_user = $this->xpress_eval($key_value); 
    129137                                                                break; 
    130138                                                        case  'SDATA_DB_PASS': 
    131                                                                 $this->xoops_db_pass = $key_value; 
     139                                                                $this->xoops_db_pass = $this->xpress_eval($key_value); 
    132140                                                                break; 
    133141                                                        case  'SDATA_DB_HOST': 
    134                                                                 $this->xoops_db_host = $key_value; 
     142                                                                $this->xoops_db_host = $this->xpress_eval($key_value); 
    135143                                                                break; 
    136144                                                        default : 
Note: See TracChangeset for help on using the changeset viewer.