/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力する. * * @param string $css_dir CSS ディレクトリ * @param string $css_name CSSファイル名 * @param string $old_css_name 旧CSSファイル名 * @param string $css_path CSSファイルの絶対パス * @param string $css_data 書き込みを行うデータ * @return boolean 登録が成功した場合 true; 失敗した場合 false */ public function doRegister($css_dir, $css_name, $old_css_name, $css_path, $css_data) { if (!SC_Utils_Ex::isBlank($old_css_name) && $old_css_name != $css_name) { if (!unlink($css_dir . $old_css_name . '.css')) { $this->arrErr['err'] = '※ 旧ファイルの削除に失敗しました<br />'; return false; } } if (!SC_Helper_FileManager_Ex::sfWriteFile($css_path, $css_data)) { $this->arrErr['err'] = '※ CSSの書き込みに失敗しました<br />'; return false; } return true; }
/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力し, * データベースをロールバックする. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Helper_PageLayout $objLayout SC_Helper_PageLayout インスタンス * @return integer|boolean 登録が成功した場合, 登録したブロックID; * 失敗した場合 false */ function doRegister(&$objFormParam, &$objLayout) { $arrParams = $objFormParam->getHashArray(); $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); // blod_id が空の場合は新規登録 $is_new = SC_Utils_Ex::isBlank($arrParams['bloc_id']); $bloc_dir = $objLayout->getTemplatePath($arrParams['device_type_id']) . BLOC_DIR; // 既存データの重複チェック if (!$is_new) { $arrExists = $objLayout->getBlocs($arrParams['device_type_id'], 'bloc_id = ?', array($arrParams['bloc_id'])); // 既存のファイルが存在する場合は削除しておく $exists_file = $bloc_dir . $arrExists[0]['filename'] . '.tpl'; if (file_exists($exists_file)) { unlink($exists_file); } } $table = 'dtb_bloc'; $arrValues = $objQuery->extractOnlyColsOf($table, $arrParams); $arrValues['tpl_path'] = $arrParams['filename'] . '.tpl'; $arrValues['update_date'] = 'CURRENT_TIMESTAMP'; // 新規登録 if ($is_new || SC_Utils_Ex::isBlank($arrExists)) { $objQuery->setOrder(''); $arrValues['bloc_id'] = 1 + $objQuery->max('bloc_id', $table, 'device_type_id = ?', array($arrValues['device_type_id'])); $arrValues['create_date'] = 'CURRENT_TIMESTAMP'; $objQuery->insert($table, $arrValues); } else { $objQuery->update($table, $arrValues, 'bloc_id = ? AND device_type_id = ?', array($arrValues['bloc_id'], $arrValues['device_type_id'])); } $bloc_path = $bloc_dir . $arrValues['tpl_path']; if (!SC_Helper_FileManager_Ex::sfWriteFile($bloc_path, $arrParams['bloc_html'])) { $this->arrErr['err'] = '※ ブロックの書き込みに失敗しました<br />'; $objQuery->rollback(); return false; } $objQuery->commit(); return $arrValues['bloc_id']; }
/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return boolean 登録が成功した場合 true; 失敗した場合 false */ public function doRegister(&$objFormParam) { $division = $objFormParam->getValue('division'); $contents = $objFormParam->getValue($division); $tpl_path = $this->getTemplatePath($objFormParam->getValue('device_type_id'), $division); if ($tpl_path === false || !SC_Helper_FileManager_Ex::sfWriteFile($tpl_path, $contents)) { $this->arrErr['err'] = '※ ファイルの書き込みに失敗しました<br />'; return false; } return true; }
/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力する. * * @param string $css_dir CSS ディレクトリ * @param string $css_name CSSファイル名 * @param string $old_css_name 旧CSSファイル名 * @param string $css_path CSSファイルの絶対パス * @param string $css_data 書き込みを行うデータ * @return boolean 登録が成功した場合 true; 失敗した場合 false */ function doRegister($css_dir, $css_name, $old_css_name, $css_path, $css_data) { $objFileManager = new SC_Helper_FileManager_Ex(); if (!SC_Utils_Ex::isBlank($old_css_name) && $old_css_name != $css_name) { if (!unlink($css_dir . $old_css_name . '.css')) { $this->arrErr['err'] = t('c_* Deletion of the old file failed<br />_01'); return false; } } if (!SC_Helper_FileManager_Ex::sfWriteFile($css_path, $css_data)) { $this->arrErr['err'] = t('c_* CSS writing failed<br />_01'); return false; } return true; }
/** * PHP ファイルを生成する. * * 既に同名の PHP ファイルが存在する場合は何もせず true を返す.(#831) * * @param string $filename フォームパラメーターの filename * @return boolean 作成に成功した場合 true */ function createPHPFile($filename) { $path = USER_REALDIR . $filename . '.php'; if (file_exists($path)) { return true; } if (file_exists(USER_DEF_PHP_REALFILE)) { $php_contents = file_get_contents(USER_DEF_PHP_REALFILE); } else { return false; } // require.php の PATH を書き換える $defaultStrings = "exit; // Don't rewrite. This line is rewritten by EC-CUBE."; $replaceStrings = "require_once '" . str_repeat('../', substr_count($filename, '/')) . "../require.php';"; $php_contents = str_replace($defaultStrings, $replaceStrings, $php_contents); return SC_Helper_FileManager_Ex::sfWriteFile($path, $php_contents); }
/** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return integer|boolean 登録が成功した場合 true; 失敗した場合 false */ function doRegister(&$objFormParam) { $division = $objFormParam->getValue('division'); $contents = $objFormParam->getValue($division); $tpl_path = $this->getTemplatePath($objFormParam->getValue('device_type_id'), $division); if ($tpl_path === false || !SC_Helper_FileManager_Ex::sfWriteFile($tpl_path, $contents)) { $this->arrErr['err'] = t('c_* File writing failed<br />_01'); return false; } return true; }