- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php
r16741 r18609 24 24 // {{{ requires 25 25 require_once(CLASS_PATH . "pages/LC_Page.php"); 26 require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php"); 26 27 27 28 /** … … 64 65 SC_Utils_Ex::sfIsSuccess($objSess); 65 66 66 $css_path = USER_PATH . "css/common.css"; 67 68 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 69 70 // データ更新処理 71 if ($_POST['mode'] == 'confirm'){ 72 // プレビュー用テンプレートに書き込み 73 $fp = fopen($css_path,"w"); // TODO 74 fwrite($fp, $_POST['css']); 75 fclose($fp); 76 77 $this->tpl_onload="alert('登録が完了しました。');"; 78 } 67 $objFileManager = new SC_Helper_FileManager_Ex(); 68 69 // CSSファイル名を取得 70 if (isset($_POST['css_name'])) { 71 $css_name = $_POST['css_name']; 72 }else if (isset($_GET['css_name'])){ 73 $css_name = $_GET['css_name']; 74 }else{ 75 $css_name = ''; 76 } 77 $this->css_name = $css_name; 78 79 if (isset($_POST['old_css_name'])) { 80 $old_css_name = $_POST['old_css_name']; 81 }else if (isset($_GET['css_name'])) { 82 $old_css_name = $_GET['css_name']; 83 }else{ 84 $old_css_name = ''; 85 } 86 $this->old_css_name = $old_css_name; 87 88 $css_dir = USER_TEMPLATE_PATH . TEMPLATE_NAME . "/css/"; 89 $css_path = $css_dir . $css_name . '.css'; 79 90 80 91 // CSSファイルの読み込み 81 if(file_exists($css_path)){ 82 $css_data = file_get_contents($css_path); 83 } 84 92 if($css_name != ''){ 93 $css_data = $objFileManager->sfReadFile($css_path); 94 } 85 95 // テキストエリアに表示 86 96 $this->css_data = $css_data; 97 98 if (!isset($_POST['mode'])) $_POST['mode'] = ""; 99 100 switch($_POST['mode']) { 101 // データ更新処理 102 case 'confirm': 103 $this->lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path); 104 break; 105 case 'delete': 106 $this->lfExecuteDelete($css_path); 107 break; 108 default: 109 if(isset($_POST['mode'])) { 110 GC_Utils::gfPrintLog("MODEエラー:".$_POST['mode']); 111 } 112 break; 113 } 114 115 // ファイルリストを取得 116 $this->arrCSSList = $this->lfGetCSSList($css_dir); 87 117 88 118 // 画面の表示 … … 99 129 parent::destroy(); 100 130 } 131 132 function lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path) { 133 $objFileManager = new SC_Helper_FileManager_Ex(); 134 135 // エラーチェック 136 $this->arrErr = $this->lfErrorCheck($_POST, $css_dir); 137 138 // エラーがなければ更新処理を行う 139 if (count($this->arrErr) == 0) { 140 // 旧ファイルの削除 141 if ($old_css_name != '' && $old_css_name != $css_name) { 142 $objFileManager->sfDeleteDir($css_dir . $old_css_name . '.css'); 143 } 144 // プレビュー用テンプレートに書き込み 145 $objFileManager->sfWriteFile($css_path, $_POST['css']); 146 147 $this->tpl_onload="alert('登録が完了しました。');"; 148 $this->old_css_name = $css_name; 149 } 150 $this->css_data = $_POST['css']; 151 } 152 153 function lfExecuteDelete($css_path) { 154 $objFileManager = new SC_Helper_FileManager_Ex(); 155 156 // css_name が空でない場合にはdeleteを実行 157 if ($_POST['css_name'] !== '') { 158 $objFileManager->sfDeleteDir($css_path); 159 } 160 $this->sendRedirect($this->getLocation("./css.php")); 161 } 162 163 /** 164 * CSSファイルのリストを取得. 165 * 166 * @param array $css_dir CSSディレクトリ 167 * @return array ファイルリスト 168 */ 169 function lfGetCSSList($css_dir) { 170 $objFileManager = new SC_Helper_FileManager_Ex(); 171 172 $arrFileList = $objFileManager->sfGetFileList($css_dir); 173 foreach ($arrFileList as $key => $val) { 174 if (!$val['is_dir']) { 175 $arrCSSList[] = array( 176 'file_name' => $val['file_name'], 177 'css_name' => preg_replace('/(.+)\.(.+?)$/','$1',$val['file_name']), 178 ); 179 } 180 } 181 return $arrCSSList; 182 } 183 184 /** 185 * 入力項目のエラーチェックを行う. 186 * 187 * @param array $arrData 入力データ 188 * @param array $css_dir CSSディレクトリ 189 * @return array エラー情報 190 */ 191 function lfErrorCheck($array, $css_dir) { 192 $objErr = new SC_CheckError($array); 193 194 $objErr->doFunc(array("CSSファイル名", "css_name", STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK")); 195 196 // 入力文字が英数字,"_","-"以外ならエラーを返す 197 if(!isset($objErr->arrErr['css_name'])){ 198 if(!ereg("^[a-zA-Z0-9_\.-]+$", $array['css_name'])) { 199 $objErr->arrErr['css_name'] = '※ CSSファイル名は英数字と"_"および"-"だけを入力してください。<br />'; 200 } 201 } 202 203 // 同一のファイル名が存在している場合にはエラー 204 if(!isset($objErr->arrErr['css_name'])){ 205 $arrCSSList = $this->lfGetCSSList($css_dir); 206 foreach ($arrCSSList as $key => $val) { 207 if ($val['css_name'] == $array['css_name']) { 208 if ($array['old_css_name'] == '' || $array['old_css_name'] != $array['css_name']) { 209 $errFlg = TRUE; 210 } 211 } 212 } 213 if ($errFlg) $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />'; 214 } 215 216 return $objErr->arrErr; 217 } 101 218 } 102 219 ?>
Note: See TracChangeset
for help on using the changeset viewer.