Changeset 15662
- Timestamp:
- 2007/09/10 18:20:44 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/pages/inquiry/LC_Page_Inquiry.php
r15532 r15662 14 14 * @package Page 15 15 * @author LOCKON CO.,LTD. 16 * @version $Id $16 * @version $Id:LC_Page_Inquiry.php 15532 2007-08-31 14:39:46Z nanasess $ 17 17 */ 18 18 class LC_Page_Inquiry extends LC_Page { … … 46 46 // 都道府県プルダウン用配列 47 47 $masterData = new SC_DB_MasterData_Ex(); 48 $this->arrPr fef = $masterData->getMasterData("mtb_pref",48 $this->arrPref = $masterData->getMasterData("mtb_pref", 49 49 array("pref_id", "pref_name", "rank")); 50 50 … … 69 69 70 70 71 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 71 72 72 73 if ( ( ! $_POST['mode'] == 'confirm' ) && ( ! is_numeric($_REQUEST['question_id']) ) ){ … … 85 86 unset($this->arrHidden['mode']); 86 87 87 if ( (int)$this->QUESTION["delete"] !== 0 ){ 88 if (isset($this->QUESTION["delete"]) 89 && (int)$this->QUESTION["delete"] !== 0 ){ 88 90 89 91 $objPage->tpl_mainpage = "inquiry/closed.tpl"; … … 111 113 $this->arrForm = $this->lfConvertParam($this->arrForm, $arrRegistColumn); 112 114 $this->arrErr = $this->lfErrorCheck($this->arrForm); 113 $this->arrErr = $this-> GGlfGetArrInput($this->arrErr);115 $this->arrErr = $this->lfGetArrInput($this->arrErr); 114 116 115 117 … … 153 155 154 156 $this->cnt_question = 6; 155 $this->arrActive = $arrActive;156 $this->arrQuestion = $arrQuestion;157 $this->arrActive = isset($arrActive) ? $arrActive : ""; 158 $this->arrQuestion = isset($arrQuestion) ? $arrQuestion : ""; 157 159 158 160 159 161 //---- ページ表示 160 $objView->_smarty->register_ function("lfArray_Search_key_Smarty","lfArray_Search_key_Smarty");162 $objView->_smarty->register_modifier("lfArray_Search_key_Smarty","lfArray_Search_key_Smarty"); 161 163 $objView->assignobj($this); 162 164 $objView->display($this->tpl_mainpage); … … 202 204 $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', "email", "email02") ,array("EQUAL_CHECK")); 203 205 204 $objErr->arrErr["option"] = array_map( "lfCheckNull", (array)$_POST['option'] );206 $objErr->arrErr["option"] = array_map(array($this, "lfCheckNull"), (array)$_POST['option'] ); 205 207 206 208 return $objErr->arrErr; … … 250 252 function lfGetArrInput( $arr ){ 251 253 // 値が入力された配列のみを返す 254 $return = array(); 252 255 253 256 if ( is_array($arr) ){ … … 256 259 $return[$key] = $val; 257 260 } elseif ( is_array( $val ) ) { 258 $data = lfGetArrInput ( $val );261 $data = $this->lfGetArrInput ( $val ); 259 262 if ( $data ){ 260 263 $return[$key] = $data; … … 290 293 */ 291 294 function lfCheckNull ( $val ){ 295 $return = array(); 292 296 293 297 if ( ( ! is_array( $val ) ) && ( strlen( $val ) < 1 ) ){ … … 295 299 } elseif ( is_array( $val ) ) { 296 300 foreach ($val as $line) { 297 $return = lfCheckNull( $line );301 $return = $this->lfCheckNull( $line ); 298 302 } 299 303 } -
branches/feature-module-update/data/class/util/SC_Utils.php
r15634 r15662 1277 1277 } 1278 1278 if(is_array($val)) { 1279 $arrDst = sfMakeHiddenArray($val, $arrDst, $keyname);1279 $arrDst = SC_Utils::sfMakeHiddenArray($val, $arrDst, $keyname); 1280 1280 } else { 1281 1281 $arrDst[$keyname] = $val; -
branches/feature-module-update/html/admin/contents/inquiry.php
r15532 r15662 5 5 * http://www.lockon.co.jp/ 6 6 */ 7 require_once("../require.php");8 7 9 require_once("../order/index_csv.php"); 8 // {{{ requires 9 require_once("../../require.php"); 10 require_once(CLASS_PATH . "page_extends/admin/contents/LC_Page_Admin_Contents_Inquiry_Ex.php"); 10 11 11 $arrCVSCOL = array( 12 13 ); 14 15 $arrCVSTITLE = array( 16 '回答ID', 17 '質問ID', 18 '回答日時', 19 '回答名', 20 '顧客名1', 21 '顧客名2', 22 '顧客名カナ1', 23 '顧客名カナ2', 24 '郵便番号1', 25 '郵便番号2', 26 '都道府県', 27 '住所1', 28 '住所2', 29 '電話番号1', 30 '電話番号2', 31 '電話番号3', 32 'メールアドレス', 33 '回答1', 34 '回答2', 35 '回答3', 36 '回答4', 37 '回答5', 38 '回答6' 39 ); 12 // }}} 13 // {{{ generate page 40 14 41 42 class LC_Page { 43 var $cnt_question; 44 45 var $ERROR; 46 var $ERROR_COLOR; 47 var $MESSAGE; 48 49 var $QUESTION_ID; 50 51 var $arrActive; 52 var $arrQuestion; 53 var $arrSession; 54 55 function LC_Page() { 56 $this->tpl_mainpage = 'contents/inquiry.tpl'; 57 $this->tpl_mainno = 'contents'; 58 $this->tpl_subnavi = 'contents/subnavi.tpl'; 59 $this->tpl_subno = "inquiry"; 60 $this->tpl_subtitle = 'アンケート管理'; 61 } 62 } 63 64 $conn = new SC_DBConn(); 65 $objPage = new LC_Page(); 66 $objView = new SC_AdminView(); 67 $objSess = new SC_Session(); 68 69 // 認証可否の判定 70 sfIsSuccess($objSess); 71 72 $arrActive = array( "0"=>"稼働", "1"=>"非稼働" ); 73 $arrQuestion = array( "0"=>"使用しない", "1"=>"テキストエリア", "2"=>"テキストボックス" 74 , "3"=>"チェックボックス", "4"=>"ラジオボタン" 75 ); 76 77 $sql = "SELECT *, cast(substring(create_date, 1, 10) as date) as disp_date FROM dtb_question WHERE del_flg = 0 ORDER BY question_id"; 78 $result = $conn->getAll($sql); 79 $objPage->list_data = $result; 80 81 82 if ( $_GET['mode'] == 'regist' ){ 83 84 for ( $i=0; $i<count($_POST["question"]); $i++ ) { 85 $_POST['question'][$i]['name'] = mb_convert_kana( trim ( $_POST['question'][$i]['name'] ), "K" ); 86 for ( $j=0; $j<count( $_POST['question'][$i]['option'] ); $j++ ){ 87 $_POST['question'][$i]['option'][$j] = mb_convert_kana( trim ( $_POST['question'][$i]['option'][$j] ) ); 88 } 89 } 90 91 $error = lfErrCheck(); 92 93 if ( ! $error ){ 94 95 if ( ! is_numeric($_POST['question_id']) ){ 96 $objQuery = new SC_Query(); 97 98 //登録 99 $value = serialize($_POST); 100 if (DB_TYPE == "pgsql") { 101 $question_id = $objQuery->nextval('dtb_question', 'question_id'); 102 } 103 104 $sql_val = array( $value, $_POST['title'] ,$question_id ); 105 $conn->query("INSERT INTO dtb_question ( question, question_name, question_id, create_date) VALUES (?, ?, ?, now())", $sql_val ); 106 $objPage->MESSAGE = "登録が完了しました"; 107 108 if (DB_TYPE == "mysql") { 109 $question_id = $objQuery->nextval('dtb_question', 'question_id'); 110 } 111 112 $objPage->QUESTION_ID = $question_id; 113 sfReload(); 114 } else { 115 //編集 116 $value = serialize($_POST); 117 $sql_val = array( $value, $_POST['title'] ,$_POST['question_id'] ); 118 $conn->query("UPDATE dtb_question SET question = ?, question_name = ? WHERE question_id = ?", $sql_val ); 119 $objPage->MESSAGE = "編集が完了しました"; 120 $objPage->QUESTION_ID = $_POST['question_id']; 121 sfReload(); 122 } 123 } else { 124 125 //エラー表示 126 $objPage->ERROR = $error; 127 $objPage->QUESTION_ID = $_REQUEST['question_id']; 128 $objPage->ERROR_COLOR = lfGetErrColor($error, ERR_COLOR); 129 130 } 131 } elseif ( ( $_GET['mode'] == 'delete' ) && ( sfCheckNumLength($_GET['question_id']) ) ){ 132 133 $sql = "UPDATE dtb_question SET del_flg = 1 WHERE question_id = ?"; 134 $conn->query( $sql, array( $_GET['question_id'] ) ); 135 sfReload(); 136 137 } elseif ( ( $_GET['mode'] == 'csv' ) && ( sfCheckNumLength($_GET['question_id']) ) ){ 138 139 $head = sfGetCSVList($arrCVSTITLE); 140 $list_data = $conn->getAll("SELECT result_id,question_id,question_date,question_name,name01,name02,kana01,kana02,zip01,zip02,pref,addr01,addr02,tel01,tel02,tel03,mail01,question01,question02,question03,question04,question05,question06 FROM dtb_question_result WHERE del_flg = 0 AND question_id = ? ORDER BY result_id ASC",array($_GET['question_id'])); 141 $data = ""; 142 for($i = 0; $i < count($list_data); $i++) { 143 // 各項目をCSV出力用に変換する。 144 $data .= lfMakeCSV($list_data[$i]); 145 } 146 // CSVを送信する 147 sfCSVDownload($head.$data); 148 exit; 149 150 } else { 151 152 if ( is_numeric($_GET['question_id']) ){ 153 154 $sql = "SELECT question FROM dtb_question WHERE question_id = ?"; 155 $result = $conn->getOne($sql, array($_GET['question_id'])); 156 157 if ( $result ){ 158 $_POST = unserialize( $result ); 159 $objPage->QUESTION_ID = $_GET['question_id']; 160 } 161 } 162 } 163 164 165 166 167 //各ページ共通 168 $objPage->cnt_question = 6; 169 $objPage->arrActive = $arrActive; 170 $objPage->arrQuestion = $arrQuestion; 171 172 173 //---- ページ表示 174 $objView->assignobj($objPage); 175 $objView->display(MAIN_FRAME); 176 177 178 // ------------ エラーチェック処理部 ------------ 179 180 function lfGetErrColor( $arr, $err_color ){ 181 182 foreach ( $arr as $key=>$val ) { 183 if ( is_string($val) && strlen($val) > 0 ){ 184 $return[$key] = $err_color; 185 } elseif ( is_array( $val ) ) { 186 $return[$key] = lfGetErrColor ( $val, $err_color); 187 } 188 } 189 return $return; 190 } 191 192 193 // ------------ エラーチェック処理部 ------------ 194 195 function lfErrCheck (){ 196 197 $objErr = new SC_CheckError(); 198 $errMsg = ""; 199 200 $objErr->doFunc( array( "稼働・非稼働", "active" ), array( "SELECT_CHECK" ) ); 201 202 $_POST["title"] = mb_convert_kana( trim ( $_POST["title"] ), "K" ); 203 $objErr->doFunc( array( "アンケート名", "title" ), array( "EXIST_CHECK" ) ); 204 205 $_POST["contents"] = mb_convert_kana( trim ( $_POST["contents"] ), "K" ); 206 $objErr->doFunc( array( "アンケート内容" ,"contents", "3000" ), array( "EXIST_CHECK", "MAX_LENGTH_CHECK" ) ); 207 208 209 if ( ! $_POST['question'][0]["name"] ){ 210 $objErr->arrErr['question'][0]["name"] = "1つめの質問名が入力されていません"; 211 } 212 213 // チェックボックス、ラジオボタンを選択した場合は最低1つ以上項目を記入させる。 214 for( $i = 0; $i < count( $_POST["question"] ); $i++ ) { 215 216 if ( $_POST["question"][$i]["kind"] ) { 217 if (strlen($_POST["question"][$i]["name"]) == 0) { 218 $objErr->arrErr["question"][$i]["name"] = "タイトルを入力して下さい。"; 219 } else if ( strlen($_POST["question"][$i]["name"]) > STEXT_LEN ) { 220 $objErr->arrErr["question"][$i]["name"] = "タイトルは". STEXT_LEN ."字以内で入力して下さい。"; 221 } 222 } 223 224 if( $_POST["question"][$i]["kind"] == 3 || $_POST["question"][$i]["kind"] == 4 ) { 225 226 $temp_data = array(); 227 for( $j = 0; $j < count( $_POST["question"][$i]["option"] ); $j++ ) { 228 229 // 項目間(テキストボックス)があいていたら詰めていく 230 if( strlen( $_POST["question"][$i]["option"][$j] ) > 0 ) $temp_data[] = mb_convert_kana( trim ( $_POST["question"][$i]["option"][$j] ), "asKVn" ); 231 232 } 233 234 $_POST["question"][$i]["option"] = $temp_data; 235 236 if( ( strlen( $_POST["question"][$i] ["option"][0] ) == 0 ) || ( strlen( $_POST["question"][$i] ["option"][0] ) > 0 237 && strlen( $_POST["question"][$i] ["option"][1] ) == 0 ) ) $objErr->arrErr["question"][$i]['kind'] = "下記の2つ以上の項目に記入してください。"; 238 } 239 } 240 241 return lfGetArrInput( $objErr->arrErr ); 242 243 } 244 245 246 function lfGetArrInput( $arr ){ 247 // 値が入力された配列のみを返す 248 249 if ( is_array($arr) ){ 250 foreach ( $arr as $key=>$val ) { 251 if ( is_string($val) && strlen($val) > 0 ){ 252 $return[$key] = $val; 253 } elseif ( is_array( $val ) ) { 254 $data = lfGetArrInput ( $val ); 255 if ( $data ){ 256 $return[$key] = $data; 257 } 258 } 259 } 260 } 261 return $return; 262 } 15 $objPage = new LC_Page_Admin_Contents_Inquiry_Ex(); 16 $objPage->init(); 17 $objPage->process(); 18 register_shutdown_function(array($objPage, "destroy")); 263 19 ?>
Note: See TracChangeset
for help on using the changeset viewer.