Ignore:
Timestamp:
2007/10/15 19:38:23 (19 years ago)
Author:
nanasess
Message:

テンプレート機能修正(#175)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/html/admin/design/upload.php

    r15532 r16430  
    55 * http://www.lockon.co.jp/ 
    66 */ 
     7 
     8// {{{ requires 
    79require_once("../../require.php"); 
    8 require_once(DATA_PATH. "module/Tar.php"); 
     10require_once(CLASS_EX_PATH . "page_extends/admin/design/LC_Page_Admin_Design_Upload_Ex.php"); 
    911 
    10 class LC_Page { 
     12// }}} 
     13// {{{ generate page 
    1114 
    12     function LC_Page() { 
    13         $this->tpl_mainpage = 'design/upload.tpl'; 
    14         $this->tpl_subnavi = 'design/subnavi.tpl'; 
    15         $this->tpl_subno = 'template'; 
    16         $this->tpl_subno_template = 'upload'; 
    17         $this->tpl_mainno = "design"; 
    18         $this->tpl_subtitle = 'アップロード'; 
    19         $this->template_name = 'アップロード'; 
    20     } 
    21 } 
    22  
    23 $objPage = new LC_Page(); 
    24 $objView = new SC_AdminView(); 
    25 $objSess = new SC_Session(); 
    26 $objQuery = new SC_Query(); 
    27  
    28 // 認証可否の判定 
    29 $objSess = new SC_Session(); 
    30 sfIsSuccess($objSess); 
    31  
    32 // アップロードしたファイルをフォルダ 
    33 $new_file_dir = USER_TEMPLATE_PATH.$_POST['template_code']; 
    34  
    35 // ファイル管理クラス 
    36 $objUpFile = new SC_UploadFile(TEMPLATE_TEMP_DIR, $new_file_dir); 
    37 // ファイル情報の初期化 
    38 lfInitFile(); 
    39 // パラメータ管理クラス 
    40 $objFormParam = new SC_FormParam(); 
    41 // パラメータ情報の初期化 
    42 lfInitParam(); 
    43  
    44 switch($_POST['mode']) { 
    45 case 'upload': 
    46     $objFormParam->setParam($_POST); 
    47     $arrRet = $objFormParam->getHashArray(); 
    48      
    49     $objPage->arrErr = lfErrorCheck($arrRet); 
    50  
    51     // ファイルを一時フォルダへ保存 
    52     $ret = $objUpFile->makeTempFile('template_file', false); 
    53     if($ret != "") { 
    54         $objPage->arrErr['template_file'] = $ret; 
    55     } else if(count($objPage->arrErr) <= 0) { 
    56         // フォルダ作成 
    57         $ret = @mkdir($new_file_dir); 
    58         // 一時フォルダから保存ディレクトリへ移動 
    59         $objUpFile->moveTempFile(); 
    60         // 解凍 
    61         lfUnpacking($new_file_dir, $_FILES['template_file']['name'], $new_file_dir."/"); 
    62         // DBにテンプレート情報を保存 
    63         lfRegistTemplate($arrRet); 
    64         // 完了表示javascript 
    65         $objPage->tpl_onload = "alert('テンプレートファイルをアップロードしました。');"; 
    66         // フォーム値をクリア 
    67         $objFormParam->setParam(array('template_code' => "", 'template_name' => "")); 
    68     } 
    69     break; 
    70 default: 
    71     break; 
    72 } 
    73 // 画面の表示 
    74 $objPage->arrForm = $objFormParam->getFormParamList(); 
    75 $objView->assignobj($objPage); 
    76 $objView->display(MAIN_FRAME); 
    77  
    78 //--------------------------------------------------------------------------------------------------------------------------------------------------------- 
    79  
    80 /*  
    81  * 関数名:lfInitFile() 
    82  * 説明 :ファイル情報の初期化 
    83  */ 
    84 function lfInitFile() { 
    85     global $objUpFile; 
    86  
    87     $objUpFile->addFile("テンプレートファイル", 'template_file', array(), TEMPLATE_SIZE, true, 0, 0, false); 
    88 } 
    89  
    90 /*  
    91  * 関数名:lfInitParam() 
    92  * 説明 :パラメータ情報の初期化 
    93  */ 
    94 function lfInitParam() { 
    95     global $objFormParam; 
    96          
    97     $objFormParam->addParam("テンプレートコード", "template_code", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "ALNUM_CHECK")); 
    98     $objFormParam->addParam("テンプレート名", "template_name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); 
    99 } 
    100  
    101 /*  
    102  * 関数名:lfErrorCheck() 
    103  * 引数1 :フォームの値 
    104  * 説明 :エラーチェック 
    105  */ 
    106 function lfErrorCheck($arrList) { 
    107     global $objQuery; 
    108     global $objFormParam; 
    109      
    110     $objErr = new SC_CheckError($arrList); 
    111     $objErr->arrErr = $objFormParam->checkError(); 
    112      
    113     if(count($objErr->arrErr) <= 0) { 
    114         // 同名のフォルダが存在する場合はエラー 
    115         if(file_exists(USER_TEMPLATE_PATH.$arrList['template_code'])) { 
    116             $objErr->arrErr['template_code'] = "※ 同名のファイルがすでに存在します。<br/>"; 
    117         } 
    118         // DBにすでに登録されていないかチェック 
    119         $ret = $objQuery->get("dtb_templates", "template_code", "template_code = ?", array($arrList['template_code'])); 
    120         if($ret != "") { 
    121             $objErr->arrErr['template_code'] = "※ すでに登録されているテンプレートコードです。<br/>"; 
    122         } 
    123         // ファイルの拡張子チェック(.tar/tar.gzのみ許可) 
    124         $errFlag = true; 
    125         $array_ext = explode(".", $_FILES['template_file']['name']); 
    126         $ext = $array_ext[ count ( $array_ext ) - 1 ]; 
    127         $ext = strtolower($ext); 
    128         // .tarチェック 
    129         if ($ext == 'tar') { 
    130             $errFlag = false; 
    131         } 
    132  
    133         $ext = $array_ext[ count ( $array_ext ) - 2 ].".".$ext; 
    134         $ext = strtolower($ext); 
    135         // .tar.gzチェック 
    136         if ($ext== 'tar.gz') { 
    137             $errFlag = false; 
    138         } 
    139          
    140         if($errFlag) { 
    141             $objErr->arrErr['template_file'] = "※ アップロードするテンプレートファイルで許可されている形式は、tar/tar.gzです。<br />";        
    142         } 
    143     } 
    144      
    145     return $objErr->arrErr; 
    146 } 
    147  
    148 /*  
    149  * 関数名:lfErrorCheck() 
    150  * 引数1 :パラメータ 
    151  * 説明 :テンプレートデータ登録 
    152  */ 
    153 function lfRegistTemplate($arrList) { 
    154     global $objQuery; 
    155      
    156     // INSERTする値を作成する。 
    157     $sqlval['template_code'] = $arrList['template_code']; 
    158     $sqlval['template_name'] = $arrList['template_name']; 
    159     $sqlval['create_date'] = "now()"; 
    160     $sqlval['update_date'] = "now()"; 
    161  
    162     $objQuery->insert("dtb_templates", $sqlval); 
    163 } 
    164  
    165 /*  
    166  * 関数名:lfUnpacking 
    167  * 引数1 :ディレクトリ 
    168  * 引数2 :ファイルネーム 
    169  * 引数3 :解凍ディレクトリ 
    170  * 説明 :テンプレートデータ登録 
    171  */ 
    172 function lfUnpacking($dir, $file_name, $unpacking_dir) { 
    173  
    174     // 圧縮フラグTRUEはgzip解凍をおこなう 
    175     $tar = new Archive_Tar("$dir/$file_name", TRUE); 
    176  
    177     // 拡張子を切り取る 
    178     $unpacking_name = ereg_replace("\.tar$", "", $file_name); 
    179     $unpacking_name = ereg_replace("\.tar\.gz$", "", $file_name); 
    180  
    181     // 指定されたフォルダ内に解凍する 
    182     $err = $tar->extractModify($unpacking_dir, $unpacking_name); 
    183  
    184     // フォルダ削除 
    185     @sfDelFile("$dir/$unpacking_name"); 
    186     // 圧縮ファイル削除 
    187     @unlink("$dir/$file_name"); 
    188  
    189     return $err; 
    190 } 
     15$objPage = new LC_Page_Admin_Design_Upload_Ex(); 
     16$objPage->init(); 
     17$objPage->process(); 
     18register_shutdown_function(array($objPage, "destroy")); 
     19?> 
Note: See TracChangeset for help on using the changeset viewer.