Index: /branches/version-2_11-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php (revision 21356)
+++ /branches/version-2_11-dev/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php (revision 21357)
@@ -83,8 +83,4 @@
case 'edit':
$this->doEdit($objFormParam);
- // エラーがあるときは入力値の再表示
- if (!empty($this->arrErr)) {
- $this->arrForm = $objFormParam->getHashArray();
- }
break;
// 入力ボックスへ編集対象のカテゴリ名をセット
@@ -260,11 +256,46 @@
*/
function doEdit(&$objFormParam) {
+ $category_id = $objFormParam->getValue('category_id');
+
+ // 追加か
+ $add = strlen($category_id) === 0;
+
+ // エラーチェック
+ $this->arrErr = $this->checkError($objFormParam, $add);
+
+ // エラーがない場合、追加・更新処理
+ if (empty($this->arrErr)) {
+ $arrCategory = $objFormParam->getDbArray();
+
+ // 追加
+ if ($add) {
+ $this->registerCategory($arrCategory);
+ }
+ // 更新
+ else {
+ unset($arrCategory['category_id']);
+ $this->updateCategory($category_id, $arrCategory);
+ }
+ }
+ // エラーがある場合、入力値の再表示
+ else {
+ $this->arrForm = $objFormParam->getHashArray();
+ }
+ }
+
+ /**
+ * エラーチェック
+ *
+ * @param SC_FormParam $objFormParam
+ * @param boolean $add 追加か
+ * @return void
+ */
+ function checkError(&$objFormParam, $add) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 入力項目チェック
$arrErr = $objFormParam->checkError();
- if (count($arrErr) > 0) {
- $this->arrErr = $arrErr;
- return;
+ if (!empty($arrErr)) {
+ return $arrErr;
}
@@ -272,7 +303,4 @@
$parent_category_id = $objFormParam->getValue('parent_category_id');
$category_name = $objFormParam->getValue('category_name');
-
- // 追加か
- $add = strlen($category_id) === 0;
// 追加の場合に固有のチェック
@@ -282,12 +310,12 @@
$count = $objQuery->count("dtb_category", $where);
if ($count >= CATEGORY_MAX) {
- $this->arrErr['category_name'] = "※ カテゴリの登録最大数を超えました。
";
- return;
+ $arrErr['category_name'] = "※ カテゴリの登録最大数を超えました。
";
+ return $arrErr;
}
// 階層上限チェック
if ($this->isOverLevel($parent_category_id)) {
- $this->arrErr['category_name'] = "※ " . LEVEL_MAX . "階層以上の登録はできません。
";
- return;
+ $arrErr['category_name'] = "※ " . LEVEL_MAX . "階層以上の登録はできません。
";
+ return $arrErr;
}
}
@@ -305,19 +333,9 @@
$count = $objQuery->count('dtb_category', $where, $arrWhereVal);
if ($count > 0) {
- $this->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。
";
- return;
- }
-
- $arrCategory = $objFormParam->getDbArray();
-
- // 追加
- if ($add) {
- $this->registerCategory($arrCategory);
- }
- // 更新
- else {
- unset($arrCategory['category_id']);
- $this->updateCategory($category_id, $arrCategory);
- }
+ $arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。
";
+ return $arrErr;
+ }
+
+ return $arrErr;
}