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

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