Index: /branches/comu-ver2/data/Smarty/templates/default/site_frame.tpl
===================================================================
--- /branches/comu-ver2/data/Smarty/templates/default/site_frame.tpl	(revision 16633)
+++ /branches/comu-ver2/data/Smarty/templates/default/site_frame.tpl	(revision 17112)
@@ -26,5 +26,5 @@
 <meta http-equiv="Content-Script-Type" content="text/javascript" />
 <meta http-equiv="Content-Style-Type" content="text/css" />
-<link rel="stylesheet" href="<!--{$smarty.const.URL_DIR}--><!--{$smarty.const.USER_DIR}-->css/common.css" type="text/css" media="all" />
+<link rel="stylesheet" href="<!--{$TPL_DIR}-->css/import.css" type="text/css" media="all" />
 <link rel="alternate" type="application/rss+xml" title="RSS" href="<!--{$smarty.const.SITE_URL}-->rss/index.php" />
 <script type="text/javascript" src="<!--{$TPL_DIR}-->js/css.js"></script>
Index: /branches/comu-ver2/data/Smarty/templates/default/admin/design/css.tpl
===================================================================
--- /branches/comu-ver2/data/Smarty/templates/default/admin/design/css.tpl	(revision 16582)
+++ /branches/comu-ver2/data/Smarty/templates/default/admin/design/css.tpl	(revision 17112)
@@ -27,4 +27,5 @@
 <input type="hidden" name="mode" value="">
 <input type="hidden" name="area_row" value=<!--{$area_row}-->>
+<input type="hidden" name="old_css_name" value="<!--{$old_css_name}-->" />
 	<tr valign="top">
 		<td background="<!--{$TPL_DIR}-->img/contents/navi_bg.gif" height="402">
@@ -64,23 +65,14 @@
 								</table>
 								
-								<!--▼注意書き　ここから-->
-								<table width="678" border="0" cellspacing="1" cellpadding="8" summary=" ">
-									<tr class="fs12n">
-										<td bgcolor="#ffffff" align="left">
-											下のテキストエリアに独自のCSSを定義することができます。<br/>
-											ここで定義したものは全ページに反映されます。
-										</td>
-									</tr>
-								</table>
-								<!--▲注意書き　ここまで-->
-
-								<table width="678" border="0" cellspacing="0" cellpadding="0" summary=" ">
-									<tr><td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/main_bar.jpg" width="678" height="10" alt=""></td></tr>
-								</table>
-
 								<!--▼CSS編集　ここから-->
 								<table width="678" border="0" cellspacing="1" cellpadding="8" summary=" ">
+    							<tr class="fs12n">
+		    						<td bgcolor="#ffffff" align="left">
+				    					<!--{ if $arrErr.css_name != "" }--> <div align="center"> <span class="red12"><!--{$arrErr.css_name}--></span></div> <!--{/if}-->
+						    			CSSファイル名：<input type="text" name="css_name" value="<!--{$css_name}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{if $arrErr.css_name != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" size="60" class="box60" />.css<span class="red"> （上限<!--{$smarty.const.STEXT_LEN}-->文字）</span>
+								    </td>
+    							</tr>
 									<tr class="fs12n">
-										<td bgcolor="#f2f1ec" align="center">
+										<td bgcolor="#ffffff" align="center">
 											<textarea name="css" cols=90 rows=<!--{$area_row}--> align="left" wrap=off style="width: 650px;"><!--{$css_data}--></textarea>
 											<div align="right">
@@ -96,4 +88,40 @@
 								</table>
 								<!--▲CSS編集　ここまで-->
