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

Revision 10495, 11.6 KB checked in by kaki, 19 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   
169    return $arrTemplateImage;
170}
171
172/**************************************************************************************************************
173 * ´Ø¿ô̾   ¡§lfgetTemplaeBaseData
174 * ½èÍýÆâÍÆ ¡§DB¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
175 * °ú¿ô     ¡§¤Ê¤·
176 * Ìá¤êÃÍ   ¡§DB¤ËÊݸ¤µ¤ì¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿(ÇÛÎó)
177 **************************************************************************************************************/
178function lfgetTemplaeBaseData(){
179    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
180    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
181    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ
182   
183    $sql = "SELECT top_tpl AS top, product_tpl AS product, detail_tpl AS detail, mypage_tpl AS mypage FROM dtb_baseinfo";
184    $arrRet = $objDBConn->getAll($sql);
185   
186    return $arrRet[0];
187}
188
189/**************************************************************************************************************
190 * ´Ø¿ô̾   ¡§lfUpdData
191 * ½èÍýÆâÍÆ ¡§DB¤Ë¥Ç¡¼¥¿¤òÊݸ¤¹¤ë
192 * °ú¿ô     ¡§¤Ê¤·
193 * Ìá¤êÃÍ   ¡§À®¸ù TRUE¡¢¥¨¥é¡¼ FALSE
194 **************************************************************************************************************/
195function lfUpdData(){
196    global $objPage;
197    $objDBConn = new SC_DbConn;     // DBÁàºî¥ª¥Ö¥¸¥§¥¯¥È
198    $sql = "";                      // ¥Ç¡¼¥¿¼èÆÀSQLÀ¸À®ÍÑ
199    $arrRet = array();              // ¥Ç¡¼¥¿¼èÆÀÍÑ(¹¹¿·È½Äê)
200
201    // ¥Ç¡¼¥¿¼èÆÀ   
202    $sql = "SELECT top_tpl AS top, product_tpl AS product, detail_tpl AS detail, mypage_tpl AS mypage FROM dtb_baseinfo";
203    $arrRet = $objDBConn->getAll($sql);
204
205    $chk_tpl = $_POST['check_template'];
206    // ¥Ç¡¼¥¿¤¬¼èÆÀ¤Ç¤­¤Ê¤±¤ì¤ÐINSERT¡¢¤Ç¤­¤ì¤ÐUPDATE
207    if (isset($arrRet[0])){
208        // UPDATE
209        $arrVal = $arrRet[0];
210       
211        // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
212        if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
213            $arrVal = array($chk_tpl,$chk_tpl,$chk_tpl,$chk_tpl);
214        }else{
215            $arrVal[$objPage->tpl_subno_template] = $chk_tpl;
216        }
217        $sql= "update dtb_baseinfo set top_tpl = ?, product_tpl = ?, detail_tpl = ?, mypage_tpl = ?, update_date = now()";
218    }else{
219        // INSERT
220        $arrVal = array(null,null,null,null);
221       
222        // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
223        if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
224            $arrVal = array($chk_tpl,$chk_tpl,$chk_tpl,$chk_tpl);
225        }else{
226            $arrVal[$chk_tpl-1] =$chk_tpl;
227        }
228        $sql= "insert into dtb_baseinfo (top_tpl,product_tpl,detail_tpl,mypage_tpl, update_date) values (?,?,?,?,now());";
229    }
230
231    // SQL¼Â¹Ô 
232    $arrRet = $objDBConn->query($sql,$arrVal);
233   
234    return $arrRet;
235}
236
237/**************************************************************************************************************
238 * ´Ø¿ô̾   ¡§lfChangeTemplate
239 * ½èÍýÆâÍÆ ¡§¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤¹¤ë
240 * °ú¿ô     ¡§¤Ê¤·
241 * Ìá¤êÃÍ   ¡§À®¸ù TRUE¡¢¥¨¥é¡¼ FALSE
242 **************************************************************************************************************/
243function lfChangeTemplate(){
244    global $objPage;
245    $tpl_path = USER_PATH . "templates/";
246    $inc_path = USER_PATH . "include/";
247    $css_path = USER_PATH . "css/";
248   
249    $tpl_name = "";
250    $tpl_element = "";
251   
252    $chk_tpl = $_POST['check_template'];
253   
254    // ¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿¤ò¼èÆÀ¤¹¤ë
255    $objQuery = new SC_Query();
256    $sql = "SELECT template_code,template_name FROM dtb_templates WHERE template_code = ?";
257    $arrTemplate = $objQuery->getall($sql, array($chk_tpl));   
258   
259    switch($objPage->tpl_subno_template) {
260        // TOP
261        case $objPage->arrSubnavi['title'][1]:
262            $tpl_element = "TopTemplate";           // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
263            $tpl_name = "top.tpl";
264            break;
265           
266        // ¾¦ÉʰìÍ÷
267        case $objPage->arrSubnavi['title'][2]:
268            $tpl_element = "ProdTemplate";          // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
269            $tpl_name = "list.tpl";
270            break;
271           
272        // ¾¦ÉʾܺÙ
273        case $objPage->arrSubnavi['title'][3]:
274            $tpl_element = "DetailTemplate";            // ¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
275            $tpl_name = "detail.tpl";
276            break;
277           
278        // MY¥Ú¡¼¥¸
279        case $objPage->arrSubnavi['title'][4]:
280            $tpl_element = "MypageTemplate";            //¥¤¥á¡¼¥¸¤ÎÇÛÎóÍ×ÁÇ̾³ÊǼÍÑ
281            $tpl_name = "mypage.tpl";
282            break;
283
284        default:
285            break;
286    }
287   
288    $taget_tpl_path = $tpl_path . $arrTemplate[0]['template_code'] . "/";
289    $save_tpl_path = $tpl_path;
290   
291    // TOP¤òÊѹ¹¤·¤¿¾ì¹ç¤Ë¤ÏÁ´²èÌÌÊѹ¹
292    if ($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][1]){
293        // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
294        copy($taget_tpl_path . "top.tpl", $save_tpl_path . "top.tpl");
295        copy($taget_tpl_path . "list.tpl", $save_tpl_path . "list.tpl");
296        copy($taget_tpl_path . "detail.tpl", $save_tpl_path . "detail.tpl");
297
298        // mypage¤Ï¥Õ¥©¥ë¥À¤´¤È¥³¥Ô¡¼
299        lfFolderCopy($taget_tpl_path."mypage/", $save_tpl_path . "mypage/");
300
301        // ¥Ö¥í¥Ã¥¯¥Ç¡¼¥¿¤Î¥³¥Ô¡¼
302        lfFolderCopy($taget_tpl_path."bloc/", $inc_path . "bloc/");
303       
304        // ¥Ø¥Ã¥À¡¼,¥Õ¥Ã¥¿¡¼¥³¥Ô¡¼
305        copy($taget_tpl_path . "header.tpl", $inc_path . "header.tpl");
306        copy($taget_tpl_path . "footer.tpl", $inc_path . "footer.tpl");
307       
308        // CSS¥Õ¥¡¥¤¥ë¤Î¥³¥Ô¡¼
309        copy($taget_tpl_path . "contents.css", $css_path . "contents.css");
310
311    // mypage¤Î¾ì¹ç¤Ë¤Ï¥Õ¥©¥ë¥À¤´¤È¥³¥Ô¡¼¤¹¤ë
312    }elseif($objPage->tpl_subno_template == $objPage->arrSubnavi['title'][4]){
313        lfFolderCopy($taget_tpl_path."mypage/", $save_tpl_path."mypage/");
314    }else{
315        // ¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼
316        copy($taget_tpl_path . $tpl_name, $save_tpl_path . $tpl_name);
317    }
318}
319
320/**************************************************************************************************************
321 * ´Ø¿ô̾   ¡§lfDownloadTemplate
322 * ½èÍýÆâÍÆ ¡§¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë°µ½Ì¤·¤Æ¥À¥¦¥ó¥í¡¼¥É¤¹¤ë
323 * °ú¿ô1    ¡§¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É
324 * Ìá¤êÃÍ   ¡§¤Ê¤·
325 **************************************************************************************************************/
326function lfDownloadTemplate($template_code){
327    $filename = $template_code. ".tar.gz";
328    $dl_file = USER_TEMPLATE_PATH.$filename;
329   
330    // IMG¥Õ¥©¥ë¥À¤ò¥³¥Ô¡¼
331    lfFolderCopy(HTML_PATH."img/", USER_TEMPLATE_PATH.$template_code);
332   
333    // ¥Õ¥¡¥¤¥ë¤Î°µ½Ì
334    $tar = new Archive_Tar($dl_file, TRUE);
335    // ¥Õ¥¡¥¤¥ë°ìÍ÷¼èÆÀ
336    $arrFileHash = sfGetFileList(USER_TEMPLATE_PATH.$template_code);
337    foreach($arrFileHash as $val) {
338        $arrFileList[] = $val['file_name'];
339    }
340    // ¥Ç¥£¥ì¥¯¥È¥ê¤ò°Üư
341    chdir(USER_TEMPLATE_PATH.$template_code);
342   
343    //°µ½Ì¤ò¤ª¤³¤Ê¤¦
344    $zip = $tar->create($arrFileList);
345       
346    // ¥À¥¦¥ó¥í¡¼¥É³«»Ï
347    Header("Content-disposition: attachment; filename=${filename}");
348    Header("Content-type: application/octet-stream; name=${dl_file}");
349    header("Content-Length: " .filesize($dl_file));
350    readfile ($dl_file);
351    // °µ½Ì¥Õ¥¡¥¤¥ëºï½ü
352    unlink($dl_file);
353   
354    exit();
355}
356
357/**************************************************************************************************************
358 * ´Ø¿ô̾   ¡§lfFolderCopy
359 * ½èÍýÆâÍÆ ¡§¥Õ¥©¥ë¥À¤ò¥³¥Ô¡¼¤¹¤ë
360 * °ú¿ô1    ¡§¥³¥Ô¡¼¸µ¥Ñ¥¹
361 * °ú¿ô2¡¡¡¡¡§¥³¥Ô¡¼Àè¥Ñ¥¹
362 * Ìá¤êÃÍ   ¡§¤Ê¤·
363 **************************************************************************************************************/
364function lfFolderCopy($taget_path, $save_path){
365
366    // ¥Õ¥©¥ë¥ÀÆâ¤Î¥Õ¥¡¥¤¥ë¤ò¼èÆÀ¤¹¤ë
367    $arrMypage=glob($taget_path . "*" );
368   
369    // ¥Õ¥©¥ë¥À¤¬¤Ê¤±¤ì¤ÐºîÀ®¤¹¤ë
370    if(!is_dir($save_path)){
371        mkdir($save_path);
372    }
373
374    // ¥Õ¥©¥ë¥ÀÆâ¤òÁ´¤Æ¥³¥Ô¡¼
375    foreach($arrMypage as $key => $val){
376        $matches = array();
377        mb_ereg("^(.*[\/])(.*)",$val, $matches);
378        $data=$matches[2];
379        copy($val, $save_path . $data);
380    }
381}
Note: See TracBrowser for help on using the repository browser.