コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
 /**
  * プラグインをアップロードする.
  * 
  * @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;
 }
コード例 #3
0
 /**
  * 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;
 }