+
+    						<table width="678" border="0" cellspacing="0" cellpadding="0" summary=" ">
+		    					<tr><td colspan="3"><img src="<!--{$TPL_DIR}-->img/contents/main_bar.jpg" width="678" height="10" alt=""></td></tr>
+				    		</table>
+
+    						<!--▼CSSファイル一覧　ここから-->
+		    				<table width="678" border="0" cellspacing="1" cellpadding="5" summary=" ">
+				    			<tr class="fs12n">
+						    		<td bgcolor="#f2f1ec" align="center" colspan=2 ><strong>編集可能CSSファイル</strong></td>
+    							</tr>
+		    					
+                  <!--{if count($arrCSSList) > 0}-->
+				    			<!--{foreach key=key item=item from=$arrCSSList}-->
+						    	<tr class="fs12n" height=20>
+								    <td align="center" width=600 bgcolor="<!--{if $item.css_name == $css_name}--><!--{$smarty.const.SELECT_RGB}--><!--{else}-->#ffffff<!--{/if}-->">
+    									<a href="<!--{$smarty.server.PHP_SELF}-->?css_name=<!--{$item.css_name}-->"><!--{$item.file_name}--></a>
+		    						</td>
+				    				<td  align="center" width=140 bgcolor="<!--{if $item.css_name == $css_name}--><!--{$smarty.const.SELECT_RGB}--><!--{else}-->#ffffff<!--{/if}-->">
+								    	<input type="button" value="削除" name="del_<!--{$item.css_name}-->" onclick="fnFormModeSubmit('form_css','delete','css_name','<!--{$item.css_name}-->');"  />
+				    				</td>
+						    	</tr>
+    							<!--{/foreach}-->
+                  <!--{else}-->
+				    			<tr class="fs12n">
+						    		<td bgcolor="#ffffff" align="center" colspan=2 >CSSファイルが存在しません。</td>
+    							</tr>
+                  <!--{/if}-->
+
+		    					<tr class="fs12n">
+				    				<td bgcolor="#f2f1ec" align="center" colspan=2>
+						    		<input type='button' value='新規CSS作成' name='subm' onclick="location.href='http://<!--{$smarty.server.HTTP_HOST}--><!--{$smarty.server.PHP_SELF|escape}-->'">
+								    </td>
+    							</tr>
+		    				</table>
+				    		<!--▲CSSファイル一覧　ここまで-->
+
 								</td>
 								<td background="<!--{$TPL_DIR}-->img/contents/main_right.jpg"><img src="<!--{$TPL_DIR}-->img/common/_.gif" width="14" height="1" alt=""></td>
Index: /branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php
===================================================================
--- /branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 16741)
+++ /branches/comu-ver2/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 17112)
@@ -24,4 +24,5 @@
 // {{{ requires
 require_once(CLASS_PATH . "pages/LC_Page.php");
