/** * DBおよびファイルシステムにテンプレートパッケージを追加する. * * エラーが発生した場合は, エラーを出力し, false を返す. * * @param SC_FormParam $objFormParam SC_FormParamのインスタンス * @param SC_UploadFile_Ex $objUpFile SC_UploadFileのインスタンス * @return boolean 成功した場合 true; 失敗した場合 false */ public function doUpload($objFormParam, $objUpFile) { $template_code = $objFormParam->getValue('template_code'); $template_name = $objFormParam->getValue('template_name'); $device_type_id = $objFormParam->getValue('device_type_id'); $template_dir = SMARTY_TEMPLATES_REALDIR . $template_code; $compile_dir = DATA_REALDIR . 'Smarty/templates_c/' . $template_code; $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $arrValues = array('template_code' => $template_code, 'device_type_id' => $device_type_id, 'template_name' => $template_name, 'create_date' => 'CURRENT_TIMESTAMP', 'update_date' => 'CURRENT_TIMESTAMP'); $objQuery->insert('dtb_templates', $arrValues); // フォルダ作成 if (!file_exists($template_dir)) { if (!mkdir($template_dir)) { $this->arrErr['err'] = '※ テンプレートフォルダが作成できませんでした。<br/>'; $objQuery->rollback(); return false; } } if (!file_exists($compile_dir)) { if (!mkdir($compile_dir)) { $this->arrErr['err'] = '※ Smarty コンパイルフォルダが作成できませんでした。<br/>'; $objQuery->rollback(); return false; } } // 一時フォルダから保存ディレクトリへ移動 $objUpFile->moveTempFile(); // 解凍 if (!SC_Helper_FileManager_Ex::unpackFile($template_dir . '/' . $_FILES['template_file']['name'])) { $this->arrErr['err'] = '※ テンプレートファイルの解凍に失敗しました。<br/>'; $objQuery->rollback(); return false; } // ユーザデータの下のファイルをコピーする $from_dir = SMARTY_TEMPLATES_REALDIR . $template_code . '/_packages/'; $to_dir = USER_REALDIR . 'packages/' . $template_code . '/'; if (!SC_Utils_Ex::recursiveMkdir($to_dir)) { $this->arrErr['err'] = '※ ' . $to_dir . ' の作成に失敗しました。<br/>'; $objQuery->rollback(); return false; } SC_Utils_Ex::sfCopyDir($from_dir, $to_dir); $objQuery->commit(); return true; }
/** * プラグインをアップロードする. * * @param object $objUpFile * @param string $plugin_dir * @param string $plugin_code * @param string $plugin_file_name * @return array エラー情報を格納した連想配列. * */ function lfUploadPlugin(&$objUpFile, $plugin_dir, $plugin_code, $plugin_file_name) { $arrErr = array(); // 必須チェック $arrErr = $objUpFile->checkEXISTS('plugin_file'); if (count($arrErr) == 0) { // プラグイン保存ディレクトリ作成 if (file_exists($plugin_dir)) { $arrErr['plugin_file'] = "※ 同名のディレクトリがすでに存在します。<br/>"; } else { mkdir($plugin_dir); } if (count($arrErr) == 0) { // 一時ディレクトリからプラグイン保存ディレクトリへ移動 $objUpFile->moveTempFile(); // プラグイン保存ディレクトリへ解凍 SC_Helper_FileManager_Ex::unpackFile($plugin_dir . $plugin_file_name); // プラグイン情報をDB登録 $this->lfRegistData($plugin_dir, $plugin_code); } } return $arrErr; }
/** * DBおよびファイルシステムにテンプレートパッケージを追加する. * * エラーが発生した場合は, エラーを出力し, false を返す. * * @param object $objFormParam SC_FormParamのインスタンス * @param object $objUpFile SC_UploadFileのインスタンス * @return boolean 成功した場合 true; 失敗した場合 false */ function doUpload($objFormParam, $objUpFile) { $template_code = $objFormParam->getValue('template_code'); $template_name = $objFormParam->getValue('template_name'); $device_type_id = $objFormParam->getValue('device_type_id'); $template_dir = SMARTY_TEMPLATES_REALDIR . $template_code; $compile_dir = DATA_REALDIR . 'Smarty/templates_c/' . $template_code; $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $arrValues = array('template_code' => $template_code, 'device_type_id' => $device_type_id, 'template_name' => $template_name, 'create_date' => 'CURRENT_TIMESTAMP', 'update_date' => 'CURRENT_TIMESTAMP'); $objQuery->insert('dtb_templates', $arrValues); $is_error = false; // フォルダ作成 if (!file_exists($template_dir)) { if (!mkdir($template_dir)) { $this->arrErr['err'] = t('c_* The template folder could not be created.<br/>_01'); $objQuery->rollback(); return false; } } if (!file_exists($compile_dir)) { if (!mkdir($compile_dir)) { $this->arrErr['err'] = t('c_* Smarty compile folder could not be created.<br/>_01'); $objQuery->rollback(); return false; } } // 一時フォルダから保存ディレクトリへ移動 $objUpFile->moveTempFile(); // 解凍 if (!SC_Helper_FileManager_Ex::unpackFile($template_dir . '/' . $_FILES['template_file']['name'])) { $this->arrErr['err'] = t('c_* Decompression of the template file failed.<br/>_01'); $objQuery->rollback(); return false; } // ユーザデータの下のファイルをコピーする $from_dir = SMARTY_TEMPLATES_REALDIR . $template_code . '/_packages/'; $to_dir = USER_REALDIR . 'packages/' . $template_code . '/'; if (!SC_Utils_Ex::recursiveMkdir($to_dir)) { $this->arrErr['err'] = t('c_* T_ARG1 creation failed.<br/>_01', array('T_ARG1' => $to_dir)); $objQuery->rollback(); return false; } SC_Utils_Ex::sfCopyDir($from_dir, $to_dir); $objQuery->commit(); return true; }