- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/html/admin/design/main_edit.php
r12157 r15078 19 19 $this->tpl_subno = "main_edit"; 20 20 $this->tpl_mainno = "design"; 21 $this->tpl_subtitle = ' ¥Ú¡¼¥¸¾ÜºÙÀßÄê';21 $this->tpl_subtitle = 'ページ詳細設定'; 22 22 } 23 23 } … … 25 25 $objView = new SC_AdminView(); 26 26 27 // ǧ¾Ú²ÄÈݤÎȽÄê27 // 認証可否の判定 28 28 $objSess = new SC_Session(); 29 29 sfIsSuccess($objSess); 30 30 31 // ¥Ú¡¼¥¸°ìÍ÷¤ò¼èÆÀ31 // ページ一覧を取得 32 32 $objPage->arrPageList = lfgetPageData(); 33 33 34 // ¥Ö¥í¥Ã¥¯ID¤ò¼èÆÀ34 // ブロックIDを取得 35 35 if (isset($_POST['page_id'])) { 36 36 $page_id = $_POST['page_id']; … … 43 43 $objPage->page_id = $page_id; 44 44 45 // ¥á¥Ã¥»¡¼¥¸É½¼¨45 // メッセージ表示 46 46 if ($_GET['msg'] == "on"){ 47 $objPage->tpl_onload="alert(' ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";48 } 49 50 // page_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤Î¼èÆÀ47 $objPage->tpl_onload="alert('登録が完了しました。');"; 48 } 49 50 // page_id が指定されている場合にはテンプレートデータの取得 51 51 if (is_numeric($page_id) and $page_id != '') { 52 52 $arrPageData = lfgetPageData(" page_id = ? " , array($page_id)); 53 53 54 54 if ($arrPageData[0]['tpl_dir'] === "") { 55 $objPage->arrErr['page_id_err'] = " ¢¨ »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤ÏÊÔ½¸¤Ç¤¤Þ¤»¤ó¡£";56 // ²èÌ̤Îɽ¼¨55 $objPage->arrErr['page_id_err'] = "※ 指定されたページは編集できません。"; 56 // 画面の表示 57 57 $objView->assignobj($objPage); 58 58 $objView->display(MAIN_FRAME); … … 60 60 } 61 61 62 // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ì¤ÐÆɤ߹þ¤à62 // テンプレートファイルが存在していれば読み込む 63 63 $tpl_file = HTML_PATH . $arrPageData[0]['tpl_dir'] . $arrPageData[0]['filename'] . ".tpl"; 64 64 if (file_exists($tpl_file)){ … … 66 66 } 67 67 68 // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃÍÊѹ¹68 // チェックボックスの値変更 69 69 $arrPageData[0]['header_chk'] = sfChangeCheckBox($arrPageData[0]['header_chk'], true); 70 70 $arrPageData[0]['footer_chk'] = sfChangeCheckBox($arrPageData[0]['footer_chk'], true); 71 71 72 // ¥Ç¥£¥ì¥¯¥È¥ê¤ò²èÌÌɽ¼¨ÍѤËÊÔ½¸72 // ディレクトリを画面表示用に編集 73 73 $arrPageData[0]['directory'] = str_replace( USER_DIR,'', $arrPageData[0]['php_dir']); 74 74 … … 76 76 } 77 77 78 // ¥×¥ì¥Ó¥å¡¼½èÍý78 // プレビュー処理 79 79 if ($_POST['mode'] == 'preview') { 80 80 … … 88 88 $arrPreData = lfgetPageData(" page_id = ? " , array($page_id)); 89 89 90 // tpl ¥Õ¥¡¥¤¥ë¤Îºï½ü90 // tplファイルの削除 91 91 $del_tpl = USER_PATH . "templates/" . $arrPreData[0]['filename'] . '.tpl'; 92 92 if (file_exists($del_tpl)){ … … 94 94 } 95 95 96 // DB ¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë96 // DBへデータを更新する 97 97 lfEntryPageData($_POST); 98 98 99 // TPL ¥Õ¥¡¥¤¥ëºîÀ®99 // TPLファイル作成 100 100 $cre_tpl = USER_PATH . "templates/" . $url . '.tpl'; 101 101 lfCreateFile($cre_tpl); 102 102 103 // blocposition ¤òºï½ü104 $objDBConn = new SC_DbConn; // DB Áàºî¥ª¥Ö¥¸¥§¥¯¥È103 // blocposition を削除 104 $objDBConn = new SC_DbConn; // DB操作オブジェクト 105 105 $sql = 'delete from dtb_blocposition where page_id = 0'; 106 106 $ret = $objDBConn->query($sql); 107 107 108 108 if ($page_id_old != "") { 109 // ÅÐÏ¿¥Ç¡¼¥¿¤ò¼èÆÀ109 // 登録データを取得 110 110 $sql = "SELECT 0, target_id, bloc_id, bloc_row FROM dtb_blocposition WHERE page_id = ?"; 111 111 $ret = $objDBConn->getAll($sql,array($page_id_old)); … … 113 113 if (count($ret) > 0) { 114 114 115 // blocposition ¤òÊ£À½115 // blocposition を複製 116 116 $sql = " insert into dtb_blocposition ("; 117 117 $sql .= " page_id,"; … … 121 121 $sql .= " )values(?, ?, ?, ?)"; 122 122 123 // ¼èÆÀ·ï¿ôʸINSERT¼Â¹Ô123 // 取得件数文INSERT実行 124 124 foreach($ret as $key => $val){ 125 125 $ret = $objDBConn->query($sql,$val); … … 134 134 } 135 135 136 // ¥Ç¡¼¥¿ÅÐÏ¿½èÍý136 // データ登録処理 137 137 if ($_POST['mode'] == 'confirm') { 138 138 139 // ¥¨¥é¡¼¥Á¥§¥Ã¥¯139 // エラーチェック 140 140 $objPage->arrErr = lfErrorCheck($_POST); 141 141 142 // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¹¹¿·½èÍý¤ò¹Ô¤¦142 // エラーがなければ更新処理を行う 143 143 if (count($objPage->arrErr) == 0) { 144 144 145 // DB ¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë145 // DBへデータを更新する 146 146 lfEntryPageData($_POST); 147 147 148 // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü¤·¡¢PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë148 // ベースデータでなければファイルを削除し、PHPファイルを作成する 149 149 if (!lfCheckBaseData($page_id)) { 150 // ¥Õ¥¡¥¤¥ëºï½ü150 // ファイル削除 151 151 lfDelFile($arrPageData[0]); 152 152 153 // PHP ¥Õ¥¡¥¤¥ëºîÀ®153 // PHPファイル作成 154 154 $cre_php = USER_PATH . $_POST['url'] . ".php"; 155 155 lfCreatePHPFile($cre_php); 156 156 } 157 157 158 // TPL ¥Õ¥¡¥¤¥ëºîÀ®158 // TPLファイル作成 159 159 $cre_tpl = dirname(USER_PATH . "templates/" . $_POST['url']) . "/" . basename($_POST['url']) . '.tpl'; 160 160 161 161 lfCreateFile($cre_tpl); 162 162 163 // ÊÔ½¸²Äǽ¥Ú¡¼¥¸¤Î¾ì¹ç¤Ë¤Î¤ß½èÍý¤ò¹Ô¤¦163 // 編集可能ページの場合にのみ処理を行う 164 164 if ($arrPageData[0]['edit_flg'] != 2) { 165 // ¿·µ¬ºîÀ®¤·¤¿¾ì¹ç¤Î¤¿¤á¤Ë²þ¤Ë¥Ú¡¼¥¸ID¤ò¼èÆÀ¤¹¤ë165 // 新規作成した場合のために改にページIDを取得する 166 166 $arrPageData = lfgetPageData(" url = ? " , array(USER_URL.$_POST['url'].".php")); 167 167 $page_id = $arrPageData[0]['page_id']; … … 170 170 header("location: ./main_edit.php?page_id=$page_id&msg=on"); 171 171 }else{ 172 // ¥¨¥é¡¼¤¬¤¢¤ì¤ÐÆþÎÏ»þ¤Î¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë172 // エラーがあれば入力時のデータを表示する 173 173 $objPage->arrPageData = $_POST; 174 174 $objPage->arrPageData['header_chk'] = sfChangeCheckBox(sfChangeCheckBox($_POST['header_chk']), true); … … 179 179 } 180 180 181 // ¥Ç¡¼¥¿ºï½ü½èÍý ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü181 // データ削除処理 ベースデータでなければファイルを削除 182 182 if ($_POST['mode'] == 'delete' and !lfCheckBaseData($page_id)) { 183 183 lfDelPageData($_POST['page_id']); 184 184 } 185 185 186 // ²èÌ̤Îɽ¼¨186 // 画面の表示 187 187 $objView->assignobj($objPage); 188 188 $objView->display(MAIN_FRAME); … … 190 190 //--------------------------------------------------------------------------------------------------------------------------------------------------------- 191 191 /************************************************************************************************************** 192 * ´Ø¿ô̾ ¡§lfEntryPageData193 * ½èÍýÆâÍÆ ¡§¥Ö¥í¥Ã¥¯¾ðÊó¤ò¹¹¿·¤¹¤ë194 * °ú¿ô1 ¡§$arrData ¥¥¥ ¹¹¿·¥Ç¡¼¥¿195 * Ìá¤êÃÍ ¡§¹¹¿··ë²Ì192 * 関数名 :lfEntryPageData 193 * 処理内容 :ブロック情報を更新する 194 * 引数1 :$arrData ・・・ 更新データ 195 * 戻り値 :更新結果 196 196 **************************************************************************************************************/ 197 197 function lfEntryPageData($arrData){ 198 $objDBConn = new SC_DbConn; // DB Áàºî¥ª¥Ö¥¸¥§¥¯¥È199 $sql = ""; // ¥Ç¡¼¥¿¹¹¿·SQLÀ¸À®ÍÑ200 $ret = ""; // ¥Ç¡¼¥¿¹¹¿··ë²Ì³ÊǼÍÑ201 $arrUpdData = array(); // ¹¹¿·¥Ç¡¼¥¿À¸À®ÍÑ202 $arrChk = array(); // ÇÓ¾¥Á¥§¥Ã¥¯ÍÑ203 204 // ¹¹¿·¥Ç¡¼¥¿À¸À®198 $objDBConn = new SC_DbConn; // DB操作オブジェクト 199 $sql = ""; // データ更新SQL生成用 200 $ret = ""; // データ更新結果格納用 201 $arrUpdData = array(); // 更新データ生成用 202 $arrChk = array(); // 排他チェック用 203 204 // 更新データ生成 205 205 $arrUpdData = lfGetUpdData($arrData); 206 206 207 // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦207 // データが存在しているかチェックを行う 208 208 if($arrData['page_id'] !== ''){ 209 209 $arrChk = lfgetPageData(" page_id = ?", array($arrData['page_id'])); 210 210 } 211 211 212 // page_id ¤¬¶õ ¼ã¤·¤¯¤Ï ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤ÏINSERT¤ò¹Ô¤¦212 // page_id が空 若しくは データが存在していない場合にはINSERTを行う 213 213 if ($arrData['page_id'] === '' or !isset($arrChk[0])) { 214 // SQL À¸À®214 // SQL生成 215 215 $sql = " INSERT INTO dtb_pagelayout "; 216 216 $sql .= " ( "; … … 228 228 $sql .= " "; 229 229 }else{ 230 // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤ë¾ì¹ç¤Ë¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦231 // SQL À¸À®230 // データが存在してる場合にはアップデートを行う 231 // SQL生成 232 232 $sql = " UPDATE dtb_pagelayout "; 233 233 $sql .= " SET"; … … 244 244 $sql .= " "; 245 245 246 // ¹¹¿·¥Ç¡¼¥¿¤Ë¥Ö¥í¥Ã¥¯ID¤òÄɲÃ246 // 更新データにブロックIDを追加 247 247 array_push($arrUpdData, $arrData['page_id']); 248 248 } 249 249 250 // SQL ¼Â¹Ô250 // SQL実行 251 251 $ret = $objDBConn->query($sql,$arrUpdData); 252 252 … … 255 255 256 256 /************************************************************************************************************** 257 * ´Ø¿ô̾ ¡§lfGetUpdData258 * ½èÍýÆâÍÆ ¡§DB¤Ø¹¹¿·¤ò¹Ô¤¦¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë259 * °ú¿ô1 ¡§$arrData ¥¥¥ ¹¹¿·¥Ç¡¼¥¿260 * Ìá¤êÃÍ ¡§¹¹¿·¥Ç¡¼¥¿257 * 関数名 :lfGetUpdData 258 * 処理内容 :DBへ更新を行うデータを生成する 259 * 引数1 :$arrData ・・・ 更新データ 260 * 戻り値 :更新データ 261 261 **************************************************************************************************************/ 262 262 function lfGetUpdData($arrData){ 263 263 264 // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Î¾ì¹ç¤Ë¤ÏÊѹ¹¤·¤Ê¤¤¡£264 // ベースデータの場合には変更しない。 265 265 if (lfCheckBaseData($arrData['page_id'])) { 266 266 $arrPageData = lfgetPageData( ' page_id = ? ' , array($arrData['page_id'])); … … 279 279 } 280 280 281 // ¹¹¿·¥Ç¡¼¥¿ÇÛÎó¤ÎºîÀ®281 // 更新データ配列の作成 282 282 $arrUpdData = array( 283 $name // ̾¾Î283 $name // 名称 284 284 ,$url // URL 285 ,$php_dir // PHP ¥Ç¥£¥ì¥¯¥È¥ê286 ,$tpl_dir // TPL ¥Ç¥£¥ì¥¯¥È¥ê287 ,$filename // ¥Õ¥¡¥¤¥ë̾288 ,sfChangeCheckBox($arrData['header_chk']) // ¥Ø¥Ã¥À¡¼»ÈÍÑ289 ,sfChangeCheckBox($arrData['footer_chk']) // ¥Õ¥Ã¥¿¡¼»ÈÍÑ290 ,$_SERVER['HTTP_REFERER'] // ¹¹¿·URL285 ,$php_dir // PHPディレクトリ 286 ,$tpl_dir // TPLディレクトリ 287 ,$filename // ファイル名 288 ,sfChangeCheckBox($arrData['header_chk']) // ヘッダー使用 289 ,sfChangeCheckBox($arrData['footer_chk']) // フッター使用 290 ,$_SERVER['HTTP_REFERER'] // 更新URL 291 291 ); 292 292 … … 295 295 296 296 /************************************************************************************************************** 297 * ´Ø¿ô̾ ¡§lfErrorCheck298 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦299 * °ú¿ô1 ¡§$arrData ¥¥¥ ÆþÎϥǡ¼¥¿300 * Ìá¤êÃÍ ¡§¥¨¥é¡¼¾ðÊó297 * 関数名 :lfErrorCheck 298 * 処理内容 :入力項目のエラーチェックを行う 299 * 引数1 :$arrData ・・・ 入力データ 300 * 戻り値 :エラー情報 301 301 **************************************************************************************************************/ 302 302 function lfErrorCheck($array) { … … 304 304 305 305 $objErr = new SC_CheckError($array); 306 $objErr->doFunc(array(" ̾¾Î", "page_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));306 $objErr->doFunc(array("名称", "page_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 307 307 $objErr->doFunc(array("URL", "url", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); 308 308 309 // URL ¥Á¥§¥Ã¥¯309 // URLチェック 310 310 if (substr(strrev(trim($array['url'])),0,1) == "/") { 311 $objErr->arrErr['url'] = " ¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";311 $objErr->arrErr['url'] = "※ URLを正しく入力してください。<br />"; 312 312 } 313 313 314 314 $check_url = USER_URL . $array['url'] . ".php"; 315 315 if( strlen($array['url']) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9_~=&\?\.\/-])+$", $check_url ) ) { 316 $objErr->arrErr['url'] = " ¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";317 } 318 319 // Ʊ°ì¤ÎURL¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼316 $objErr->arrErr['url'] = "※ URLを正しく入力してください。<br />"; 317 } 318 319 // 同一のURLが存在している場合にはエラー 320 320 if(!isset($objErr->arrErr['url']) and $array['url'] !== ''){ 321 321 $arrChk = lfgetPageData(" url = ? " , array(USER_URL . $array['url'].".php")); 322 322 323 323 if (count($arrChk[0]) >= 1 and $arrChk[0]['page_id'] != $array['page_id']) { 324 $objErr->arrErr['url'] = ' ¢¨ Ʊ¤¸URL¤Î¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡£Ê̤ÎURL¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£';324 $objErr->arrErr['url'] = '※ 同じURLのデータが存在しています。別のURLを付けてください。'; 325 325 } 326 326 } … … 330 330 331 331 /************************************************************************************************************** 332 * ´Ø¿ô̾ ¡§lfCreateFile333 * ½èÍýÆâÍÆ ¡§¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë334 * °ú¿ô1 ¡§$path¥¥¥¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹335 * Ìá¤êÃÍ ¡§¤Ê¤·332 * 関数名 :lfCreateFile 333 * 処理内容 :ファイルを作成する 334 * 引数1 :$path・・・テンプレートファイルのパス 335 * 戻り値 :なし 336 336 **************************************************************************************************************/ 337 337 function lfCreateFile($path){ 338 338 339 // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë339 // ディレクトリが存在していなければ作成する 340 340 if (!is_dir(dirname($path))) { 341 341 mkdir(dirname($path)); 342 342 } 343 343 344 // ¥Õ¥¡¥¤¥ëºîÀ®344 // ファイル作成 345 345 $fp = fopen($path,"w"); 346 346 fwrite($fp, $_POST['tpl_data']); … … 349 349 350 350 /************************************************************************************************************** 351 * ´Ø¿ô̾ ¡§lfCreatePHPFile352 * ½èÍýÆâÍÆ ¡§PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë353 * °ú¿ô1 ¡§$path¥¥¥PHP¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹354 * Ìá¤êÃÍ ¡§¤Ê¤·351 * 関数名 :lfCreatePHPFile 352 * 処理内容 :PHPファイルを作成する 353 * 引数1 :$path・・・PHPファイルのパス 354 * 戻り値 :なし 355 355 **************************************************************************************************************/ 356 356 function lfCreatePHPFile($path){ 357 357 358 // php ÊݸÀè¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë358 // php保存先ディレクトリが存在していなければ作成する 359 359 if (!is_dir(dirname($path))) { 360 360 mkdir(dirname($path)); 361 361 } 362 362 363 // ¥Ù¡¼¥¹¤È¤Ê¤ëPHP¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß363 // ベースとなるPHPファイルの読み込み 364 364 if (file_exists(USER_DEF_PHP)){ 365 365 $php_data = file_get_contents(USER_DEF_PHP); 366 366 } 367 367 368 // require.php ¤Î¾ì½ê¤ò½ñ¤´¹¤¨¤ë368 // require.phpの場所を書き換える 369 369 $php_data = str_replace("###require###", HTML_PATH . "require.php", $php_data); 370 370 371 // php ¥Õ¥¡¥¤¥ë¤ÎºîÀ®371 // phpファイルの作成 372 372 $fp = fopen($path,"w"); 373 373 fwrite($fp, $php_data);
Note: See TracChangeset
for help on using the changeset viewer.