source: temp/trunk/html/admin/contents/index.php @ 4749

Revision 4749, 8.4 KB checked in by kakinaka, 20 years ago (diff)

blank

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2
3require_once("../require.php");
4
5//---- ǧ¾Ú²ÄÈݤÎȽÄê
6$objSess = new SC_Session();
7sfIsSuccess($objSess);
8
9//---- ¥Ú¡¼¥¸É½¼¨¥¯¥é¥¹
10class LC_Page {
11   
12    var $arrSession;
13    var $tpl_mainpage;
14    var $sub_navipage;
15    var $regist_data;
16    var $arrYear;
17    var $arrMonth;
18    var $arrDate;
19    var $selected_year;
20    var $selected_month;
21    var $selected_day;
22    var $list_data;
23    var $max_rank;
24    var $edit_mode;
25    var $news_title;
26    var $news_date_unix;
27    var $news_url;
28    var $link_method;
29   
30    function LC_Page() {
31        $this->tpl_mainpage = 'contents/index.tpl';
32        $this->tpl_subnavi = 'contents/subnavi.tpl';
33        $this->tpl_subno = "index";
34        $this->tpl_mainno = 'contents';
35        $this->selected_year = date("Y");
36        $this->selected_month = date("n");
37        $this->selected_day = date("j");
38        $this->tpl_subtitle = '¿·Ãå¾ðÊó´ÉÍý';
39    }
40}
41
42
43//---- ¥Ú¡¼¥¸½é´üÀßÄê
44$conn = new SC_DbConn();
45$objPage = new LC_Page();
46$objView = new SC_AdminView();
47$objDate = new SC_Date(ADMIN_NEWS_STARTYEAR);
48
49//----¡¡ÆüÉÕ¥×¥ë¥À¥¦¥óÀßÄê
50$objPage->arrYear = $objDate->getYear();
51$objPage->arrMonth = $objDate->getMonth();
52$objPage->arrDay = $objDate->getDay();
53
54//----¡¡¿·µ¬ÅÐÏ¿/ÊÔ½¸ÅÐÏ¿
55if ( $_POST['mode'] == 'regist'){
56    $_POST = lfConvData($_POST);
57
58    if ($objPage->arrErr = lfErrorCheck()) {        // ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
59        foreach($_POST as $key => $val) {
60            $objPage->$key = $val;
61        }
62        $objPage->selected_year = $_POST["year"];
63        $objPage->selected_month = $_POST["month"];
64        $objPage->selected_day = $_POST["day"];
65
66    } else {
67       
68        if (isset($_POST['link_method']) == ""){
69            $_POST['link_method'] = 1;
70        }
71       
72        $registDate = $_POST['year'] ."/". $_POST['month'] ."/". $_POST['day'];
73
74        //-- ÊÔ½¸ÅÐÏ¿
75        if (strlen($_POST["news_id"]) > 0 && is_numeric($_POST["news_id"])) {
76
77            lfNewsUpdate();
78
79        //--¡¡¿·µ¬ÅÐÏ¿
80        } else {
81            lfNewsInsert();
82        }
83
84        $objPage->tpl_onload = "window.alert('ÊÔ½¸¤¬´°Î»¤·¤Þ¤·¤¿');";
85    }
86}
87
88//----¡¡ÊÔ½¸¥Ç¡¼¥¿¼èÆÀ
89if ($_POST["mode"] == "search" && is_numeric($_POST["news_id"])) {
90    $sql = "SELECT *, cast(substring(news_date,1, 10) as date) as cast_news_date FROM dtb_news WHERE news_id = ? ";
91    $result = $conn->getAll($sql, array($_POST["news_id"]));
92    foreach($result[0] as $key => $val ){
93        $objPage->$key = $val;
94    }
95    $arrData = split("-",$result[0]["cast_news_date"]);
96   
97    sfprintr($arrData);
98
99    $objPage->selected_year = $arrData[0];
100    $objPage->selected_month =$arrData[1];
101    $objPage->selected_day =  $arrData[2];
102
103    $objPage->edit_mode = "on";
104}
105
106//----¡¡¥Ç¡¼¥¿ºï½ü
107if ( $_POST['mode'] == 'delete' && is_numeric($_POST["news_id"])) {
108
109    //-- ºï½ü¤¹¤ë¿·Ãå¾ðÊó°Ê¹ß¤Îrank¤ò1¤Ä·«¤ê¾å¤²¤Æ¤ª¤¯
110    $conn->query("BEGIN");
111    $sql = "UPDATE dtb_news SET rank = rank - 1, update_date = NOW() WHERE del_flg = 0 AND rank > ( SELECT rank FROM dtb_news WHERE del_flg = 0 AND news_id = ? )";
112    $conn->query( $sql, array( $_POST['news_id']  ) );
113
114    $sql = "UPDATE dtb_news SET rank = 0, del_flg = 1, update_date = NOW() WHERE news_id = ?";
115    $conn->query( $sql, array( $_POST['news_id'] ) );
116    $conn->query("COMMIT");
117
118    sfReload();             //¼«Ê¬¤Ë¥ê¥À¥¤¥ì¥¯¥È¡ÊºÆÆÉ¹þ¤Ë¤è¤ë¸íưºîËɻߡË
119}
120
121//----¡¡É½¼¨½ç°Ì°Üư
122
123if ( $_POST['mode'] == 'move' && is_numeric($_POST["news_id"]) ) {
124    if ($_POST["term"] == "up") {
125        sfRankUp("dtb_news", "news_id", $_POST["news_id"]);
126    } else if ($_POST["term"] == "down") {
127        sfRankDown("dtb_news", "news_id", $_POST["news_id"]);   
128    }
129    //sf_rebuildIndex($conn);
130    sfReload();
131}
132
133//----¡¡»ØÄêɽ¼¨½ç°Ì°Üư
134if ($_POST['mode'] == 'moveRankSet') {
135    $key = "pos-".$_POST['news_id'];
136    $input_pos = mb_convert_kana($_POST[$key], "n");
137    if(sfIsInt($input_pos)) {
138        sfMoveRank("dtb_news", "news_id", $_POST['news_id'], $input_pos);
139        sfReload();
140    }
141}
142
143
144//---- Á´¥Ç¡¼¥¿¼èÆÀ
145//$sql = "SELECT *, EXTRACT(EPOCH FROM news_date) as news_date_unix FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
146$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";
147$objPage->list_data = $conn->getAll($sql);
148$objPage->list_data["cast_news_data"] = str_replace("-", "/", $objPage->list_data["cast_news_data"]);
149$objPage->line_max = count($objPage->list_data);
150$sql = "SELECT MAX(rank) FROM dtb_news WHERE del_flg = '0'";        // rank¤ÎºÇÂçÃͤò¼èÆÀ
151$objPage->max_rank = $conn->getOne($sql);
152
153$objPage->arrForm['news_select'] = 0;
154
155//----¡¡¥Ú¡¼¥¸É½¼¨
156$objView->assignobj($objPage);
157$objView->display(MAIN_FRAME);
158
159
160//function ---------------------------------------------------------------------------------------------
161
162//---- ÆþÎÏʸ»úÎó¤òÇÛÎó¤Ø
163function lfConvData( $data ){
164   
165     // ʸ»úÎó¤ÎÊÑ´¹¡Êmb_convert_kana¤ÎÊÑ´¹¥ª¥×¥·¥ç¥ó¡Ë                         
166    $arrFlag = array(
167                      "year" => "n"
168                     ,"month" => "n"
169                     ,"day" => "n"
170                     ,"url" => "a"
171                     ,"news_title" => "aKV"
172                     ,"news_comment" => "aKV"
173                     ,"link_method" => "n"
174                    );
175       
176    if ( is_array($data) ){
177        foreach ($arrFlag as $key=>$line) {
178            $data[$key] = mb_convert_kana($data[$key], $line);
179        }
180    }
181
182    return $data;
183}
184
185//----¡¡»ØÄê½ç°Ì¤Ø°Üư
186function sf_setRankPosition($conn, $tableName, $keyIdColumn, $keyId, $position) {
187
188    // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë
189    $conn->query("BEGIN");
190    $rank = $conn->getOne("SELECT rank FROM $tableName WHERE $keyIdColumn = ?", array($keyId));
191
192    if( $position > $rank ) $term = "- 1";  //Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤êÂ礭¤¤¾ì¹ç
193    if( $position < $rank ) $term = "+ 1";  //Æþ¤ìÂØ¤¨Àè¤Î½ç°Ì¤¬Æþ¤ì´¹¤¨¸µ¤Î½ç°Ì¤è¤ê¾®¤µ¤¤¾ì¹ç
194
195    //--¡¡»ØÄꤷ¤¿½ç°Ì¤Î¾¦Éʤ«¤é°Üư¤µ¤»¤ë¾¦ÉʤޤǤÎrank¤ò£±¤Ä¤º¤é¤¹
196    $sql = "UPDATE $tableName SET rank = rank $term, update_date = NOW() WHERE rank BETWEEN ? AND ? AND del_flg = 0";
197    if( $position > $rank ) $conn->query( $sql, array( $rank + 1, $position ) );
198    if( $position < $rank ) $conn->query( $sql, array( $position, $rank - 1 ) );
199
200    //-- »ØÄꤷ¤¿½ç°Ì¤Ørank¤ò½ñ¤­´¹¤¨¤ë¡£
201    $sql  = "UPDATE $tableName SET rank = ?, update_date = NOW() WHERE $keyIdColumn = ? AND del_flg = 0 ";
202    $conn->query( $sql, array( $position, $keyId ) );
203    $conn->query("COMMIT");
204}
205
206//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯¡Ê½ç°Ì°ÜưÍÑ¡Ë
207function sf_errorCheckPosition($conn, $tableName, $position, $keyIdColumn, $keyId) {
208
209    $objErr = new SC_CheckError();
210    $objErr->doFunc( array("°Üư½ç°Ì", "moveposition", 4 ), array( "ZERO_CHECK", "NUM_CHECK", "EXIST_CHECK", "MAX_LENGTH_CHECK" ) );
211
212    // ¼«¿È¤Î¥é¥ó¥¯¤ò¼èÆÀ¤¹¤ë¡£
213    $rank = $conn->getOne("SELECT rank FROM $tableName WHERE $keyIdColumn = ?", array($keyId));
214    if ($rank == $position ) $objErr->arrErr["moveposition"] .= "¢¨ »ØÄꤷ¤¿°Üư½ç°Ì¤Ï¸½ºß¤Î½ç°Ì¤Ç¤¹¡£";
215   
216    // rank¤ÎºÇÂçÃͰʾå¤ÎÆþÎϤòµöÍÆ¤·¤Ê¤¤                                           
217    if( ! $objErr->arrErr["position"] ) {                               
218        $sql = "SELECT MAX( rank ) FROM " .$tableName. " WHERE del_flg = 0";
219        $result = $conn->getOne($sql);
220        if( $position > $result ) $objErr->arrErr["moveposition"] .= "¢¨ ÆþÎϤµ¤ì¤¿½ç°Ì¤Ï¡¢ÅÐÏ¿¿ô¤ÎºÇÂçÃͤòͤ¨¤Æ¤¤¤Þ¤¹¡£";
221    }
222
223    return $objErr->arrErr;
224}
225
226//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
227function lfErrorCheck(){
228
229    $objErr = new SC_CheckError();
230
231    $objErr->doFunc(array("ÆüÉÕ(ǯ)", "year"), array("EXIST_CHECK"));
232    $objErr->doFunc(array("ÆüÉÕ(·î)", "month"), array("EXIST_CHECK"));
233    $objErr->doFunc(array("ÆüÉÕ(Æü)", "day"), array("EXIST_CHECK"));
234    $objErr->doFunc(array("ÆüÉÕ", "year", "month", "day"), array("CHECK_DATE"));
235    $objErr->doFunc(array("¥¿¥¤¥È¥ë", 'news_title', MTEXT_LEN), array("EXIST_CHECK","MAX_LENGTH_CHECK"));
236    $objErr->doFunc(array("ËÜʸ", 'url', URL_LEN), array("MAX_LENGTH_CHECK"));
237    $objErr->doFunc(array("ËÜʸ", 'news_comment', LTEXT_LEN), array("MAX_LENGTH_CHECK"));
238
239    return $objErr->arrErr;
240}
241
242//INSERTʸ
243function lfNewsInsert(){
244    global $conn;
245    global $registDate;
246   
247    if ($_POST["link_method"] == "") {
248        $_POST["link_method"] = 1;
249    }
250
251    $sql = "INSERT INTO dtb_news (news_date, news_title, creator_id, news_url, link_method, news_comment, rank)
252            VALUES ( ?,?,?,?,?,? , (SELECT MAX(rank) + 1 FROM dtb_news WHERE del_flg = '0'))";
253    $arrRegist = array($registDate, $_POST["news_title"], $_SESSION['member_id'],  $_POST["news_url"], $_POST["link_method"], $_POST["news_comment"]);
254
255    $conn->query($sql, $arrRegist);
256   
257    // ºÇ½é¤Î1·ïÌܤÎÅÐÏ¿¤Ïrank¤ËNULL¤¬Æþ¤ë¤Î¤ÇÂкö
258    $sql = "UPDATE dtb_news SET rank = 1 WHERE del_flg = 0 AND rank IS NULL";
259    $conn->query($sql);
260}
261
262//UPDATEʸ
263function lfNewsUpdate(){
264    global $conn;
265    global $registDate;
266   
267    if ($_POST["link_method"] == "") {
268        $_POST["link_method"] = 1;
269    }   
270
271    $sql = "UPDATE dtb_news SET news_date = ?, news_title = ?, creator_id = ?, update_date = NOW(),  news_url = ?, link_method = ?, news_comment = ? WHERE news_id = ?";
272    $arrRegist = array($registDate, $_POST['news_title'], $_SESSION['member_id'], $_POST['news_url'], $_POST["link_method"], $_POST['news_comment'], $_POST['news_id']);
273       
274    $conn->query($sql, $arrRegist);
275}
276?>
Note: See TracBrowser for help on using the repository browser.