source: branches/comu/html/admin/design/bloc.php @ 12039

Revision 12039, 7.8 KB checked in by nanasess, 17 years ago (diff)

header("Location: 〜") で相対パスが使用されていたのを絶対パスに変更.
data/lib/slib.php に sfGetCurrentUri(boolean) と sfGetCurrentSchema() を追加

Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../../require.php");
8
9class LC_Page {
10    var $arrForm;
11    var $arrHidden;
12
13    function LC_Page() {
14        $this->tpl_mainpage = 'design/bloc.tpl';
15        $this->tpl_subnavi = 'design/subnavi.tpl';
16        $this->tpl_subno_edit = 'bloc';
17        $this->text_row = 13;
18        $this->tpl_subno = "bloc"; 
19        $this->tpl_mainno = "design";
20        $this->tpl_subtitle = '¥Ö¥í¥Ã¥¯ÊÔ½¸';
21    }
22}
23
24$objPage = new LC_Page();
25$objView = new SC_AdminView();
26
27// ǧ¾Ú²ÄÈݤÎȽÄê
28$objSess = new SC_Session();
29sfIsSuccess($objSess);
30
31// ¥Ö¥í¥Ã¥¯°ìÍ÷¤ò¼èÆÀ
32$objPage->arrBlocList = lfgetBlocData();
33
34// ¥Ö¥í¥Ã¥¯ID¤ò¼èÆÀ
35if (isset($_POST['bloc_id'])) {
36    $bloc_id = $_POST['bloc_id'];
37}else if ($_GET['bloc_id']){
38    $bloc_id = $_GET['bloc_id'];
39}else{
40    $bloc_id = '';
41}
42$objPage->bloc_id = $bloc_id;
43
44// bloc_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥Ö¥í¥Ã¥¯¥Ç¡¼¥¿¤Î¼èÆÀ
45if ($bloc_id != '') {
46    $arrBlocData = lfgetBlocData(" bloc_id = ? " , array($bloc_id));
47    $arrBlocData[0]['tpl_path'] = USER_PATH . $arrBlocData[0]['tpl_path'];
48
49    // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ß
50    $arrBlocData[0]['tpl_data'] = file_get_contents($arrBlocData[0]['tpl_path']);
51    $objPage->arrBlocData = $arrBlocData[0];
52}
53
54// ¥á¥Ã¥»¡¼¥¸É½¼¨
55if ($_GET['msg'] == "on") {
56    // ´°Î»¥á¥Ã¥»¡¼¥¸
57    $objPage->tpl_onload="alert('ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";
58}
59
60// ¥×¥ì¥Ó¥å¡¼É½¼¨
61if ($_POST['mode'] == "preview") {
62    // ¥×¥ì¥Ó¥å¡¼¥Õ¥¡¥¤¥ëºîÀ®
63    $prev_path = USER_INC_PATH . 'preview/bloc_preview.tpl';
64    $fp = fopen($prev_path,"w");
65    fwrite($fp, $_POST['bloc_html']);
66    fclose($fp);
67   
68    // ¥×¥ì¥Ó¥å¡¼¥Ç¡¼¥¿É½¼¨
69    $objPage->preview = "on";
70    $objPage->arrBlocData['tpl_data'] = $_POST['bloc_html'];
71    $objPage->arrBlocData['tpl_path'] = $prev_path;
72    $objPage->arrBlocData['bloc_name'] = $_POST['bloc_name'];
73    $objPage->arrBlocData['filename'] = $_POST['filename'];
74    $objPage->text_row = $_POST['html_area_row'];
75}else{
76    $objPage->preview = "off";
77}
78
79// ¥Ç¡¼¥¿ÅÐÏ¿½èÍý
80if ($_POST['mode'] == 'confirm') {
81   
82    // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
83    $objPage->arrErr = lfErrorCheck($_POST);
84
85    // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¹¹¿·½èÍý¤ò¹Ô¤¦   
86    if (count($objPage->arrErr) == 0) {
87        // DB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
88        lfEntryBlocData($_POST);
89       
90        // ¥Õ¥¡¥¤¥ë¤Îºï½ü
91        $del_file=BLOC_PATH . $arrBlocData[0]['filename']. '.tpl';
92        if (file_exists($del_file)) {
93            unlink($del_file);
94        }
95       
96        // ¥Õ¥¡¥¤¥ëºîÀ®
97        $fp = fopen(BLOC_PATH . $_POST['filename'] . '.tpl',"w");
98        fwrite($fp, $_POST['bloc_html']);
99        fclose($fp);
100       
101        $arrBlocData = lfgetBlocData(" filename = ? " , array($_POST['filename']));
102           
103        $bloc_id = $arrBlocData[0]['bloc_id']; 
104        header("location: " . sfGetCurrentUri() . "/bloc.php?bloc_id=$bloc_id&msg=on");
105    }else{
106        // ¥¨¥é¡¼¤¬¤¢¤ì¤ÐÆþÎÏ»þ¤Î¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë
107        $objPage->arrBlocData = $_POST;
108    }
109}
110
111// ¥Ç¡¼¥¿ºï½ü½èÍý
112if ($_POST['mode'] == 'delete') {
113   
114    // DB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
115    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
116    $sql = "";                      // ¥Ç¡¼¥¿¹¹¿·SQLÀ¸À®ÍÑ
117    $ret = "";                      // ¥Ç¡¼¥¿¹¹¿··ë²Ì³ÊǼÍÑ
118    $arrDelData = array();          // ¹¹¿·¥Ç¡¼¥¿À¸À®ÍÑ
119   
120    // ¹¹¿·¥Ç¡¼¥¿À¸À®
121    $arrUpdData = array($arrData['bloc_name'], BLOC_DIR . $arrData['filename'] . '.tpl', $arrData['filename']);
122   
123    // bloc_id ¤¬¶õ¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ïdelete¤ò¼Â¹Ô
124    if ($_POST['bloc_id'] !== '') {
125        // SQLÀ¸À®
126        $sql = " DELETE FROM dtb_bloc WHERE bloc_id = ?";
127        // SQL¼Â¹Ô
128        $ret = $objDBConn->query($sql,array($_POST['bloc_id']));
129       
130        // ¥Ú¡¼¥¸¤ËÇÛÃÖ¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤âºï½ü¤¹¤ë
131        $sql = "DELETE FROM dtb_blocposition WHERE bloc_id = ?";
132        // SQL¼Â¹Ô
133        $ret = $objDBConn->query($sql,array($_POST['bloc_id']));
134   
135        // ¥Õ¥¡¥¤¥ë¤Îºï½ü
136        $del_file = BLOC_PATH . $arrBlocData[0]['filename']. '.tpl';
137        if(file_exists($del_file)){
138            unlink($del_file);
139        }
140    }
141
142    header("location: " . sfGetCurrentUri() . "/bloc.php");
143}
144
145
146// ²èÌ̤Îɽ¼¨
147$objView->assignobj($objPage);
148$objView->display(MAIN_FRAME);
149
150//---------------------------------------------------------------------------------------------------------------------------------------------------------
151
152/**************************************************************************************************************
153 * ´Ø¿ô̾   ¡§lfgetBlocData
154 * ½èÍýÆâÍÆ ¡§¥Ö¥í¥Ã¥¯¾ðÊó¤ò¼èÆÀ¤¹¤ë
155 * °ú¿ô1    ¡§$where  Ž¥Ž¥Ž¥ Where¶çʸ
156 * °ú¿ô2    ¡§$arrVal Ž¥Ž¥Ž¥ Where¶ç¤Î¹Ê¹þ¾ò·ïÃÍ
157 * Ìá¤êÃÍ   ¡§¥Ö¥í¥Ã¥¯¾ðÊó
158 **************************************************************************************************************/
159function lfgetBlocData($where = '', $arrVal = ''){
160    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
161    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
162    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ
163   
164    // SQLÀ¸À®
165    $sql = " SELECT ";
166    $sql .= "   bloc_id";
167    $sql .= "   ,bloc_name";
168    $sql .= "   ,tpl_path";
169    $sql .= "   ,filename";
170    $sql .= "   ,create_date";
171    $sql .= "   ,update_date";
172    $sql .= "   ,php_path";
173    $sql .= "   ,del_flg";
174    $sql .= " FROM ";
175    $sql .= "   dtb_bloc";
176
177    // where¶ç¤Î»ØÄ꤬¤¢¤ì¤ÐÄɲà  
178    if ($where != '') {
179        $sql .= " WHERE " . $where;
180    }
181   
182    $sql .= " ORDER BY  bloc_id";
183   
184    $arrRet = $objDBConn->getAll($sql, $arrVal);
185   
186    return $arrRet;
187}
188
189/**************************************************************************************************************
190 * ´Ø¿ô̾   ¡§lfEntryBlocData
191 * ½èÍýÆâÍÆ ¡§¥Ö¥í¥Ã¥¯¾ðÊó¤ò¹¹¿·¤¹¤ë
192 * °ú¿ô1    ¡§$arrData  Ž¥Ž¥Ž¥ ¹¹¿·¥Ç¡¼¥¿
193 * Ìá¤êÃÍ   ¡§¹¹¿··ë²Ì
194 **************************************************************************************************************/
195function lfEntryBlocData($arrData){
196    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
197    $sql = "";                      // ¥Ç¡¼¥¿¹¹¿·SQLÀ¸À®ÍÑ
198    $ret = "";                      // ¥Ç¡¼¥¿¹¹¿··ë²Ì³ÊǼÍÑ
199    $arrUpdData = array();          // ¹¹¿·¥Ç¡¼¥¿À¸À®ÍÑ
200    $arrChk = array();              // ÇÓ¾¥Á¥§¥Ã¥¯ÍÑ
201   
202    // ¹¹¿·¥Ç¡¼¥¿À¸À®
203    $arrUpdData = array($arrData['bloc_name'], BLOC_DIR . $arrData['filename'] . '.tpl', $arrData['filename']);
204   
205    // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
206    if($arrData['bloc_id'] !== ''){
207        $arrChk = lfgetBlocData("bloc_id = ?", array($arrData['bloc_id']));
208    }
209   
210    // bloc_id ¤¬¶õ ¼ã¤·¤¯¤Ï ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤ÏINSERT¤ò¹Ô¤¦
211    if ($arrData['bloc_id'] === '' or !isset($arrChk[0])) {
212        // SQLÀ¸À®
213        $sql = " INSERT INTO dtb_bloc";
214        $sql .= " ( ";
215        $sql .= "     bloc_name ";      // ¥Ö¥í¥Ã¥¯Ì¾¾Î
216        $sql .= "     ,tpl_path ";      // ¥Æ¥ó¥×¥ì¡¼¥ÈÊݸÀè
217        $sql .= "     ,filename ";      // ¥Õ¥¡¥¤¥ë̾¾Î
218        $sql .= "     ,create_date ";   // ºîÀ®Æü
219        $sql .= "     ,update_date ";   // ¹¹¿·Æü
220        $sql .= " ) VALUES ( ?,?,?,now(),now() )";
221        $sql .= " ";
222    }else{
223        // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤ë¾ì¹ç¤Ë¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦
224        // SQLÀ¸À®
225        $sql = " UPDATE dtb_bloc";
226        $sql .= " SET";
227        $sql .= "     bloc_name = ? ";  // ¥Ö¥í¥Ã¥¯Ì¾¾Î
228        $sql .= "     ,tpl_path = ? ";  // ¥Æ¥ó¥×¥ì¡¼¥ÈÊݸÀè
229        $sql .= "     ,filename = ? ";  // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë̾
230        $sql .= "     ,update_date = now()";
231        $sql .= " WHERE bloc_id = ?";
232        $sql .= " ";
233       
234        // ¹¹¿·¥Ç¡¼¥¿¤Ë¥Ö¥í¥Ã¥¯ID¤òÄɲÃ
235        array_push($arrUpdData, $arrData['bloc_id']);
236    }
237   
238    // SQL¼Â¹Ô
239    $ret = $objDBConn->query($sql,$arrUpdData);
240   
241    return $ret;
242
243}
244
245/**************************************************************************************************************
246 * ´Ø¿ô̾   ¡§lfErrorCheck
247 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
248 * °ú¿ô1    ¡§$arrData  Ž¥Ž¥Ž¥ ÆþÎϥǡ¼¥¿
249 * Ìá¤êÃÍ   ¡§¥¨¥é¡¼¾ðÊó
250 **************************************************************************************************************/
251function lfErrorCheck($array) {
252    global $objPage;
253    $objErr = new SC_CheckError($array);
254   
255    $objErr->doFunc(array("¥Ö¥í¥Ã¥¯Ì¾", "bloc_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
256    $objErr->doFunc(array("¥Õ¥¡¥¤¥ë̾", "filename", STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK","ALNUM_CHECK"));
257   
258    // Ʊ°ì¤Î¥Õ¥¡¥¤¥ë̾¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
259    if(!isset($objErr->arrErr['filename']) and $array['filename'] !== ''){
260        $arrChk = lfgetBlocData("filename = ?", array($array['filename']));
261       
262        if (count($arrChk[0]) >= 1 and $arrChk[0]['bloc_id'] != $array['bloc_id']) {
263            $objErr->arrErr['filename'] = '¢¨ Ʊ¤¸¥Õ¥¡¥¤¥ë̾¤Î¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡£Ê̤Î̾¾Î¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£';
264        }
265    }
266   
267    return $objErr->arrErr;
268}
Note: See TracBrowser for help on using the repository browser.