source: branches/comu/html/admin/contents/index.php @ 2

Revision 2, 8.4 KB checked in by root, 17 years ago (diff)

new import

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