tpl_mainpage = 'design/bloc.tpl'; $this->tpl_subno_edit = 'bloc'; $this->text_row = 13; $this->tpl_subno = 'bloc'; $this->tpl_mainno = 'design'; $this->tpl_maintitle = 'デザイン管理'; $this->tpl_subtitle = 'ブロック設定'; $masterData = new SC_DB_MasterData_Ex(); $this->arrDeviceType = $masterData->getMasterData('mtb_device_type'); } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { $objFormParam = new SC_FormParam_Ex(); $this->lfInitParam($objFormParam); $objFormParam->setParam($_REQUEST); $objFormParam->convParam(); $this->arrErr = $objFormParam->checkError(); $is_error = (!SC_Utils_Ex::isBlank($this->arrErr)); $this->bloc_id = $objFormParam->getValue('bloc_id'); $this->device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC); $objBloc = new SC_Helper_Bloc_Ex($this->device_type_id); switch ($this->getMode()) { // 登録/更新 case 'confirm': if (!$is_error) { $this->arrErr = $this->lfCheckError($objFormParam, $this->arrErr, $objBloc); if (SC_Utils_Ex::isBlank($this->arrErr)) { $result = $this->doRegister($objFormParam, $objBloc); if ($result !== false) { $arrPram = array( 'bloc_id' => $result, 'device_type_id' => $this->device_type_id, 'msg' => 'on', ); SC_Response_Ex::reload($arrPram, true); SC_Response_Ex::actionExit(); } } } break; // 削除 case 'delete': if (!$is_error) { if ($this->doDelete($objFormParam, $objBloc)) { $arrPram = array( 'device_type_id' => $this->device_type_id, 'msg' => 'on', ); SC_Response_Ex::reload($arrPram, true); SC_Response_Ex::actionExit(); } } break; default: if (isset($_GET['msg']) && $_GET['msg'] == 'on') { // 完了メッセージ $this->tpl_onload = "alert('登録が完了しました。');"; } break; } if (!$is_error) { // ブロック一覧を取得 $this->arrBlocList = $objBloc->getList(); // bloc_id が指定されている場合にはブロックデータの取得 if (!SC_Utils_Ex::isBlank($this->bloc_id)) { $arrBloc = $this->getBlocTemplate($this->bloc_id, $objBloc); $objFormParam->setParam($arrBloc); } } else { // 画面にエラー表示しないため, ログ出力 GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true)); } $this->tpl_subtitle = $this->arrDeviceType[$this->device_type_id] . '>' . $this->tpl_subtitle; $this->arrForm = $objFormParam->getFormParamList(); } /** * パラメーター情報の初期化 * * @param object $objFormParam SC_FormParamインスタンス * @return void */ function lfInitParam(&$objFormParam) { $objFormParam->addParam('ブロックID', 'bloc_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('端末種別ID', 'device_type_id', INT_LEN, 'n', array('NUM_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('ブロック名', 'bloc_name', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('ファイル名', 'filename', STEXT_LEN, 'a', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('ブロックデータ', 'bloc_html'); } /** * ブロックのテンプレートを取得する. * * @param integer $bloc_id ブロックID * @param SC_Helper_Bloc_Ex $objBloc SC_Helper_Bloc_Ex インスタンス * @return array ブロック情報の配列 */ function getBlocTemplate($bloc_id, SC_Helper_Bloc_Ex &$objBloc) { $arrBloc = $objBloc->getBloc($bloc_id); return $arrBloc; } /** * 登録を実行する. * * ファイルの作成に失敗した場合は, エラーメッセージを出力し, * データベースをロールバックする. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Helper_Bloc $objBloc SC_Helper_Bloc インスタンス * @return integer|boolean 登録が成功した場合, 登録したブロックID; * 失敗した場合 false */ function doRegister(&$objFormParam, SC_Helper_Bloc_Ex &$objBloc) { $arrParams = $objFormParam->getHashArray(); $result = $objBloc->save($arrParams); if (!$result) { $this->arrErr['err'] = '※ ブロックの書き込みに失敗しました
'; } return $result; } /** * 削除を実行する. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @param SC_Helper_Bloc $objBloc SC_Helper_Bloc インスタンス * @return boolean 登録が成功した場合 true; 失敗した場合 false */ function doDelete(&$objFormParam, SC_Helper_Bloc_Ex &$objBloc) { $arrParams = $objFormParam->getHashArray(); $result = $objBloc->delete($arrParams['bloc_id']); if (!$result) { $this->arrErr['err'] = '※ ブロックの削除に失敗しました
'; } return $result; } /** * エラーチェックを行う. * * @param SC_FormParam $objFormParam SC_FormParam インスタンス * @return array エラーメッセージの配列 */ function lfCheckError(&$objFormParam, &$arrErr, SC_Helper_Bloc_Ex &$objBloc) { $arrParams = $objFormParam->getHashArray(); $objErr = new SC_CheckError_Ex($arrParams); $objErr->arrErr =& $arrErr; $objErr->doFunc(array('ブロック名', 'bloc_name', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objErr->doFunc(array('ファイル名', 'filename', STEXT_LEN), array('EXIST_CHECK', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK','FILE_NAME_CHECK_BY_NOUPLOAD')); $where = 'filename = ?'; $arrValues = array($arrParams['filename']); // 変更の場合は自ブロックを除外 if (!SC_Utils_Ex::isBlank($arrParams['bloc_id'])) { $where .= ' AND bloc_id <> ?'; $arrValues[] = $arrParams['bloc_id']; } $arrBloc = $objBloc->getWhere($where, $arrValues); if (!SC_Utils_Ex::isBlank($arrBloc)) { $objErr->arrErr['filename'] = '※ 同じファイル名のデータが存在しています。別のファイル名を入力してください。
'; } return $objErr->arrErr; } }