+require_once(CLASS_EX_PATH . "helper_extends/SC_Helper_FileManager_Ex.php");
 
 /**
@@ -64,10 +65,79 @@
         SC_Utils_Ex::sfIsSuccess($objSess);
 
-        $css_path = USER_PATH . "css/common.css";
+        $objFileManager = new SC_Helper_FileManager_Ex();
+
+        // CSSファイル名を取得
+        if (isset($_POST['css_name'])) {
+            $css_name = $_POST['css_name'];
+        }else if (isset($_GET['css_name'])){
+            $css_name = $_GET['css_name'];
+        }else{
+            $css_name = '';
+        }
+        $this->css_name = $css_name;
+
+        if (isset($_POST['old_css_name'])) {
+            $old_css_name = $_POST['old_css_name'];
+        }else if (isset($_GET['css_name'])) {
+            $old_css_name = $_GET['css_name'];
+        }else{
+            $old_css_name = '';
+        }
+        $this->old_css_name = $old_css_name;
+
+        $css_dir =  USER_TEMPLATE_PATH . TEMPLATE_NAME . "/css/";
+        $css_path = $css_dir . $css_name . '.css';
+
+        // CSSファイルの読み込み
+        if($css_name != '' && file_exists($css_path)){
+            $css_data = file_get_contents($css_path);
+        }
+        // テキストエリアに表示
+        $this->css_data = $css_data;
 
         if (!isset($_POST['mode'])) $_POST['mode'] = "";
 
-        // データ更新処理
-        if ($_POST['mode'] == 'confirm'){
+        switch($_POST['mode']) {
+            // データ更新処理
+            case 'confirm':
+                $this->lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path);
+        	    break;
+            case 'delete':
+                $this->lfExecuteDelete($css_path);
+            	break;
+            default:
+            	if(isset($_POST['mode'])) {
+            	   GC_Utils::gfPrintLog("MODEエラー：".$_POST['mode']);
+            	}
+            	break;
+        }
+
+        // ファイルリストを取得
+        $this->arrCSSList = $this->lfGetCSSList($css_dir);
+
+        // 画面の表示
+        $objView->assignobj($this);
+        $objView->display(MAIN_FRAME);
+    }
+
+    /**
+     * デストラクタ.
+     *
+     * @return void
+     */
+    function destroy() {
+        parent::destroy();
+    }
+
+    function lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path) {
+        // エラーチェック
+        $this->arrErr = $this->lfErrorCheck($_POST, $css_dir);
+
+        // エラーがなければ更新処理を行う
+        if (count($this->arrErr) == 0) {
+            // 旧ファイルの削除
+            if ($old_css_name != '' && $old_css_name != $css_name && file_exists($css_dir . $old_css_name . '.css')) {
+                unlink($css_dir . $old_css_name . '.css');
+            }
             // プレビュー用テンプレートに書き込み
             $fp = fopen($css_path,"w"); // TODO
@@ -76,26 +146,71 @@
 
             $this->tpl_onload="alert('登録が完了しました。');";
-        }
-
-        // CSSファイルの読み込み
-        if(file_exists($css_path)){
-            $css_data = file_get_contents($css_path);
-        }
-
-        // テキストエリアに表示
-        $this->css_data = $css_data;
-
-        // 画面の表示
-        $objView->assignobj($this);
-        $objView->display(MAIN_FRAME);
-    }
-
-    /**
-     * デストラクタ.
-     *
-     * @return void
-     */
-    function destroy() {
-        parent::destroy();
+            $this->old_css_name = $css_name;
+        }
+        $this->css_data = $_POST['css'];
+    }
+
+    function lfExecuteDelete($css_path) {
+        // css_name が空でない場合にはdeleteを実行
+        if ($_POST['css_name'] !== '' && file_exists($css_path)) {
+            unlink($css_path);
+        }
+        $this->sendRedirect($this->getLocation("./css.php"));
+    }
+
+    /**
+     * CSSファイルのリストを取得.
+     *
+     * @param array $css_dir CSSディレクトリ
+     * @return array ファイルリスト
+     */
+    function lfGetCSSList($css_dir) {
+        $objFileManager = new SC_Helper_FileManager_Ex();
+
+        $arrFileList = $objFileManager->sfGetFileList($css_dir);
+        foreach ($arrFileList as $key => $val) {
+            if (!$val['is_dir']) {
+                $arrCSSList[] = array(
+                    'file_name' => $val['file_name'],
+                    'css_name'  => preg_replace('/(.+)\.(.+?)$/','$1',$val['file_name']),
+                );
+            }
+        }
+        return $arrCSSList;
+    }
+
+    /**
+     * 入力項目のエラーチェックを行う.
+     *
+     * @param array $arrData 入力データ
+     * @param array $css_dir CSSディレクトリ
+     * @return array エラー情報
+     */
+    function lfErrorCheck($array, $css_dir) {
+        $objErr = new SC_CheckError($array);
+
+        $objErr->doFunc(array("CSSファイル名", "css_name", STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK"));
+
+        // 入力文字が英数字,"_","-"以外ならエラーを返す
+        if(!isset($objErr->arrErr['css_name'])){
+            if(!ereg("^[a-zA-Z0-9_\.-]+$", $array['css_name'])) {
+                $objErr->arrErr['css_name'] = '※ CSSファイル名は英数字と"_"および"-"だけを入力してください。<br />';
+            }
+        }
+
+        // 同一のファイル名が存在している場合にはエラー
+        if(!isset($objErr->arrErr['css_name'])){
+            $arrCSSList = $this->lfGetCSSList($css_dir);
+            foreach ($arrCSSList as $key => $val) {
+                if ($val['css_name'] == $array['css_name']) {
+                    if ($array['old_css_name'] == '' || $array['old_css_name'] != $array['css_name']) {
+                        $errFlg = TRUE;
+                    }
+                }
+            }
+            if ($errFlg) $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />';
+        }
+
+        return $objErr->arrErr;
     }
 }
