Changeset 16702


Ignore:
Timestamp:
2007/11/05 21:27:58 (15 years ago)
Author:
naka
Message:

テンプレートアップロードの修正

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/admin/design/LC_Page_Admin_Design_Up_Down.php

    r16682 r16702  
    2525require_once(CLASS_PATH . "pages/LC_Page.php"); 
    2626require_once(DATA_PATH. "module/Tar.php"); 
     27require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php"); 
    2728 
    2829/** 
     
    7374        // ダウンロードボタン押下時の処理 
    7475        case 'download': 
    75             // 画面遷移の正当性チェック 
    76             if (!SC_Utils::sfIsValidTransition($objSession)) { 
    77                 SC_Utils::sfDispError(''); 
    78             } 
    79             SC_Utils::downloadArchiveFiles(TEMPLATE_DIR); 
    80             exit; 
    8176            break; 
    8277        // アップロードボタン押下時の処理 
     
    244239         
    245240        // 解凍 
    246         $this->lfUnpacking($template_dir, $_FILES['template_file']['name']); 
    247                  
     241        SC_Helper_FileManager::unpackFile($template_dir . "/" . $_FILES['template_file']['name']); 
     242        // ユーザデータの下のファイルをコピーする 
     243        $from_dir = SMARTY_TEMPLATES_DIR . $template_code . "/_packages/";       
     244        $to_dir = USER_PATH . "packages/" . $template_code . "/"; 
     245        SC_Utils::sfMakeDir($to_dir); 
     246        SC_Utils::sfCopyDir($from_dir, $to_dir); 
     247         
    248248        // DBにテンプレート情報を保存 
    249249        $this->lfRegisterTemplates($objForm->getHashArray()); 
    250250    } 
    251     /** 
    252      * アップロードされたtarアーカイブを解凍する. 
    253      * 
    254      * TODO 処理がわかりにくいので直す, 
    255      * $file_nameは$objUpFileの初期化時にTPL_PKG_PATHが保存先になっているため必要 
    256      * 
    257      * @param string $dir 解凍先ディレクトリ 
    258      * @param strin $file_name アーカイブのファイル名 
    259      * @return string Archive_Tar::extractModify()のエラー 
    260      */ 
    261     function lfUnpacking($dir, $file_name) { 
    262         // 圧縮フラグTRUEはgzip解凍をおこなう 
    263         $tar = new Archive_Tar("$dir/$file_name", true); 
    264      
    265         // 拡張子を切り取る 
    266         $unpacking_name = preg_replace("/(\.tar|\.tar\.gz)$/", "", $file_name); 
    267      
    268         // 指定されたフォルダ内に解凍する 
    269         $tar->extractModify("$dir/", $unpacking_name); 
    270         GC_Utils_Ex::gfPrintLog("解凍:" . $dir."/".$file_name."->".$dir."/".$unpacking_name); 
    271          
    272         // フォルダ削除 
    273         SC_Utils::sfDelFile("$dir/$unpacking_name"); 
    274         // 圧縮ファイル削除 
    275         unlink("$dir/$file_name"); 
    276      
    277         return $err; 
    278     } 
     251     
    279252    /** 
    280253     * dtb_templatesへ入力内容を登録する. 
     
    287260        $objQuery->insert('dtb_templates', $arrForm); 
    288261    } 
    289     /** 
    290      * ユーザが作成したファイルをアーカイブしダウンロードさせる 
    291      * TODO 要リファクタリング 
    292      * @param void 
    293      * @return void 
    294      */ 
    295     function lfDownloadCreatedFiles() { 
    296         $debug_message = ""; 
    297         // ダウンロードされるファイル名 
    298         $dlFileName = 'tpl_package_' . date('YmdHis') . '.tar.gz'; 
    299          
    300         // ファイル一覧取得 
    301         $arrFileHash = SC_Utils::sfGetFileList(TEMPLATE_DIR); 
    302         foreach($arrFileHash as $val) { 
    303             $arrFileList[] = $val['file_name']; 
    304             $debug_message.= "圧縮:".$val['file_name']."\n"; 
    305         } 
    306         GC_Utils::gfDebugLog($debug_message);        
    307          
    308         // ディレクトリを移動 
    309         chdir(TEMPLATE_DIR); 
    310         // 圧縮をおこなう 
    311         $tar = new Archive_Tar($dlFileName, true); 
    312         $tar->create($arrFileList); 
    313          
    314         // ダウンロード用HTTPヘッダ出力 
    315         header("Content-disposition: attachment; filename=${dlFileName}"); 
    316         header("Content-type: application/octet-stream; name=${dlFileName}"); 
    317         header("Content-Length: " . filesize($dlFileName)); 
    318         readfile($dlFileName); 
    319      
    320         // 圧縮ファイル削除 
    321         unlink($dlFileName); 
    322         // 一時フォルダ削除 
    323         SC_Utils::sfDelFile($tmpDir); 
    324     } 
     262 
    325263    /** 
    326264     * デザイン管理で作成されたファイルをupload/temp_template/以下にコピーする 
Note: See TracChangeset for help on using the changeset viewer.