source: temp/trunk/html/admin/design/main_edit.php @ 5145

Revision 5145, 11.0 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");
4require_once(ROOT_DIR."data/include/page_layout.inc");
5
6class LC_Page {
7    var $arrForm;
8    var $arrHidden;
9
10    function LC_Page() {
11        $this->tpl_mainpage = 'design/main_edit.tpl';
12        $this->tpl_subnavi  = 'design/subnavi.tpl';
13        $this->user_URL     = USER_URL;
14        $this->text_row     = 13;
15        $this->tpl_subno = "main_edit";
16        $this->tpl_mainno = "design";
17        $this->tpl_subtitle = '¥Ú¡¼¥¸¾ÜºÙÀßÄê';
18    }
19}
20$objPage = new LC_Page();
21$objView = new SC_AdminView();
22
23// ǧ¾Ú²ÄÈݤÎȽÄê
24$objSess = new SC_Session();
25sfIsSuccess($objSess);
26
27// ¥Ú¡¼¥¸°ìÍ÷¤ò¼èÆÀ
28$objPage->arrPageList = lfgetPageData();
29
30// ¥Ö¥í¥Ã¥¯ID¤ò¼èÆÀ
31if (isset($_POST['page_id'])) {
32    $page_id = $_POST['page_id'];
33}else if ($_GET['page_id']){
34    $page_id = $_GET['page_id'];
35}else{
36    $page_id = '';
37}
38
39$objPage->page_id = $page_id;
40
41// ¥á¥Ã¥»¡¼¥¸É½¼¨
42if ($_GET['msg'] == "on"){
43    $objPage->tpl_onload="alert('ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";
44}
45
46// page_id ¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤Î¼èÆÀ
47if (is_numeric($page_id) and $page_id != '') {
48    $arrPageData = lfgetPageData(" page_id = ? " , array($page_id));
49
50    if ($arrPageData[0]['tpl_dir'] === "") {
51        $objPage->arrErr['page_id_err'] = "¢¨ »ØÄꤵ¤ì¤¿¥Ú¡¼¥¸¤ÏÊÔ½¸¤Ç¤­¤Þ¤»¤ó¡£";
52        // ²èÌ̤Îɽ¼¨
53        $objView->assignobj($objPage);
54        $objView->display(MAIN_FRAME);
55        exit;
56    }
57   
58    // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Æ¤¤¤ì¤ÐÆÉ¤ß¹þ¤à
59    $tpl_file = ROOT_DIR . $arrPageData[0]['tpl_dir'] . $arrPageData[0]['filename'] . ".tpl";
60    if (file_exists($tpl_file)){
61        $arrPageData[0]['tpl_data'] = file_get_contents($tpl_file);     
62    }
63   
64    // ¥Á¥§¥Ã¥¯¥Ü¥Ã¥¯¥¹¤ÎÃÍÊѹ¹
65    $arrPageData[0]['header_chk'] = sfChangeCheckBox($arrPageData[0]['header_chk'], true);
66    $arrPageData[0]['footer_chk'] = sfChangeCheckBox($arrPageData[0]['footer_chk'], true);
67
68    // ¥Ç¥£¥ì¥¯¥È¥ê¤ò²èÌÌɽ¼¨ÍѤËÊÔ½¸
69    $arrPageData[0]['directory'] = str_replace( USER_DIR,'', $arrPageData[0]['php_dir']);
70   
71    $objPage->arrPageData = $arrPageData[0];
72}
73
74// ¥×¥ì¥Ó¥å¡¼½èÍý
75if ($_POST['mode'] == 'preview') {
76   
77    $page_id_old = $page_id;
78    $page_id = 0;
79    $url = uniqid("");
80
81    $_POST['page_id'] = $page_id;
82    $_POST['url'] = $url;
83   
84    $arrPreData = lfgetPageData(" page_id = ? " , array($page_id));
85
86    // tpl¥Õ¥¡¥¤¥ë¤Îºï½ü
87    $del_tpl = ROOT_DIR . USER_DIR . "templates/" . $arrPreData[0]['filename'] . '.tpl';
88    if (file_exists($del_tpl)){
89        unlink($del_tpl);   
90    }
91   
92    // DB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
93    lfEntryPageData($_POST);
94
95    // TPL¥Õ¥¡¥¤¥ëºîÀ®
96    $cre_tpl = ROOT_DIR . USER_DIR . "templates/" . $url . '.tpl';
97    lfCreateFile($cre_tpl);
98   
99    // blocposition ¤òºï½ü
100    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
101    $sql = 'delete from dtb_blocposition where page_id = 0';
102    $ret = $objDBConn->query($sql);
103   
104    if ($page_id_old != "") {
105        // ÅÐÏ¿¥Ç¡¼¥¿¤ò¼èÆÀ
106        $sql = "SELECT 0, target_id, bloc_id, bloc_row FROM dtb_blocposition WHERE page_id = ?";
107        $ret = $objDBConn->getAll($sql,array($page_id_old));
108       
109        if (count($ret) > 0) {
110            // blocposition ¤òÊ£À½
111            $sql = " insert into dtb_blocposition (";
112            $sql .= "     page_id,";
113            $sql .= "     target_id,";
114            $sql .= "     bloc_id,";
115            $sql .= "     bloc_row";
116            $sql .= "     )values(?, ?, ?, ?)";
117            $ret = $objDBConn->query($sql,$ret[0]);
118        }
119
120    }
121   
122    $_SESSION['preview'] = "ON";
123   
124    header("location: /preview/index.php");
125}
126
127// ¥Ç¡¼¥¿ÅÐÏ¿½èÍý
128if ($_POST['mode'] == 'confirm') {
129   
130    // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
131    $objPage->arrErr = lfErrorCheck($_POST);
132
133    // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¹¹¿·½èÍý¤ò¹Ô¤¦   
134    if (count($objPage->arrErr) == 0) {
135
136        // DB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
137        lfEntryPageData($_POST);
138       
139        // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü¤·¡¢PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
140        if (!lfCheckBaseData($page_id)) {
141            // ¥Õ¥¡¥¤¥ëºï½ü
142            lfDelFile($arrPageData[0]);
143           
144            // PHP¥Õ¥¡¥¤¥ëºîÀ®
145            $cre_php = ROOT_DIR . USER_DIR . $_POST['url'] . ".php";
146            lfCreatePHPFile($cre_php);
147        }
148
149        // TPL¥Õ¥¡¥¤¥ëºîÀ®
150        $cre_tpl = dirname( ROOT_DIR . USER_DIR . "templates/" . $_POST['url']) . "/" . basename($_POST['url']) . '.tpl';
151
152        lfCreateFile($cre_tpl);
153
154        // ÊÔ½¸²Äǽ¥Ú¡¼¥¸¤Î¾ì¹ç¤Ë¤Î¤ß½èÍý¤ò¹Ô¤¦
155        if ($arrPageData[0]['edit_flg'] != 2) {
156            // ¿·µ¬ºîÀ®¤·¤¿¾ì¹ç¤Î¤¿¤á¤Ë²þ¤Ë¥Ú¡¼¥¸ID¤ò¼èÆÀ¤¹¤ë
157            $arrPageData = lfgetPageData(" url = ? " , array(USER_URL.$_POST['url'].".php"));
158            $page_id = $arrPageData[0]['page_id'];
159        }
160
161        header("location: ./main_edit.php?page_id=$page_id&msg=on");
162    }else{
163        // ¥¨¥é¡¼¤¬¤¢¤ì¤ÐÆþÎÏ»þ¤Î¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë
164        $objPage->arrPageData = $_POST;
165        $objPage->arrPageData['header_chk'] = sfChangeCheckBox(sfChangeCheckBox($_POST['header_chk']), true);
166        $objPage->arrPageData['footer_chk'] = sfChangeCheckBox(sfChangeCheckBox($_POST['footer_chk']), true);
167        $objPage->arrPageData['directory'] = $_POST['url'];
168        $objPage->arrPageData['filename'] = "";
169    }
170}
171
172// ¥Ç¡¼¥¿ºï½ü½èÍý ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü
173if ($_POST['mode'] == 'delete' and  !lfCheckBaseData($page_id)) {
174    lfDelPageData($_POST['page_id']);
175}
176
177// ²èÌ̤Îɽ¼¨
178$objView->assignobj($objPage);
179$objView->display(MAIN_FRAME);
180
181//---------------------------------------------------------------------------------------------------------------------------------------------------------
182/**************************************************************************************************************
183 * ´Ø¿ô̾   ¡§lfEntryPageData
184 * ½èÍýÆâÍÆ ¡§¥Ö¥í¥Ã¥¯¾ðÊó¤ò¹¹¿·¤¹¤ë
185 * °ú¿ô1    ¡§$arrData  ޥޥޥ ¹¹¿·¥Ç¡¼¥¿
186 * Ìá¤êÃÍ   ¡§¹¹¿··ë²Ì
187 **************************************************************************************************************/
188function lfEntryPageData($arrData){
189    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
190    $sql = "";                      // ¥Ç¡¼¥¿¹¹¿·SQLÀ¸À®ÍÑ
191    $ret = "";                      // ¥Ç¡¼¥¿¹¹¿··ë²Ì³ÊǼÍÑ
192    $arrUpdData = array();          // ¹¹¿·¥Ç¡¼¥¿À¸À®ÍÑ
193    $arrChk = array();              // ÇÓ¾¥Á¥§¥Ã¥¯ÍÑ
194
195    // ¹¹¿·¥Ç¡¼¥¿À¸À®
196    $arrUpdData = lfGetUpdData($arrData);
197   
198    // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
199    if($arrData['page_id'] !== ''){
200        $arrChk = lfgetPageData(" page_id = ?", array($arrData['page_id']));
201    }
202
203    // page_id ¤¬¶õ ¼ã¤·¤¯¤Ï ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤ÏINSERT¤ò¹Ô¤¦
204    if ($arrData['page_id'] === '' or !isset($arrChk[0])) {
205        // SQLÀ¸À®
206        $sql = " INSERT INTO dtb_pagelayout ";
207        $sql .= " ( ";
208        $sql .= "     page_name";
209        $sql .= "     ,url";
210        $sql .= "     ,php_dir";
211        $sql .= "     ,tpl_dir";
212        $sql .= "     ,filename";
213        $sql .= "     ,header_chk";
214        $sql .= "     ,footer_chk";
215        $sql .= "     ,update_url";
216        $sql .= " ) VALUES ( ?,?,?,?,?,?,?,? )";
217        $sql .= " ";
218    }else{
219        // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤ë¾ì¹ç¤Ë¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦
220        // SQLÀ¸À®
221        $sql = " UPDATE dtb_pagelayout ";
222        $sql .= " SET";
223        $sql .= "     page_name = ? ";
224        $sql .= "     ,url = ? ";
225        $sql .= "     ,php_dir = ? ";
226        $sql .= "     ,tpl_dir = ? ";
227        $sql .= "     ,filename = ? ";
228        $sql .= "     ,header_chk = ? ";
229        $sql .= "     ,footer_chk = ? ";
230        $sql .= "     ,update_url = ? ";
231        $sql .= "     ,update_date = now() ";
232        $sql .= " WHERE page_id = ?";
233        $sql .= " ";
234
235        // ¹¹¿·¥Ç¡¼¥¿¤Ë¥Ö¥í¥Ã¥¯ID¤òÄɲÃ
236        array_push($arrUpdData, $arrData['page_id']);
237    }
238
239    // SQL¼Â¹Ô
240    $ret = $objDBConn->query($sql,$arrUpdData);
241   
242    return $ret;
243}
244
245/**************************************************************************************************************
246 * ´Ø¿ô̾   ¡§lfGetUpdData
247 * ½èÍýÆâÍÆ ¡§DB¤Ø¹¹¿·¤ò¹Ô¤¦¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë
248 * °ú¿ô1    ¡§$arrData  ޥޥޥ ¹¹¿·¥Ç¡¼¥¿
249 * Ìá¤êÃÍ   ¡§¹¹¿·¥Ç¡¼¥¿
250 **************************************************************************************************************/
251function lfGetUpdData($arrData){
252   
253    // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Î¾ì¹ç¤Ë¤ÏÊѹ¹¤·¤Ê¤¤¡£
254    if (lfCheckBaseData($arrData['page_id'])) {
255        $arrPageData = lfgetPageData( ' page_id = ? ' , array($arrData['page_id']));
256
257        $name = $arrPageData[0]['page_name'] ;
258        $url = $arrPageData[0]['url'];
259        $php_dir = $arrPageData[0]['php_dir'];
260        $tpl_dir = $arrPageData[0]['tpl_dir'];
261        $filename = $arrPageData[0]['filename'];
262    }else{
263        $name = $arrData['page_name'] ;
264        $url = USER_URL.$arrData['url'].".php";
265        $php_dir = dirname(USER_DIR.$arrData['url'])."/";
266        $tpl_dir = dirname(USER_DIR."templates/".$arrData['url'])."/";
267        $filename = basename($arrData['url']);
268    }
269
270    // ¹¹¿·¥Ç¡¼¥¿ÇÛÎó¤ÎºîÀ®
271    $arrUpdData = array(
272                    $name                                       // ̾¾Î
273                    ,$url                                       // URL
274                    ,$php_dir                                   // PHP¥Ç¥£¥ì¥¯¥È¥ê
275                    ,$tpl_dir                                   // TPL¥Ç¥£¥ì¥¯¥È¥ê
276                    ,$filename                                  // ¥Õ¥¡¥¤¥ë̾
277                    ,sfChangeCheckBox($arrData['header_chk'])   // ¥Ø¥Ã¥À¡¼»ÈÍÑ
278                    ,sfChangeCheckBox($arrData['footer_chk'])   // ¥Õ¥Ã¥¿¡¼»ÈÍÑ
279                    ,$_SERVER['HTTP_REFERER']                   // ¹¹¿·URL
280                    );
281                   
282    return $arrUpdData;
283}
284
285/**************************************************************************************************************
286 * ´Ø¿ô̾   ¡§lfErrorCheck
287 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
288 * °ú¿ô1    ¡§$arrData  ޥޥޥ ÆþÎϥǡ¼¥¿
289 * Ìá¤êÃÍ   ¡§¥¨¥é¡¼¾ðÊó
290 **************************************************************************************************************/
291function lfErrorCheck($array) {
292    global $objPage;
293   
294    $objErr = new SC_CheckError($array);
295    $objErr->doFunc(array("̾¾Î", "page_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
296    $objErr->doFunc(array("URL", "url", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
297
298    // URL¥Á¥§¥Ã¥¯
299    if (substr(strrev(trim($array['url'])),0,1) == "/") {
300        $objErr->arrErr['url'] = "¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";
301    }
302   
303    $check_url = USER_URL . $array['url'] . ".php";
304    if( strlen($array['url']) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9_~=&\?\.\/-])+$", $check_url ) ) {
305        $objErr->arrErr['url'] = "¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";
306    }
307
308    // Ʊ°ì¤ÎURL¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
309    if(!isset($objErr->arrErr['url']) and $array['url'] !== ''){
310        $arrChk = lfgetPageData(" url = ? " , array(USER_URL . $array['url'].".php"));
311
312        if (count($arrChk[0]) >= 1 and $arrChk[0]['page_id'] != $array['page_id']) {
313            $objErr->arrErr['url'] = '¢¨ Ʊ¤¸URL¤Î¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡£Ê̤ÎURL¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£';
314        }
315    }
316   
317    return $objErr->arrErr;
318}
319
320/**************************************************************************************************************
321 * ´Ø¿ô̾   ¡§lfCreateFile
322 * ½èÍýÆâÍÆ ¡§¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
323 * °ú¿ô1    ¡§$pathޥޥޥ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹
324 * Ìá¤êÃÍ   ¡§¤Ê¤·
325 **************************************************************************************************************/
326function lfCreateFile($path){
327   
328    // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
329    if (!is_dir(dirname($path))) {
330        mkdir(dirname($path));
331    }
332
333    // ¥Õ¥¡¥¤¥ëºîÀ®
334    $fp = fopen($path,"w");
335    fwrite($fp, $_POST['tpl_data']);
336    fclose($fp);
337}
338
339/**************************************************************************************************************
340 * ´Ø¿ô̾   ¡§lfCreatePHPFile
341 * ½èÍýÆâÍÆ ¡§PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
342 * °ú¿ô1    ¡§$pathޥޥޥPHP¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹
343 * Ìá¤êÃÍ   ¡§¤Ê¤·
344 **************************************************************************************************************/
345function lfCreatePHPFile($path){
346
347    // phpÊݸÀè¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
348    if (!is_dir(dirname($path))) {
349        mkdir(dirname($path));
350    }
351   
352    // ¥Ù¡¼¥¹¤È¤Ê¤ëPHP¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß
353    if (file_exists(USER_DEF_PHP)){
354        $php_data = file_get_contents(USER_DEF_PHP);       
355    }
356   
357    // require.php¤Î¾ì½ê¤ò½ñ¤­´¹¤¨¤ë
358    $php_data = str_replace("###require###", ROOT_DIR . "html/require.php", $php_data);
359   
360    // php¥Õ¥¡¥¤¥ë¤ÎºîÀ®
361    $fp = fopen($path,"w");
362    fwrite($fp, $php_data);
363    fclose($fp);
364}
Note: See TracBrowser for help on using the repository browser.