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

Revision 3736, 10.8 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        // blocposition ¤òÊ£À½
106        $sql = " insert into dtb_blocposition ";
107        $sql .= " select ";
108        $sql .= "     0,";
109        $sql .= "     target_id,";
110        $sql .= "     bloc_id,";
111        $sql .= "     bloc_row";
112        $sql .= " from dtb_blocposition";
113        $sql .= " where page_id = ?";
114        $ret = $objDBConn->query($sql,array($page_id_old));
115    }
116   
117    $_SESSION['preview'] = "ON";
118   
119    header("location: /preview/index.php");
120}
121
122// ¥Ç¡¼¥¿ÅÐÏ¿½èÍý
123if ($_POST['mode'] == 'confirm') {
124   
125    // ¥¨¥é¡¼¥Á¥§¥Ã¥¯
126    $objPage->arrErr = lfErrorCheck($_POST);
127
128    // ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð¹¹¿·½èÍý¤ò¹Ô¤¦   
129    if (count($objPage->arrErr) == 0) {
130
131        // DB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë
132        lfEntryPageData($_POST);
133       
134        // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü¤·¡¢PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
135        if (!lfCheckBaseData($page_id)) {
136            // ¥Õ¥¡¥¤¥ëºï½ü
137            lfDelFile($arrPageData[0]);
138           
139            // PHP¥Õ¥¡¥¤¥ëºîÀ®
140            $cre_php = ROOT_DIR . USER_DIR . $_POST['url'];
141            lfCreatePHPFile($cre_php);
142        }
143
144        // TPL¥Õ¥¡¥¤¥ëºîÀ®
145        $cre_tpl = dirname( ROOT_DIR . USER_DIR . "templates/" . $_POST['url']) . "/" . basename($_POST['url']) . '.tpl';
146
147        lfCreateFile($cre_tpl);
148
149        // ÊÔ½¸²Äǽ¥Ú¡¼¥¸¤Î¾ì¹ç¤Ë¤Î¤ß½èÍý¤ò¹Ô¤¦
150        if ($arrPageData[0]['edit_flg'] != 2) {
151            // ¿·µ¬ºîÀ®¤·¤¿¾ì¹ç¤Î¤¿¤á¤Ë²þ¤Ë¥Ú¡¼¥¸ID¤ò¼èÆÀ¤¹¤ë
152            $arrPageData = lfgetPageData(" url = ? " , array(USER_URL.$_POST['url'].".php"));
153            $page_id = $arrPageData[0]['page_id'];
154        }
155
156        header("location: ./main_edit.php?page_id=$page_id&msg=on");
157    }else{
158        // ¥¨¥é¡¼¤¬¤¢¤ì¤ÐÆþÎÏ»þ¤Î¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë
159        $objPage->arrPageData = $_POST;
160        $objPage->arrPageData['header_chk'] = sfChangeCheckBox(sfChangeCheckBox($_POST['header_chk']), true);
161        $objPage->arrPageData['footer_chk'] = sfChangeCheckBox(sfChangeCheckBox($_POST['footer_chk']), true);
162        $objPage->arrPageData['directory'] = $_POST['url'];
163        $objPage->arrPageData['filename'] = "";
164    }
165}
166
167// ¥Ç¡¼¥¿ºï½ü½èÍý ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Ç¤Ê¤±¤ì¤Ð¥Õ¥¡¥¤¥ë¤òºï½ü
168if ($_POST['mode'] == 'delete' and  !lfCheckBaseData($page_id)) {
169    lfDelPageData($_POST['page_id']);
170}
171
172// ²èÌ̤Îɽ¼¨
173$objView->assignobj($objPage);
174$objView->display(MAIN_FRAME);
175
176//---------------------------------------------------------------------------------------------------------------------------------------------------------
177/**************************************************************************************************************
178 * ´Ø¿ô̾   ¡§lfEntryPageData
179 * ½èÍýÆâÍÆ ¡§¥Ö¥í¥Ã¥¯¾ðÊó¤ò¹¹¿·¤¹¤ë
180 * °ú¿ô1    ¡§$arrData  ޥޥޥ ¹¹¿·¥Ç¡¼¥¿
181 * Ìá¤êÃÍ   ¡§¹¹¿··ë²Ì
182 **************************************************************************************************************/
183function lfEntryPageData($arrData){
184    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
185    $sql = "";                      // ¥Ç¡¼¥¿¹¹¿·SQLÀ¸À®ÍÑ
186    $ret = "";                      // ¥Ç¡¼¥¿¹¹¿··ë²Ì³ÊǼÍÑ
187    $arrUpdData = array();          // ¹¹¿·¥Ç¡¼¥¿À¸À®ÍÑ
188    $arrChk = array();              // ÇÓ¾¥Á¥§¥Ã¥¯ÍÑ
189
190    // ¹¹¿·¥Ç¡¼¥¿À¸À®
191    $arrUpdData = lfGetUpdData($arrData);
192   
193    // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤ë¤«¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
194    if($arrData['page_id'] !== ''){
195        $arrChk = lfgetPageData(" page_id = ?", array($arrData['page_id']));
196    }
197
198    // page_id ¤¬¶õ ¼ã¤·¤¯¤Ï ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ë¤ÏINSERT¤ò¹Ô¤¦
199    if ($arrData['page_id'] === '' or !isset($arrChk[0])) {
200        // SQLÀ¸À®
201        $sql = " INSERT INTO dtb_pagelayout ";
202        $sql .= " ( ";
203        $sql .= "     page_name";
204        $sql .= "     ,url";
205        $sql .= "     ,php_dir";
206        $sql .= "     ,tpl_dir";
207        $sql .= "     ,filename";
208        $sql .= "     ,header_chk";
209        $sql .= "     ,footer_chk";
210        $sql .= "     ,update_url";
211        $sql .= " ) VALUES ( ?,?,?,?,?,?,?,? )";
212        $sql .= " ";
213    }else{
214        // ¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤ë¾ì¹ç¤Ë¤Ï¥¢¥Ã¥×¥Ç¡¼¥È¤ò¹Ô¤¦
215        // SQLÀ¸À®
216        $sql = " UPDATE dtb_pagelayout ";
217        $sql .= " SET";
218        $sql .= "     page_name = ? ";
219        $sql .= "     ,url = ? ";
220        $sql .= "     ,php_dir = ? ";
221        $sql .= "     ,tpl_dir = ? ";
222        $sql .= "     ,filename = ? ";
223        $sql .= "     ,header_chk = ? ";
224        $sql .= "     ,footer_chk = ? ";
225        $sql .= "     ,update_url = ? ";
226        $sql .= "     ,update_date = now() ";
227        $sql .= " WHERE page_id = ?";
228        $sql .= " ";
229
230        // ¹¹¿·¥Ç¡¼¥¿¤Ë¥Ö¥í¥Ã¥¯ID¤òÄɲÃ
231        array_push($arrUpdData, $arrData['page_id']);
232    }
233
234    // SQL¼Â¹Ô
235    $ret = $objDBConn->query($sql,$arrUpdData);
236   
237    return $ret;
238}
239
240/**************************************************************************************************************
241 * ´Ø¿ô̾   ¡§lfGetUpdData
242 * ½èÍýÆâÍÆ ¡§DB¤Ø¹¹¿·¤ò¹Ô¤¦¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë
243 * °ú¿ô1    ¡§$arrData  ޥޥޥ ¹¹¿·¥Ç¡¼¥¿
244 * Ìá¤êÃÍ   ¡§¹¹¿·¥Ç¡¼¥¿
245 **************************************************************************************************************/
246function lfGetUpdData($arrData){
247   
248    // ¥Ù¡¼¥¹¥Ç¡¼¥¿¤Î¾ì¹ç¤Ë¤ÏÊѹ¹¤·¤Ê¤¤¡£
249    if (lfCheckBaseData($arrData['page_id'])) {
250        $arrPageData = lfgetPageData( ' page_id = ? ' , array($arrData['page_id']));
251
252        $name = $arrPageData[0]['page_name'] ;
253        $url = $arrPageData[0]['url'];
254        $php_dir = $arrPageData[0]['php_dir'];
255        $tpl_dir = $arrPageData[0]['tpl_dir'];
256        $filename = $arrPageData[0]['filename'];
257    }else{
258        $name = $arrData['page_name'] ;
259        $url = USER_URL.$arrData['url'].".php";
260        $php_dir = dirname(USER_DIR.$arrData['url'])."/";
261        $tpl_dir = dirname(USER_DIR."templates/".$arrData['url'])."/";
262        $filename = basename($arrData['url']);
263    }
264
265    // ¹¹¿·¥Ç¡¼¥¿ÇÛÎó¤ÎºîÀ®
266    $arrUpdData = array(
267                    $name                                       // ̾¾Î
268                    ,$url                                       // URL
269                    ,$php_dir                                   // PHP¥Ç¥£¥ì¥¯¥È¥ê
270                    ,$tpl_dir                                   // TPL¥Ç¥£¥ì¥¯¥È¥ê
271                    ,$filename                                  // ¥Õ¥¡¥¤¥ë̾
272                    ,sfChangeCheckBox($arrData['header_chk'])   // ¥Ø¥Ã¥À¡¼»ÈÍÑ
273                    ,sfChangeCheckBox($arrData['footer_chk'])   // ¥Õ¥Ã¥¿¡¼»ÈÍÑ
274                    ,$_SERVER['HTTP_REFERER']                   // ¹¹¿·URL
275                    );
276                   
277    return $arrUpdData;
278}
279
280/**************************************************************************************************************
281 * ´Ø¿ô̾   ¡§lfErrorCheck
282 * ½èÍýÆâÍÆ ¡§ÆþÎϹàÌܤΥ¨¥é¡¼¥Á¥§¥Ã¥¯¤ò¹Ô¤¦
283 * °ú¿ô1    ¡§$arrData  ޥޥޥ ÆþÎϥǡ¼¥¿
284 * Ìá¤êÃÍ   ¡§¥¨¥é¡¼¾ðÊó
285 **************************************************************************************************************/
286function lfErrorCheck($array) {
287    global $objPage;
288   
289    $objErr = new SC_CheckError($array);
290    $objErr->doFunc(array("̾¾Î", "page_name", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
291    $objErr->doFunc(array("URL", "url", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
292
293    // URL¥Á¥§¥Ã¥¯
294    if (substr(strrev(trim($array['url'])),0,1) == "/") {
295        $objErr->arrErr['url'] = "¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";
296    }
297   
298    $check_url = USER_URL . $array['url'] . ".php";
299    if( strlen($array['url']) > 0 && !ereg( "^https?://+($|[a-zA-Z0-9_~=&\?\.\/-])+$", $check_url ) ) {
300        $objErr->arrErr['url'] = "¢¨ URL¤òÀµ¤·¤¯ÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡£<br />";
301    }
302
303    // Ʊ°ì¤ÎURL¤¬Â¸ºß¤·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
304    if(!isset($objErr->arrErr['url']) and $array['url'] !== ''){
305        $arrChk = lfgetPageData(" url = ? " , array(USER_URL . $array['url'].".php"));
306
307        if (count($arrChk[0]) >= 1 and $arrChk[0]['page_id'] != $array['page_id']) {
308            $objErr->arrErr['url'] = '¢¨ Ʊ¤¸URL¤Î¥Ç¡¼¥¿¤¬Â¸ºß¤·¤Æ¤¤¤Þ¤¹¡£Ê̤ÎURL¤òÉÕ¤±¤Æ¤¯¤À¤µ¤¤¡£';
309        }
310    }
311   
312    return $objErr->arrErr;
313}
314
315/**************************************************************************************************************
316 * ´Ø¿ô̾   ¡§lfCreateFile
317 * ½èÍýÆâÍÆ ¡§TPL¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
318 * °ú¿ô1    ¡§$pathޥޥޥ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹
319 * Ìá¤êÃÍ   ¡§¤Ê¤·
320 **************************************************************************************************************/
321function lfCreateFile($path){
322   
323    // ¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë     
324    if (!is_dir(dirname($path))) {
325        mkdir(dirname($path));
326    }
327
328    // ¥Õ¥¡¥¤¥ëºîÀ®
329    $fp = fopen($path,"w");
330    fwrite($fp, $_POST['tpl_data']);
331    fclose($fp);
332}
333
334/**************************************************************************************************************
335 * ´Ø¿ô̾   ¡§lfCreatePHPFile
336 * ½èÍýÆâÍÆ ¡§PHP¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë
337 * °ú¿ô1    ¡§$pathޥޥޥPHP¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹
338 * Ìá¤êÃÍ   ¡§¤Ê¤·
339 **************************************************************************************************************/
340function lfCreatePHPFile($path){
341
342    // phpÊݸÀè¥Ç¥£¥ì¥¯¥È¥ê¤¬Â¸ºß¤·¤Æ¤¤¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
343    if (!is_dir(dirname($path))) {
344        mkdir(dirname($path));
345    }
346   
347    // ¥Ù¡¼¥¹¤È¤Ê¤ëPHP¥Õ¥¡¥¤¥ë¤ÎÆÉ¤ß¹þ¤ß
348    if (file_exists(USER_DEF_PHP)){
349        $php_data = file_get_contents(USER_DEF_PHP);       
350    }
351   
352    // require.php¤Î¾ì½ê¤ò½ñ¤­´¹¤¨¤ë
353    $php_data = str_replace("###require###", ROOT_DIR . "html/require.php", $php_data);
354    sfprintr($php_data);
355    exit();
356   
357    copy(USER_DEF_PHP, $path . ".php");
358}
Note: See TracBrowser for help on using the repository browser.