source: temp/trunk/html/admin/design/upload.php @ 10429

Revision 10429, 5.2 KB checked in by uehara, 20 years ago (diff)
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");
9
10class LC_Page {
11
12    function LC_Page() {
13        $this->tpl_mainpage = 'design/upload.tpl';
14        $this->tpl_subnavi = 'design/subnavi.tpl';
15        $this->tpl_subno = 'template';
16        $this->tpl_subno_template = 'upload';
17        $this->tpl_mainno = "design";
18        $this->tpl_subtitle = '¥¢¥Ã¥×¥í¡¼¥É';
19        $this->template_name = '¥¢¥Ã¥×¥í¡¼¥É';
20    }
21}
22
23$objPage = new LC_Page();
24$objView = new SC_AdminView();
25$objSess = new SC_Session();
26$objQuery = new SC_Query();
27
28// ǧ¾Ú²ÄÈݤÎȽÄê
29$objSess = new SC_Session();
30sfIsSuccess($objSess);
31
32// ¥¢¥Ã¥×¥í¡¼¥É¤·¤¿¥Õ¥¡¥¤¥ë¤ò¥Õ¥©¥ë¥À
33$new_file_dir = USER_TEMPLATE_PATH.$_POST['template_code'];
34
35// ¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹
36$objUpFile = new SC_UploadFile(TEMPLATE_TEMP_DIR, $new_file_dir);
37// ¥Õ¥¡¥¤¥ë¾ðÊó¤Î½é´ü²½
38lfInitFile();
39// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
40$objFormParam = new SC_FormParam();
41// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
42lfInitParam();
43
44switch($_POST['mode']) {
45case 'upload':
46    $objFormParam->setParam($_POST);
47    $arrRet = $objFormParam->getHashArray();
48   
49    $objPage->arrErr = lfErrorCheck($arrRet);
50
51    // ¥Õ¥¡¥¤¥ë¤ò°ì»þ¥Õ¥©¥ë¥À¤ØÊݸ
52    $ret = $objUpFile->makeTempFile('template_file', false);
53    if($ret != "") {
54        $objPage->arrErr['template_file'] = $ret;
55    } else if(count($objPage->arrErr) <= 0) {
56        // ¥Õ¥©¥ë¥ÀºîÀ®
57        $ret = @mkdir($new_file_dir);
58        // °ì»þ¥Õ¥©¥ë¥À¤«¤éÊݸ¥Ç¥£¥ì¥¯¥È¥ê¤Ø°Üư
59        $objUpFile->moveTempFile();
60        // ²òÅà
61        lfUnpacking($new_file_dir, $_FILES['template_file']['name'], $new_file_dir."/");
62        // DB¤ËÊݸ
63        lfRegistTemplate($arrRet);
64       
65        $objPage->tpl_onload = "alert('¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤Þ¤·¤¿¡£');";
66    }
67    break;
68default:
69    break;
70}
71// ²èÌ̤Îɽ¼¨
72$objPage->arrForm = $objFormParam->getFormParamList();
73$objView->assignobj($objPage);
74$objView->display(MAIN_FRAME);
75
76//---------------------------------------------------------------------------------------------------------------------------------------------------------
77
78/*
79 * ´Ø¿ô̾¡§lfInitFile()
80 * ÀâÌÀ¡¡¡§¥Õ¥¡¥¤¥ë¾ðÊó¤Î½é´ü²½
81 */
82function lfInitFile() {
83    global $objUpFile;
84
85    $objUpFile->addFile("¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë", 'template_file', array(), TEMPLATE_SIZE, true, 0, 0, false);
86}
87
88/*
89 * ´Ø¿ô̾¡§lfInitParam()
90 * ÀâÌÀ¡¡¡§¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
91 */
92function lfInitParam() {
93    global $objFormParam;
94       
95    $objFormParam->addParam("¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É", "template_code", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK", "ALNUM_CHECK"));
96    $objFormParam->addParam("¥Æ¥ó¥×¥ì¡¼¥È̾", "template_name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
97}
98
99/*
100 * ´Ø¿ô̾¡§lfErrorCheck()
101 * °ú¿ô1 ¡§¥Ñ¥é¥á¡¼¥¿
102 * ÀâÌÀ¡¡¡§¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
103 */
104function lfErrorCheck($arrList) {
105    global $objQuery;
106    global $objFormParam;
107   
108    $objErr = new SC_CheckError($arrList);
109    $objErr->arrErr = $objFormParam->checkError();
110   
111    if(count($objErr->arrErr) <= 0) {
112        // Ʊ̾¤Î¥Õ¥©¥ë¥À¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¥¨¥é¡¼
113        if(file_exists(USER_TEMPLATE_PATH.$arrList['template_code'])) {
114            $objErr->arrErr['template_code'] = "¢¨ Ʊ̾¤Î¥Õ¥¡¥¤¥ë¤¬¤¹¤Ç¤Ë¸ºß¤·¤Þ¤¹¡£<br/>";
115        }
116        // DB¤Ë¤¹¤Ç¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¥Á¥§¥Ã¥¯
117        $ret = $objQuery->get("dtb_templates", "template_code", "template_code = ?", array($arrList['template_code']));
118        if($ret != "") {
119            $objErr->arrErr['template_code'] = "¢¨ ¤¹¤Ç¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥Æ¥ó¥×¥ì¡¼¥È¥³¡¼¥É¤Ç¤¹¡£<br/>";
120        }
121        // ¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¥Á¥§¥Ã¥¯(.tar/tar.gz¤Î¤ßµö²Ä)
122        $errFlag = true;
123        $array_ext = explode(".", $_FILES['template_file']['name']);
124        $ext = $array_ext[ count ( $array_ext ) - 1 ];
125        $ext = strtolower($ext);
126        // .tar¥Á¥§¥Ã¥¯
127        if ($ext == 'tar') {
128            $errFlag = false;
129        }
130
131        $ext = $array_ext[ count ( $array_ext ) - 2 ].".".$ext;
132        $ext = strtolower($ext);
133        // .tar.gz¥Á¥§¥Ã¥¯
134        if ($ext== 'tar.gz') {
135            $errFlag = false;
136        }
137       
138        if($errFlag) {
139            $objErr->arrErr['template_file'] = "¢¨ ¥¢¥Ã¥×¥í¡¼¥É¤¹¤ë¥Æ¥ó¥×¥ì¡¼¥È¥Õ¥¡¥¤¥ë¤Çµö²Ä¤µ¤ì¤Æ¤¤¤ë·Á¼°¤Ï¡¢tar/tar.gz¤Ç¤¹¡£<br />";     
140        }
141    }
142   
143    return $objErr->arrErr;
144}
145
146/*
147 * ´Ø¿ô̾¡§lfErrorCheck()
148 * °ú¿ô1 ¡§¥Ñ¥é¥á¡¼¥¿
149 * ÀâÌÀ¡¡¡§¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿ÅÐÏ¿
150 */
151function lfRegistTemplate($arrList) {
152    global $objQuery;
153   
154    // INSERT¤¹¤ëÃͤòºîÀ®¤¹¤ë¡£
155    $sqlval['template_code'] = $arrList['template_code'];
156    $sqlval['template_name'] = $arrList['template_name'];
157    $sqlval['create_date'] = "now()";
158    $sqlval['update_date'] = "now()";
159
160    $objQuery->insert("dtb_templates", $sqlval);
161}
162
163/*
164 * ´Ø¿ô̾¡§lfUnpacking
165 * °ú¿ô1 ¡§¥Ç¥£¥ì¥¯¥È¥ê
166 * °ú¿ô2 ¡§¥Õ¥¡¥¤¥ë¥Í¡¼¥à
167 * °ú¿ô3 ¡§²òÅà¥Ç¥£¥ì¥¯¥È¥ê
168 * ÀâÌÀ¡¡¡§¥Æ¥ó¥×¥ì¡¼¥È¥Ç¡¼¥¿ÅÐÏ¿
169 */
170function lfUnpacking($dir, $file_name, $unpacking_dir) {
171
172    // °µ½Ì¥Õ¥é¥°TRUE¤Ïgzip²òÅà¤ò¤ª¤³¤Ê¤¦
173    $tar = new Archive_Tar("$dir/$file_name", TRUE);
174
175    // ³ÈÄ¥»Ò¤òÀÚ¤ê¼è¤ë
176    $unpacking_name = ereg_replace("\.tar$", "", $file_name);
177    $unpacking_name = ereg_replace("\.tar\.gz$", "", $file_name);
178
179    // »ØÄꤵ¤ì¤¿¥Õ¥©¥ë¥ÀÆâ¤Ë²òÅह¤ë
180    $err = $tar->extractModify($unpacking_dir, $unpacking_name);
181
182    // ¥Õ¥©¥ë¥Àºï½ü
183    @sfDelFile("$dir/$unpacking_name");
184    // °µ½Ì¥Õ¥¡¥¤¥ëºï½ü
185    @unlink("$dir/$file_name");
186
187    return $err;
188}
Note: See TracBrowser for help on using the repository browser.