[Svn-src-all:1438] [version-2_5-dev 20330] #974 [管理画面]システム設定 マスターデータコミット
homan
admin @ mail.ec-cube.net
2011年 2月 23日 (水) 00:11:00 JST
Subversion committed to /home/svn/open 20330
http://svn.ec-cube.net/open_trac/changeset/20330
┌────────────────────────────┐
│更新者 : homan │
│更新日時: 2011-02-23 00:11:00 +0900 (水, 23 2月 2011)│
└────────────────────────────┘
Log:
--------------------------------------------------------
#974 [管理画面]システム設定 マスターデータコミット
Changed: [U:修正,A:追加,D:削除]
--------------------------------------------------------
U branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php
変更: branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php 2011-02-22 12:32:19 UTC (rev 20329)
+++ branches/version-2_5-dev/data/class/pages/admin/system/LC_Page_Admin_System_Masterdata.php 2011-02-22 15:11:00 UTC (rev 20330)
@@ -76,35 +76,18 @@
switch ($this->getMode()) {
case "edit":
// POST 文字列の妥当性チェック
- $this->checkMasterDataName();
- $this->errorMessage = $this->checkUniqueID();
+ $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName);
+ $this->errorMessage = $this->checkUniqueID($_POST);
if (empty($this->errorMessage)) {
// 取得したデータからマスタデータを生成
- $arrData = array();
- foreach ($_POST['id'] as $key => $val) {
-
- // ID が空のデータは生成しない
- if ($val != "") {
- $arrData[$val] = $_POST['name'][$key];
- }
- }
-
- // マスタデータを更新
- $masterData->objQuery = new SC_Query();
- $masterData->objQuery->begin();
- $masterData->deleteMasterData($this->masterDataName, false);
- // TODO カラム名はメタデータから取得した方が良い
- $masterData->registMasterData($this->masterDataName,
- array("id", "name", "rank"),
- $arrData, false);
- $masterData->objQuery->commit();
+ $this->registMasterData($_POST, $masterData, $this->masterDataName);
$this->tpl_onload = "window.alert('マスタデータの設定が完了しました。');";
}
case "show":
// POST 文字列の妥当性チェック
- $this->checkMasterDataName();
+ $this->masterDataName = $this->checkMasterDataName($_POST, $this->arrMasterDataName);
// DB からマスタデータを取得
$this->arrMasterData =
@@ -128,16 +111,19 @@
* マスタデータ名チェックを行う
*
* @access private
- * @return void
+ * @param array $_POST値
+ * @param array $arrMasterDataName マスターデータテーブル名のリスト
+ * @return string $master_data_name 選択しているマスターデータのテーブル名
*/
- function checkMasterDataName() {
+ function checkMasterDataName(&$arrParams, &$arrMasterDataName) {
- if (in_array($_POST['master_data_name'], $this->arrMasterDataName)) {
- $this->masterDataName = $_POST['master_data_name'];
- return true;
+ if (in_array($arrParams['master_data_name'], $arrMasterDataName)) {
+ $master_data_name = $arrParams['master_data_name'];
+ return $master_data_name;
} else {
SC_Utils_Ex::sfDispeError("");
}
+
}
/**
@@ -171,9 +157,9 @@
* @access private
* @return void|string エラーが発生した場合はエラーメッセージを返す.
*/
- function checkUniqueID() {
+ function checkUniqueID(&$arrParams) {
- $arrId = $_POST['id'];
+ $arrId = $arrParams['id'];
for ($i = 0; $i < count($arrId); $i++) {
$id = $arrId[$i];
@@ -187,5 +173,38 @@
}
}
}
+
+
+ /**
+ * マスターデータの登録.
+ *
+ * @access private{
+ * @param array $arrParams $_POST値
+ * @param object $masterData SC_DB_MasterData_Ex()
+ * @param string $master_data_name 登録対象のマスターデータのテーブル名
+ * @return void
+ */
+ function registMasterData($arrParams, &$masterData, $master_data_name) {
+
+ $arrTmp = array();
+ foreach ($arrParams['id'] as $key => $val) {
+
+ // ID が空のデータは生成しない
+ if ($val != "") {
+ $arrTmp[$val] = $arrParams['name'][$key];
+ }
+ }
+
+ // マスタデータを更新
+ $masterData->objQuery =& SC_Query::getSingletonInstance();
+ $masterData->objQuery->begin();
+ $masterData->deleteMasterData($master_data_name, false);
+ // TODO カラム名はメタデータから取得した方が良い
+ $masterData->registMasterData($master_data_name,
+ array("id", "name", "rank"),
+ $arrTmp, false);
+ $masterData->objQuery->commit();
+
+ }
}
?>
Svn-src-all メーリングリストの案内