source: temp/trunk/html/admin/design/template.php @ 10438

Revision 10438, 11.5 KB checked in by uehara, 20 years ago (diff)
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?php
2/*
3 * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7require_once("../../require.php");
8require_once(DATA_PATH. "module/Tar.php");
9require_once(DATA_PATH. "include/file_manager.inc");
10
11class LC_Page {
12    var $arrForm;
13    var $arrHidden;
14    var $arrSubnavi = array(
15        'title' => array(
16            1 => 'top',
17            2 => 'product',
18            3 => 'detail',
19            4 => 'mypage'
20        ),
21        'name' =>array(
22            1 => 'TOP¥Ú¡¼¥¸',
23            2 => '¾¦ÉʰìÍ÷¥Ú¡¼¥¸',
24            3 => '¾¦Éʾܺ٥ڡ¼¥¸',
25            4 => 'MY¥Ú¡¼¥¸'
26        )
27    );
28
29    function LC_Page() {
30        $this->tpl_mainpage = 'design/template.tpl';
31        $this->tpl_subnavi = 'design/subnavi.tpl';
32        $this->tpl_subno = 'template';
33        $this->tpl_subno_template = $this->arrSubnavi['title'][1];
34        $this->tpl_TemplateName = $this->arrTemplateName['name'][1];
35        $this->tpl_mainno = "design";
36        $this->tpl_subtitle = '¥Æ¥ó¥×¥ì¡¼¥ÈÀßÄê';
37    }
38}
39
40$objPage = new LC_Page();
41$objView = new SC_AdminView();
42$objSess = new SC_Session();
43
44// ǧ¾Ú²ÄÈݤÎȽÄê
45$objSess = new SC_Session();
46sfIsSuccess($objSess);
47
48// GET¤ÎÃͤò¼õ¤±¼è¤ë
49$get_tpl_subno_template = $_GET['tpl_subno_template'];
50
51// GET¤ÇÃͤ¬Á÷¤é¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¤½¤ÎÃͤò¸µ¤Ë²èÌÌɽ¼¨¤òÀÚ¤êÂØ¤¨¤ë
52if ($get_tpl_subno_template != ""){
53    // Á÷¤é¤ì¤Æ¤­¤¿Ãͤ¬ÇÛÎó¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤±¤ì¤ÐTOP¤òɽ¼¨
54    if (in_array($get_tpl_subno_template,$objPage->arrSubnavi['title'])){
55        $tpl_subno_template = $get_tpl_subno_template;
56    }else{
57        $tpl_subno_template = $objPage->arrSubnavi['title'][1];
58    }
59} else {
60    // GET¤ÇÃͤ¬¤Ê¤±¤ì¤ÐPOST¤ÎÃͤò»ÈÍѤ¹¤ë
61    if ($_POST['tpl_subno_template'] != ""){
62        $tpl_subno_template = $_POST['tpl_subno_template'];
63    }else{
64        $tpl_subno_template = $objPage->arrSubnavi['title'][1];
65    }
66}
67$objPage->tpl_subno_template = $tpl_subno_template;
68$key = array_keys($objPage->arrSubnavi['title'], $tpl_subno_template);
69$objPage->template_name = $objPage->arrSubnavi['name'][$key[0]];
70
71// ÅÐÏ¿¤ò²¡¤µ¤ì¤¿¤Ð¤¢¤Ë¤ÏDB¤Ø¥Ç¡¼¥¿¤ò¹¹¿·¤Ë¹Ô¤¯
72switch($_POST['mode']) {
73case 'confirm':
74    // DB¤Ø¥Ç¡¼¥¿¹¹¿·
75    lfUpdData();
76   
77    // ¥Æ¥ó¥×¥ì¡¼¥È¤Î¾å½ñ¤­
78    lfChangeTemplate();
79   
80    // ´°Î»¥á¥Ã¥»¡¼¥¸
81    $objPage->tpl_onload="alert('ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');";
82    break;
83case 'download':
84    lfDownloadTemplate($_POST['check_template']);
85    break;
86default:
87    break;
88}
89
90// POSTÃͤΰú¤­·Ñ¤®
91$objPage->arrForm = $_POST;
92
93// ²èÁü¼èÆÀ
94$tpl_arrTemplate = array();
95$objPage->arrTemplate = lfgetTemplate();
96
97// ¥Ç¥Õ¥©¥ë¥È¥Á¥§¥Ã¥¯¼èÆÀ
98$objPage->MainImage = $objPage->arrTemplate['check'];
99$objPage->arrTemplate['check'] = array($objPage->arrTemplate['check']=>"check");
100
101// ²èÌ̤Îɽ¼¨
102$objView->assignobj($objPage);
103$objView->display(MAIN_FRAME);
104
105//---------------------------------------------------------------------------------------------------------------------------------------------------------
106
107/**************************************************************************************************************
108 * ´Ø¿ô̾   ¡§lfgetTemplate
109 * ½èÍýÆâÍÆ ¡§²èÌ̤Ëɽ¼¨¤¹¤ë²èÁü¤ò¼èÆÀ¤¹¤ë
110 * °ú¿ô     ¡§¤Ê¤·
111 * Ìá¤êÃÍ   ¡§²èÌ̤Ëɽ¼¨¤¹¤ë²èÁü(ÇÛÎó)
112 **************************************************************************************************************/
113function lfgetTemplate(){
114    global $objPage;
115    $filepath = "user_data/templates/";
116   
117    $arrTemplateImage = array();    // ²èÌÌɽ¼¨²èÁü³ÊǼÍÑ
118    $Image = "";                    // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
119    $disp = "";
120    $arrDefcheck = array();         // radio¥Ü¥¿¥ó¤Î¥Ç¥Õ¥©¥ë¥È¥Á¥§¥Ã¥¯³ÊǼÍÑ
121   
122    // DB¤«¤é¸½ºßÁªÂò¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¼èÆÀ
123    $arrDefcheck = lfgetTemplaeBaseData();
124   
125    // ¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
126    $objQuery = new SC_Query();
127    $sql = "SELECT template_code,template_name FROM dtb_templates ORDER BY create_date DESC";
128    $arrTemplate = $objQuery->getall($sql);
129   
130    switch($objPage->tpl_subno_template) {
131        // TOP
132        case $objPage->arrSubnavi['title'][1]:
133            $Image = "img/TopImage.jpg";            // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
134            $disp = $objPage->arrSubnavi['title'][1];
135            break;
136           
137        // ¾¦ÉʰìÍ÷
138        case $objPage->arrSubnavi['title'][2]:
139            $Image = "img/ProdImage.jpg";           // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
140            $disp = $objPage->arrSubnavi['title'][2];
141            break;
142           
143        // ¾¦ÉʾܺÙ
144        case $objPage->arrSubnavi['title'][3]:
145            $Image = "img/DetailImage.jpg";         // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
146            $disp = $objPage->arrSubnavi['title'][3];
147            break;
148           
149        // MY¥Ú¡¼¥¸
150        case $objPage->arrSubnavi['title'][4]:
151            $Image = "img/MypageImage.jpg";         //¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
152            $disp = $objPage->arrSubnavi['title'][4];
153            break;
154    }
155
156    // ²èÁüɽ¼¨ÇÛÎóºîÀ®
157    foreach($arrTemplate as $key => $val){
158        $arrTemplateImage['image'][$val['template_code']] = $filepath . $val['template_code'] . "/" . $Image;
159        $arrTemplateImage['code'][$key] = $val['template_code'];
160    }
161   
162    // ½é´ü¥Á¥§¥Ã¥¯
163    if (isset($arrDefcheck[$disp])){
164        $arrTemplateImage['check'] = $arrDefcheck[$disp];
165    }else{
166        $arrTemplateImage['check'] = 1;
167    }
168   
169sfprintr($arrTemplateImage);
170    return $arrTemplateImage;
171}
172
173/**************************************************************************************************************
174 * ´Ø¿ô̾   ¡§lfgetTemplaeBaseData
175 * ½èÍýÆâÍÆ ¡§DB¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
176 * °ú¿ô     ¡§¤Ê¤·
177 * Ìá¤êÃÍ   ¡§DB¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿(ÇÛÎó)
178 **************************************************************************************************************/
179function lfgetTemplaeBaseData(){
180    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
181    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
182    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ
183   
184    $sql = "SELECT top_tpl AS top, product_tpl AS product, detail_tpl AS detail, mypage_tpl AS mypage FROM dtb_baseinfo";
185    $arrRet = $objDBConn->getAll($sql);
186   
187    return $arrRet[0];
188}
189
190/**************************************************************************************************************
191 * ´Ø¿ô̾   ¡§lfUpdData
192 * ½èÍýÆâÍÆ ¡§DB¤Ë¥Ç¡¼¥¿¤òÊݸ¤¹¤ë
193 * °ú¿ô     ¡§¤Ê¤·
194 * Ìá¤êÃÍ   ¡§À®¸ù TRUE¡¢¥¨¥é¡¼ FALSE
195 **************************************************************************************************************/
196function lfUpdData(){
197    global $objPage;
198    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
199    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
200    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ(¹¹¿·È½Äê)
201
202    // ¥Ç¡¼¥¿¼èÆÀ   
203    $sql = "SELECT top_tpl AS top, product_tpl AS product, detail_tpl AS detail, mypage_tpl AS mypage FROM dtb_baseinfo";
204    $arrRet = $objDBConn->getAll($sql);
205
206    $chk_tpl = $_POST['check_template'];
207    // ¥Ç¡¼¥¿¤¬¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤ÐINSERT¡¢¤Ç¤­¤ì¤ÐUPDATE
208    if (isset($arrRet[0])){
209        // UPDATE
210        $arrVal = $arrRet[0];
211       
212        // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
213        if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
214            $arrVal = array($chk_tpl,$chk_tpl,$chk_tpl,$chk_tpl);
215        }else{
216            $arrVal[$objPage->tpl_subno_template] = $chk_tpl;
217        }
218        $sql= "update dtb_baseinfo set top_tpl = ?, product_tpl = ?, detail_tpl = ?, mypage_tpl = ?, update_date = now()";
219    }else{
220        // INSERT
221        $arrVal = array(null,null,null,null);
222       
223        // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
224        if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
225            $arrVal = array($chk_tpl,$chk_tpl,$chk_tpl,$chk_tpl);
226        }else{
227            $arrVal[$chk_tpl-1] =$chk_tpl;
228        }
229        $sql= "insert into dtb_baseinfo (top_tpl,product_tpl,detail_tpl,mypage_tpl, update_date) values (?,?,?,?,now());";
230    }
231
232    // SQL¼Â¹Ô 
233    $arrRet = $objDBConn->query($sql,$arrVal);
234   
235    return $arrRet;
236}
237
238/**************************************************************************************************************
239 * ´Ø¿ô̾   ¡§lfChangeTemplate
240 * ½èÍýÆâÍÆ ¡§¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë
241 * °ú¿ô     ¡§¤Ê¤·
242 * Ìá¤êÃÍ   ¡§À®¸ù TRUE¡¢¥¨¥é¡¼ FALSE
243 **************************************************************************************************************/
244function lfChangeTemplate(){
245    global $objPage;
246    $tpl_path = USER_PATH . "templates/";
247    $inc_path = USER_PATH . "include/";
248    $css_path = USER_PATH . "css/";
249   
250    $tpl_name = "";
251    $tpl_element = "";
252   
253    $chk_tpl = $_POST['check_template'];
254   
255    // ¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
256    $objQuery = new SC_Query();
257    $sql = "SELECT template_code,template_name FROM dtb_templates WHERE template_code = ?";
258    $arrTemplate = $objQuery->getall($sql, array($chk_tpl));   
259   
260    switch($objPage->tpl_subno_template) {
261        // TOP
262        case $objPage->arrSubnavi['title'][1]:
263            $tpl_element = "TopTemplate";           // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
264            $tpl_name = "top.tpl";
265            break;
266           
267        // ¾¦ÉʰìÍ÷
268        case $objPage->arrSubnavi['title'][2]:
269            $tpl_element = "ProdTemplate";          // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
270            $tpl_name = "list.tpl";
271            break;
272           
273        // ¾¦ÉʾܺÙ
274        case $objPage->arrSubnavi['title'][3]:
275            $tpl_element = "DetailTemplate";            // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
276            $tpl_name = "detail.tpl";
277            break;
278           
279        // MY¥Ú¡¼¥¸
280        case $objPage->arrSubnavi['title'][4]:
281            $tpl_element = "MypageTemplate";            //¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
282            $tpl_name = "mypage.tpl";
283            break;
284
285        default:
286            break;
287    }
288   
289    $taget_tpl_path = $tpl_path . $arrTemplate[0]['template_code'] . "/";
290    $save_tpl_path = $tpl_path;
291   
292    // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
293    if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
294        // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
295        copy($taget_tpl_path . "top.tpl", $save_tpl_path . "top.tpl");
296        copy($taget_tpl_path . "list.tpl", $save_tpl_path . "list.tpl");
297        copy($taget_tpl_path . "detail.tpl", $save_tpl_path . "detail.tpl");
298
299        // mypage¤Ï¥Õ¥©¥ë¥À¤´¤È¥³¥Ô¡¼
300        lfFolderCopy($taget_tpl_path."mypage/", $save_tpl_path . "mypage/");
301
302        // ¥Ö¥í¥Ã¥¯¥Ç¡¼¥¿¤Î¥³¥Ô¡¼
303        lfFolderCopy($taget_tpl_path."bloc/", $inc_path . "bloc/");
304       
305        // ¥Ø¥Ã¥À¡¼,¥Õ¥Ã¥¿¡¼¥³¥Ô¡¼
306        copy($taget_tpl_path . "header.tpl", $inc_path . "header.tpl");
307        copy($taget_tpl_path . "footer.tpl", $inc_path . "footer.tpl");
308       
309        // CSS¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
310        copy($taget_tpl_path . "contents.css", $css_path . "contents.css");
311
312    // mypage¤Î¾ì¹ç¤Ë¤Ï¥Õ¥©¥ë¥À¤´¤È¥³¥Ô¡¼¤¹¤ë
313    }elseif($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][4]){
314        lfFolderCopy($taget_tpl_path."mypage/", $save_tpl_path."mypage/");
315    }else{
316        // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
317        copy($taget_tpl_path . $tpl_name, $save_tpl_path . $tpl_name);
318    }
319}
320
321/**************************************************************************************************************
322 * ´Ø¿ô̾   ¡§lfDownloadTemplate
323 * ½èÍýÆâÍÆ ¡§¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë°µ½Ì¤·¤Æ¥À¥¦¥ó¥í¡¼¥É¤¹¤ë
324 * °ú¿ô1    ¡§¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É
325 * Ìá¤êÃÍ   ¡§¤Ê¤·
326 **************************************************************************************************************/
327function lfDownloadTemplate($template_code){
328    $filename = $template_code. ".tar.gz";
329    $dl_file = USER_TEMPLATE_PATH.$filename;
330   
331    // ¥Õ¥¡¥¤¥ë¤Î°µ½Ì
332    $tar = new Archive_Tar($dl_file, TRUE);
333    // ¥Õ¥¡¥¤¥ë°ìÍ÷¼èÆÀ
334    $arrFileHash = sfGetFileList(USER_TEMPLATE_PATH.$template_code);
335    foreach($arrFileHash as $val) {
336        $arrFileList[] = $val['file_path'];
337    }
338   
339    //°µ½Ì¤ò¤ª¤³¤Ê¤¦
340    $zip = $tar->create($arrFileList);
341       
342    // ¥À¥¦¥ó¥í¡¼¥É³«»Ï
343    Header("Content-disposition: attachment; filename=${filename}");
344    Header("Content-type: application/octet-stream; name=${dl_file}");
345    header("Content-Length: " .filesize($dl_file));
346    readfile ($dl_file);
347    // °µ½Ì¥Õ¥¡¥¤¥ëºï½ü
348    unlink($dl_file);
349   
350    exit();
351}
352
353/**************************************************************************************************************
354 * ´Ø¿ô̾   ¡§lfFolderCopy
355 * ½èÍýÆâÍÆ ¡§¥Õ¥©¥ë¥À¤ò¥³¥Ô¡¼¤¹¤ë
356 * °ú¿ô1    ¡§¥³¥Ô¡¼¸µ¥Ñ¥¹
357 * °ú¿ô2¡¡¡¡¡§¥³¥Ô¡¼Àè¥Ñ¥¹
358 * Ìá¤êÃÍ   ¡§¤Ê¤·
359 **************************************************************************************************************/
360function lfFolderCopy($taget_path, $save_path){
361
362    // ¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤¹¤ë
363    $arrMypage=glob($taget_path . "*" );
364   
365    // ¥Õ¥©¥ë¥À¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
366    if(!is_dir($save_path)){
367        mkdir($save_path);
368    }
369
370    // ¥Õ¥©¥ë¥ÀÆâ¤òÁ´¤Æ¥³¥Ô¡¼
371    foreach($arrMypage as $key => $val){
372        $matches = array();
373        mb_ereg("^(.*[\/])(.*)",$val, $matches);
374        $data=$matches[2];
375        copy($val, $save_path . $data);
376    }
377}
Note: See TracBrowser for help on using the repository browser.