tpl_mainpage = 'products/maker.tpl'; $this->tpl_subno = 'maker'; $this->tpl_maintitle = '商品管理'; $this->tpl_subtitle = 'メーカー登録'; $this->tpl_mainno = 'products'; } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { $objMaker = new SC_Helper_Maker_Ex(); $objFormParam = new SC_FormParam_Ex(); // パラメーター情報の初期化 $this->lfInitParam($objFormParam); // POST値をセット $objFormParam->setParam($_POST); // POST値の入力文字変換 $objFormParam->convParam(); //maker_idを変数にセット $maker_id = $objFormParam->getValue('maker_id'); // モードによる処理切り替え switch ($this->getMode()) { // 編集処理 case 'edit': // エラーチェック $this->arrErr = $this->lfCheckError($objFormParam, $objMaker); if (!SC_Utils_Ex::isBlank($this->arrErr['maker_id'])) { trigger_error('', E_USER_ERROR); return; } if (count($this->arrErr) <= 0) { // POST値の引き継ぎ $arrParam = $objFormParam->getHashArray(); // 登録実行 $res_maker_id = $this->doRegist($maker_id, $arrParam, $objMaker); if ($res_maker_id !== FALSE) { // 完了メッセージ $maker_id = $res_maker_id; $this->tpl_onload = "alert('登録が完了しました。');"; } } // POSTデータを引き継ぐ $this->tpl_maker_id = $maker_id; break; // 編集前処理 case 'pre_edit': $maker = $objMaker->getMaker($maker_id); $objFormParam->setParam($maker); // POSTデータを引き継ぐ $this->tpl_maker_id = $maker_id; break; // メーカー順変更 case 'up': $objMaker->rankUp($maker_id); // リロード SC_Response_Ex::reload(); break; case 'down': $objMaker->rankDown($maker_id); // リロード SC_Response_Ex::reload(); break; // 削除 case 'delete': $objMaker->delete($maker_id); // リロード SC_Response_Ex::reload(); break; default: break; } $this->arrForm = $objFormParam->getFormParamList(); // メーカー情報読み込み $this->arrMaker = $objMaker->getList(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } /** * パラメーター情報の初期化を行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return void */ function lfInitParam(&$objFormParam) { $objFormParam->addParam('メーカーID', 'maker_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('メーカー名', 'name', SMTEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK')); } /** * 登録処理を実行. * * @param integer $maker_id * @param array $sqlval * @param object $objMaker * @return multiple */ function doRegist($maker_id, $sqlval, SC_Helper_Maker_Ex $objMaker) { $sqlval['maker_id'] = $maker_id; $sqlval['creator_id'] = $_SESSION['member_id']; return $objMaker->saveMaker($sqlval); } /** * 入力エラーチェック. * * @return array $objErr->arrErr エラー内容 */ function lfCheckError(&$objFormParam, SC_Helper_Maker_Ex &$objMaker) { $arrErr = $objFormParam->checkError(); $arrForm = $objFormParam->getHashArray(); // maker_id の正当性チェック if (!empty($arrForm['maker_id'])) { if (!SC_Utils_Ex::sfIsInt($arrForm['maker_id']) || SC_Utils_Ex::sfIsZeroFilling($arrForm['maker_id']) || !$objMaker->getMaker($arrForm['maker_id']) ) { // maker_idが指定されていて、且つその値が不正と思われる場合はエラー $arrErr['maker_id'] = '※ メーカーIDが不正です
'; } } if (!isset($arrErr['name'])) { $arrMaker = $objMaker->getByName($arrForm['name']); // 編集中のレコード以外に同じ名称が存在する場合 if ( !SC_Utils_Ex::isBlank($arrMaker) && $arrMaker['maker_id'] != $arrForm['maker_id'] && $arrMaker['name'] == $arrForm['name'] ) { $arrErr['name'] = '※ 既に同じ内容の登録が存在します。
'; } } return $arrErr; } }