Changeset 11729 for branches/comu/html/admin/contents/index.php
- Timestamp:
- 2007/03/10 21:35:02 (19 years ago)
- File:
-
- 1 edited
-
branches/comu/html/admin/contents/index.php (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/comu/html/admin/contents/index.php
r15 r11729 7 7 require_once("../require.php"); 8 8 9 //---- ǧ¾Ú²ÄÈݤÎȽÄê9 //---- 認証可否の判定 10 10 $objSess = new SC_Session(); 11 11 sfIsSuccess($objSess); 12 12 13 //---- ¥Ú¡¼¥¸É½¼¨¥¯¥é¥¹13 //---- ページ表示クラス 14 14 class LC_Page { 15 15 … … 40 40 $this->selected_month = date("n"); 41 41 $this->selected_day = date("j"); 42 $this->tpl_subtitle = ' ¿·Ãå¾ðÊó´ÉÍý';43 } 44 } 45 46 47 //---- ¥Ú¡¼¥¸½é´üÀßÄê42 $this->tpl_subtitle = '新着情報管理'; 43 } 44 } 45 46 47 //---- ページ初期設定 48 48 $conn = new SC_DbConn(); 49 49 $objPage = new LC_Page(); … … 51 51 $objDate = new SC_Date(ADMIN_NEWS_STARTYEAR); 52 52 53 //---- ¡¡ÆüÉÕ¥×¥ë¥À¥¦¥óÀßÄê53 //---- 日付プルダウン設定 54 54 $objPage->arrYear = $objDate->getYear(); 55 55 $objPage->arrMonth = $objDate->getMonth(); 56 56 $objPage->arrDay = $objDate->getDay(); 57 57 58 //---- ¡¡¿·µ¬ÅÐÏ¿/ÊÔ½¸ÅÐÏ¿58 //---- 新規登録/編集登録 59 59 if ( $_POST['mode'] == 'regist'){ 60 60 $_POST = lfConvData($_POST); 61 61 62 if ($objPage->arrErr = lfErrorCheck()) { // ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯62 if ($objPage->arrErr = lfErrorCheck()) { // 入力エラーのチェック 63 63 foreach($_POST as $key => $val) { 64 64 $objPage->$key = $val; … … 76 76 $registDate = $_POST['year'] ."/". $_POST['month'] ."/". $_POST['day']; 77 77 78 //-- ÊÔ½¸ÅÐÏ¿78 //-- 編集登録 79 79 if (strlen($_POST["news_id"]) > 0 && is_numeric($_POST["news_id"])) { 80 80 81 81 lfNewsUpdate(); 82 82 83 //-- ¡¡¿·µ¬ÅÐÏ¿83 //-- 新規登録 84 84 } else { 85 85 lfNewsInsert(); 86 86 } 87 87 88 $objPage->tpl_onload = "window.alert(' ÊÔ½¸¤¬´°Î»¤·¤Þ¤·¤¿');";89 } 90 } 91 92 //---- ¡¡ÊÔ½¸¥Ç¡¼¥¿¼èÆÀ88 $objPage->tpl_onload = "window.alert('編集が完了しました');"; 89 } 90 } 91 92 //---- 編集データ取得 93 93 if ($_POST["mode"] == "search" && is_numeric($_POST["news_id"])) { 94 94 $sql = "SELECT *, cast(substring(news_date,1, 10) as date) as cast_news_date FROM dtb_news WHERE news_id = ? "; … … 106 106 } 107 107 108 //---- ¡¡¥Ç¡¼¥¿ºï½ü108 //---- データ削除 109 109 if ( $_POST['mode'] == 'delete' && is_numeric($_POST["news_id"])) { 110 110 111 // rank ¤ò¼èÆÀ111 // rankを取得 112 112 $pre_rank = $conn->getone(" SELECT rank FROM dtb_news WHERE del_flg = 0 AND news_id = ? ", array( $_POST['news_id'] )); 113 113 114 //-- ºï½ü¤¹¤ë¿·Ãå¾ðÊó°Ê¹ß¤Îrank¤ò1¤Ä·«¤ê¾å¤²¤Æ¤ª¤¯114 //-- 削除する新着情報以降のrankを1つ繰り上げておく 115 115 $conn->query("BEGIN"); 116 116 $sql = "UPDATE dtb_news SET rank = rank - 1, update_date = NOW() WHERE del_flg = 0 AND rank > ?"; … … 121 121 $conn->query("COMMIT"); 122 122 123 sfReload(); // ¼«Ê¬¤Ë¥ê¥À¥¤¥ì¥¯¥È¡ÊºÆÆÉ¹þ¤Ë¤è¤ë¸íưºîËɻߡË124 } 125 126 //---- ¡¡É½¼¨½ç°Ì°Üư123 sfReload(); //自分にリダイレクト(再読込による誤動作防止) 124 } 125 126 //---- 表示順位移動 127 127 128 128 if ( $_POST['mode'] == 'move' && is_numeric($_POST["news_id"]) ) { … … 136 136 } 137 137 138 //---- ¡¡»ØÄêɽ¼¨½ç°Ì°Üư138 //---- 指定表示順位移動 139 139 if ($_POST['mode'] == 'moveRankSet') { 140 140 $key = "pos-".$_POST['news_id']; … … 147 147 148 148 149 //---- Á´¥Ç¡¼¥¿¼èÆÀ149 //---- 全データ取得 150 150 $sql = "SELECT *, cast(substring(news_date,1, 10) as date) as cast_news_date FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC"; 151 151 $objPage->list_data = $conn->getAll($sql); 152 152 $objPage->line_max = count($objPage->list_data); 153 $sql = "SELECT MAX(rank) FROM dtb_news WHERE del_flg = '0'"; // rank ¤ÎºÇÂçÃͤò¼èÆÀ153 $sql = "SELECT MAX(rank) FROM dtb_news WHERE del_flg = '0'"; // rankの最大値を取得 154 154 $objPage->max_rank = $conn->getOne($sql); 155 155 156 156 $objPage->arrForm['news_select'] = 0; 157 157 158 //---- ¡¡¥Ú¡¼¥¸É½¼¨158 //---- ページ表示 159 159 $objView->assignobj($objPage); 160 160 $objView->display(MAIN_FRAME); … … 163 163 //function --------------------------------------------------------------------------------------------- 164 164 165 //---- ÆþÎÏʸ»úÎó¤òÇÛÎó¤Ø165 //---- 入力文字列を配列へ 166 166 function lfConvData( $data ){ 167 167 168 // ʸ»úÎó¤ÎÊÑ´¹¡Êmb_convert_kana¤ÎÊÑ´¹¥ª¥×¥·¥ç¥ó¡Ë168 // 文字列の変換(mb_convert_kanaの変換オプション) 169 169 $arrFlag = array( 170 170 "year" => "n" … … 186 186 } 187 187 188 //---- ¡¡»ØÄê½ç°Ì¤Ø°Üư188 //---- 指定順位へ移動 189 189 function sf_setRankPosition($conn, $tableName, $keyIdColumn, $keyId, $position) { 190 190 191 // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë191 // 自身のランクを取得する 192 192 $conn->query("BEGIN"); 193 193 $rank = $conn->getOne("SELECT rank FROM $tableName WHERE $keyIdColumn = ?", array($keyId)); 194 194 195 if( $position > $rank ) $term = "- 1"; // Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤êÂ礤¤¾ì¹ç196 if( $position < $rank ) $term = "+ 1"; // Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤ê¾®¤µ¤¤¾ì¹ç197 198 //-- ¡¡»ØÄꤷ¤¿½ç°Ì¤Î¾¦Éʤ«¤é°Üư¤µ¤»¤ë¾¦ÉʤޤǤÎrank¤ò£±¤Ä¤º¤é¤¹195 if( $position > $rank ) $term = "- 1"; //入れ替え先の順位が入れ換え元の順位より大きい場合 196 if( $position < $rank ) $term = "+ 1"; //入れ替え先の順位が入れ換え元の順位より小さい場合 197 198 //-- 指定した順位の商品から移動させる商品までのrankを1つずらす 199 199 $sql = "UPDATE $tableName SET rank = rank $term, update_date = NOW() WHERE rank BETWEEN ? AND ? AND del_flg = 0"; 200 200 if( $position > $rank ) $conn->query( $sql, array( $rank + 1, $position ) ); 201 201 if( $position < $rank ) $conn->query( $sql, array( $position, $rank - 1 ) ); 202 202 203 //-- »ØÄꤷ¤¿½ç°Ì¤Ørank¤ò½ñ¤´¹¤¨¤ë¡£203 //-- 指定した順位へrankを書き換える。 204 204 $sql = "UPDATE $tableName SET rank = ?, update_date = NOW() WHERE $keyIdColumn = ? AND del_flg = 0 "; 205 205 $conn->query( $sql, array( $position, $keyId ) ); … … 207 207 } 208 208 209 //---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯¡Ê½ç°Ì°ÜưÍÑ¡Ë209 //---- 入力エラーチェック(順位移動用) 210 210 function sf_errorCheckPosition($conn, $tableName, $position, $keyIdColumn, $keyId) { 211 211 212 212 $objErr = new SC_CheckError(); 213 $objErr->doFunc( array(" °Üư½ç°Ì", "moveposition", 4 ), array( "ZERO_CHECK", "NUM_CHECK", "EXIST_CHECK", "MAX_LENGTH_CHECK" ) );214 215 // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£213 $objErr->doFunc( array("移動順位", "moveposition", 4 ), array( "ZERO_CHECK", "NUM_CHECK", "EXIST_CHECK", "MAX_LENGTH_CHECK" ) ); 214 215 // 自身のランクを取得する。 216 216 $rank = $conn->getOne("SELECT rank FROM $tableName WHERE $keyIdColumn = ?", array($keyId)); 217 if ($rank == $position ) $objErr->arrErr["moveposition"] .= " ¢¨ »ØÄꤷ¤¿°Üư½ç°Ì¤Ï¸½ºß¤Î½ç°Ì¤Ç¤¹¡£";218 219 // rank ¤ÎºÇÂçÃͰʾå¤ÎÆþÎϤòµöÍÆ¤·¤Ê¤¤217 if ($rank == $position ) $objErr->arrErr["moveposition"] .= "※ 指定した移動順位は現在の順位です。"; 218 219 // rankの最大値以上の入力を許容しない 220 220 if( ! $objErr->arrErr["position"] ) { 221 221 $sql = "SELECT MAX( rank ) FROM " .$tableName. " WHERE del_flg = 0"; 222 222 $result = $conn->getOne($sql); 223 if( $position > $result ) $objErr->arrErr["moveposition"] .= " ¢¨ ÆþÎϤµ¤ì¤¿½ç°Ì¤Ï¡¢ÅÐÏ¿¿ô¤ÎºÇÂçÃͤòͤ¨¤Æ¤¤¤Þ¤¹¡£";223 if( $position > $result ) $objErr->arrErr["moveposition"] .= "※ 入力された順位は、登録数の最大値を超えています。"; 224 224 } 225 225 … … 227 227 } 228 228 229 //---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯229 //---- 入力エラーチェック 230 230 function lfErrorCheck(){ 231 231 232 232 $objErr = new SC_CheckError(); 233 233 234 $objErr->doFunc(array(" ÆüÉÕ(ǯ)", "year"), array("EXIST_CHECK"));235 $objErr->doFunc(array(" ÆüÉÕ(·î)", "month"), array("EXIST_CHECK"));236 $objErr->doFunc(array(" ÆüÉÕ(Æü)", "day"), array("EXIST_CHECK"));237 $objErr->doFunc(array(" ÆüÉÕ", "year", "month", "day"), array("CHECK_DATE"));238 $objErr->doFunc(array(" ¥¿¥¤¥È¥ë", 'news_title', MTEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));239 $objErr->doFunc(array(" ËÜʸ", 'url', URL_LEN), array("MAX_LENGTH_CHECK"));240 $objErr->doFunc(array(" ËÜʸ", 'news_comment', LTEXT_LEN), array("MAX_LENGTH_CHECK"));234 $objErr->doFunc(array("日付(年)", "year"), array("EXIST_CHECK")); 235 $objErr->doFunc(array("日付(月)", "month"), array("EXIST_CHECK")); 236 $objErr->doFunc(array("日付(日)", "day"), array("EXIST_CHECK")); 237 $objErr->doFunc(array("日付", "year", "month", "day"), array("CHECK_DATE")); 238 $objErr->doFunc(array("タイトル", 'news_title', MTEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK")); 239 $objErr->doFunc(array("本文", 'url', URL_LEN), array("MAX_LENGTH_CHECK")); 240 $objErr->doFunc(array("本文", 'news_comment', LTEXT_LEN), array("MAX_LENGTH_CHECK")); 241 241 242 242 return $objErr->arrErr; 243 243 } 244 244 245 //INSERT ʸ245 //INSERT文 246 246 function lfNewsInsert(){ 247 247 global $conn; … … 252 252 } 253 253 254 //rank ¤ÎºÇÂç+1¤ò¼èÆÀ¤¹¤ë254 //rankの最大+1を取得する 255 255 $rank_max = $conn->getone("SELECT MAX(rank) + 1 FROM dtb_news WHERE del_flg = '0'"); 256 256 … … 261 261 $conn->query($sql, $arrRegist); 262 262 263 // ºÇ½é¤Î1·ïÌܤÎÅÐÏ¿¤Ïrank¤ËNULL¤¬Æþ¤ë¤Î¤ÇÂкö263 // 最初の1件目の登録はrankにNULLが入るので対策 264 264 $sql = "UPDATE dtb_news SET rank = 1 WHERE del_flg = 0 AND rank IS NULL"; 265 265 $conn->query($sql);
Note: See TracChangeset
for help on using the changeset viewer.
