Changeset 16702
- Timestamp:
- 2007/11/05 21:27:58 (15 years ago)
- 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 25 25 require_once(CLASS_PATH . "pages/LC_Page.php"); 26 26 require_once(DATA_PATH. "module/Tar.php"); 27 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php"); 27 28 28 29 /** … … 73 74 // ダウンロードボタン押下時の処理 74 75 case 'download': 75 // 画面遷移の正当性チェック76 if (!SC_Utils::sfIsValidTransition($objSession)) {77 SC_Utils::sfDispError('');78 }79 SC_Utils::downloadArchiveFiles(TEMPLATE_DIR);80 exit;81 76 break; 82 77 // アップロードボタン押下時の処理 … … 244 239 245 240 // 解凍 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 248 248 // DBにテンプレート情報を保存 249 249 $this->lfRegisterTemplates($objForm->getHashArray()); 250 250 } 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 279 252 /** 280 253 * dtb_templatesへ入力内容を登録する. … … 287 260 $objQuery->insert('dtb_templates', $arrForm); 288 261 } 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 325 263 /** 326 264 * デザイン管理で作成されたファイルをupload/temp_template/以下にコピーする
Note: See TracChangeset
for help on using the changeset viewer.