Ignore:
Timestamp:
2011/01/08 06:19:28 (13 years ago)
Author:
tao
Message:

refs #841 shopマスタでの変更機能を追加。あと凡ミスも修正。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/admin/basis/LC_Page_Admin_Basis.php

    r19805 r19856  
    114114                    break; 
    115115                } 
    116                 $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。');"; 
     116                $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "'); window.alert('SHOPマスタの登録が完了しました。管理画面のURLを変更した場合は、新しいURLにアクセスしてください。');"; 
    117117            } 
    118118            if( empty($this->arrForm['regular_holiday_ids']) ) { 
     
    129129            $regular_holiday_ids = explode('|', $this->arrForm['regular_holiday_ids']); 
    130130            $this->arrForm['regular_holiday_ids'] = $regular_holiday_ids; 
     131            $admin_dir = str_replace("/","",ADMIN_DIR); 
     132            $this->arrForm += array("admin_dir"=>$admin_dir); 
     133            $this->arrForm += array("admin_force_ssl"=>ADMIN_FORCE_SSL); 
     134            if(defined("ADMIN_ALLOW_HOSTS")){ 
     135                $allow_hosts = unserialize(ADMIN_ALLOW_HOSTS); 
     136                $this->arrForm += array("admin_allow_hosts"=>implode("\n",$allow_hosts)); 
     137            }else{ 
     138                $this->arrForm += array("admin_allow_hosts"=>""); 
     139            } 
    131140            $this->tpl_onload = "fnCheckLimit('downloadable_days', 'downloadable_days_unlimited', '" . DISABLED_RGB . "');"; 
    132141        } 
     
    192201        } 
    193202        $sqlval['update_date'] = 'Now()'; 
     203        $this->lfUpdateAdminData($array); 
    194204        // UPDATEの実行 
    195205        $ret = $objQuery->update("dtb_baseinfo", $sqlval); 
     
    203213        } 
    204214        $sqlval['update_date'] = 'Now()'; 
     215        $this->lfUpdateAdminData($array); 
    205216        // INSERTの実行 
    206217        $ret = $objQuery->insert("dtb_baseinfo", $sqlval); 
     218    } 
     219     
     220    function lfUpdateAdminData($array){ 
     221        $admin_dir = trim($array['admin_dir'])."/"; 
     222        $admin_force_ssl = "FALSE"; 
     223        if($array['admin_force_ssl'] == 1){ 
     224            $admin_force_ssl = "TRUE"; 
     225        } 
     226        $admin_allow_hosts = explode("\n",$array['admin_allow_hosts']); 
     227        foreach($admin_allow_hosts as $key=>$host){ 
     228            $host = trim($host); 
     229            if(strlen($host) >= 8){ 
     230                $admin_allow_hosts[$key] = $host; 
     231            }else{ 
     232                unset($admin_allow_hosts[$key]); 
     233            } 
     234        } 
     235        $admin_allow_hosts = serialize($admin_allow_hosts); 
     236        //権限チェック  
     237        if(!is_writable(DATA_REALDIR . "install.php")){ 
     238            $this->arrErr["admin_force_ssl"] = DATA_REALDIR . "install.phpを変更する権限がありません。"; 
     239        } 
     240        if(count($this->arrErr) > 0){ 
     241            return false; 
     242        } 
     243        //install.phpの書き換え 
     244        $installData = file(DATA_REALDIR."install.php",FILE_IGNORE_NEW_LINES); 
     245        $diff = 0; 
     246        foreach($installData as $key=>$line){ 
     247            if(strpos($line,"ADMIN_DIR") !== false and ADMIN_DIR != $admin_dir){ 
     248                if(!is_writable(HTML_REALDIR . ADMIN_DIR)){ 
     249                    $this->arrErr["admin_dir"] = URL_PATH.ADMIN_DIR."のディレクトリ名を変更する権限がありません。"; 
     250                } 
     251                if(!is_writable(USER_TEMPLATE_REALDIR . ADMIN_DIR)){ 
     252                    $this->arrErr["admin_dir"] = USER_TEMPLATE_REALDIR . ADMIN_DIR."のディレクトリ名を変更する権限がありません。";         
     253                } 
     254                if(count($this->arrErr) > 0 ){ 
     255                    return false; 
     256                }else{ 
     257                    $installData[$key] = 'define("ADMIN_DIR","'.$admin_dir.'");'; 
     258                    //管理画面ディレクトリのリネーム 
     259                    rename(HTML_REALDIR.ADMIN_DIR,HTML_REALDIR.$admin_dir); 
     260                    rename(USER_TEMPLATE_REALDIR.ADMIN_DIR,USER_TEMPLATE_REALDIR.$admin_dir); 
     261                    $diff ++; 
     262                } 
     263            } 
     264             
     265            if(strpos($line,"ADMIN_FORCE_SSL") !== false and ADMIN_FORCE_SSL !== (boolean)$array['admin_force_ssl']){ 
     266                $installData[$key] = 'define("ADMIN_FORCE_SSL",'.$admin_force_ssl.');'; 
     267                $diff ++; 
     268            } 
     269            if(strpos($line,"ADMIN_ALLOW_HOSTS") !== false and ADMIN_ALLOW_HOSTS != $admin_allow_hosts) { 
     270                $installData[$key] = "define('ADMIN_ALLOW_HOSTS','".$admin_allow_hosts."');"; 
     271                $diff ++; 
     272            } 
     273        } 
     274         
     275        if($diff > 0) { 
     276            $fp = fopen(DATA_REALDIR . "install.php","wb"); 
     277            $installData = implode("\n",$installData); 
     278            echo $installData; 
     279            fwrite($fp, $installData); 
     280            fclose($fp); 
     281        } 
     282        return true; 
    207283    } 
    208284 
     
    239315        $arrConvList['email03'] = "a"; 
    240316        $arrConvList['email04'] = "a"; 
     317        $arrConvList['admin_dir'] = "a"; 
     318        $arrConvList['admin_force_ssl'] = "n"; 
     319        $arrConvList['admin_allow_hosts'] = "a"; 
    241320        $arrConvList['tax'] = "n"; 
    242321        $arrConvList['free_rule'] = "n"; 
     
    272351        $objErr->doFunc(array('メール送信元メールアドレス', "email03", STEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK")); 
    273352        $objErr->doFunc(array('送信エラー受付メールアドレス', "email04", STEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK","MAX_LENGTH_CHECK")); 
     353        //管理画面設定チェック 
     354        $objErr->doFunc(array('ディレクトリ名', "admin_dir", ID_MAX_LEN) ,array("EXIST_CHECK","SPTAB_CHECK", "ALNUM_CHECK")); 
     355        $objErr->doFunc(array('SSL制限', "admin_force_ssl", 1) ,array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
     356        $objErr->doFunc(array('IP制限', "admin_allow_hosts", LTEXT_LEN) ,array("IP_CHECK", "MAX_LENGTH_CHECK")); 
     357         
     358 
    274359        // 電話番号チェック 
    275360        $objErr->doFunc(array("TEL", "tel01", "tel02", "tel03"), array("TEL_CHECK")); 
Note: See TracChangeset for help on using the changeset viewer.