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

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