Index: /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 20813)
+++ /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_CSS.php	(revision 20860)
@@ -68,55 +68,67 @@
      * Page のアクション.
      *
-     * FIXME css ファイルの取得方法を要修正
-     *
      * @return void
      */
     function action() {
-        $objFileManager = new SC_Helper_FileManager_Ex();
-        $this->objLayout = new SC_Helper_PageLayout_Ex();
+        $objLayout = new SC_Helper_PageLayout_Ex();
 
         $objFormParam = new SC_FormParam_Ex();
-        $this->lfInitParam($objFormParam, $_REQUEST);
+        $this->lfInitParam($objFormParam);
+        $objFormParam->setParam($_REQUEST);
+        $objFormParam->convParam();
+        $this->arrErr = $objFormParam->checkError();
+        $is_error = (!SC_Utils_Ex::isBlank($this->arrErr));
 
         // CSSファイル名を取得
-        $css_name = $objFormParam->getValue('css_name');
-        $this->css_name = $css_name;
-        $old_css_name = $objFormParam->getValue('old_css_name');
-        if ($old_css_name == "" && $css_name != "") {
-            $old_css_name = $css_name;
-        }
-        $this->old_css_name = $old_css_name;
-
-        // 端末種別IDを取得
-        $device_type_id = $objFormParam->getValue('device_type_id');
-
-        //サブタイトルの追加
-        $this->tpl_subtitle .= ' - ' . $this->arrDeviceType[$device_type_id];
-
-        $css_dir = $this->objLayout->getTemplatePath($device_type_id, true) . "css/";
-        $css_path = $css_dir . $css_name . '.css';
-
-        // CSSファイルの読み込み
-        if($css_name != ''){
-            $css_data = $objFileManager->sfReadFile($css_path);
-        }
-        // テキストエリアに表示
-        $this->css_data = $css_data;
+        $this->css_name = $objFormParam->getValue('css_name');
+        $this->old_css_name = $objFormParam->getValue('old_css_name', $this->css_name);
+        $this->device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC);
+
+        $css_dir = $objLayout->getTemplatePath($this->device_type_id, true) . "css/";
+        $css_path = $css_dir . $this->css_name . '.css';
 
         switch($this->getMode()) {
             // データ更新処理
             case 'confirm':
-                $this->lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path);
+                if (!$is_error) {
+                    $this->arrErr = $this->lfCheckError($objFormParam, $this->arrErr);
+                    if (SC_Utils_Ex::isBlank($this->arrErr)) {
+                        if ($this->doRegister($css_dir, $this->css_name, $this->old_css_name, $css_path,
+                                              $objFormParam->getValue('css_data'))) {
+                            $this->tpl_onload = "alert('登録が完了しました。');";
+                        }
+                    }
+                }
                 break;
             case 'delete':
-                $this->lfExecuteDelete($css_path, $device_type_id);
+                if (!$is_error) {
+                    if ($this->doDelete($css_path)) {
+                        SC_Response_Ex::reload(array('device_type_id' => $this->device_type_id,
+                                                     'msg' => 'on'), true);
+                    }
+                }
                 break;
             default:
+                if (isset($_GET['msg']) && $_GET['msg'] == 'on') {
+                    // 完了メッセージ
+                    $this->tpl_onload = "alert('登録が完了しました。');";
+                }
                 break;
         }
 
-        // ファイルリストを取得
-        $this->arrCSSList = $this->lfGetCSSList($css_dir);
-        $this->device_type_id = $device_type_id;
+        if (!$is_error) {
+            // CSSファイルの読み込み
+            if (!SC_Utils_Ex::isBlank($this->css_name)) {
+                $objFormParam->setValue('css_data', file_get_contents($css_path));
+            }
+            // ファイルリストを取得
+            $this->arrCSSList = $this->getCSSList($css_dir);
+        } else {
+            // 画面にエラー表示しないため, ログ出力
+            GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true));
+
+        }
+        $this->tpl_subtitle .= ' - ' . $this->arrDeviceType[$this->device_type_id];
+        $this->arrForm = $objFormParam->getFormParamList();
     }
 
@@ -130,49 +142,60 @@
     }
 
-
     /**
      * パラメータ情報の初期化
      *
      * @param object $objFormParam SC_FormParamインスタンス
-     * @param array $arrPost $_POSTデータ
-     * @return void
-     */
-    function lfInitParam(&$objFormParam, $arrPost) {
-        $objFormParam->addParam("端末種別ID", "device_type_id", INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK"), DEVICE_TYPE_PC);
-        $objFormParam->addParam("CSSファイル名", "css_name", MTEXT_LEN, 'a', array("MAX_LENGTH_CHECK"));
-        $objFormParam->addParam("旧CSSファイル名", "old_css_name", MTEXT_LEN, 'a', array("MAX_LENGTH_CHECK"));
-        $objFormParam->setParam($arrPost);
-        $objFormParam->convParam();
-    }
-
-    function lfExecuteConfirm($css_dir, $css_name, $old_css_name, $css_path) {
+     * @return void
+     */
+    function lfInitParam(&$objFormParam) {
+        $objFormParam->addParam("端末種別ID", "device_type_id", INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK"));
+        $objFormParam->addParam("CSSファイル名", "css_name", STEXT_LEN, 'a', array("MAX_LENGTH_CHECK"));
+        $objFormParam->addParam("旧CSSファイル名", "old_css_name", STEXT_LEN, 'a', array("MAX_LENGTH_CHECK"));
+        $objFormParam->addParam("CSSデータ", "css_data");
+
+    }
+
+    /**
+     * 登録を実行する.
+     *
+     * ファイルの作成に失敗した場合は, エラーメッセージを出力する.
+     *
+     * @param string $css_dir CSS ディレクトリ
+     * @param string $css_name CSSファイル名
+     * @param string $old_css_name 旧CSSファイル名
+     * @param string $css_path CSSファイルの絶対パス
+     * @param string $css_data 書き込みを行うデータ
+     * @return boolean 登録が成功した場合 true; 失敗した場合 false
+     */
+    function doRegister($css_dir, $css_name, $old_css_name, $css_path, $css_data) {
         $objFileManager = new SC_Helper_FileManager_Ex();
 
-        // エラーチェック
-        $this->arrErr = $this->lfErrorCheck($_POST, $css_dir);
-
-        // エラーがなければ更新処理を行う
-        if (count($this->arrErr) == 0) {
-            // 旧ファイルの削除
-            if ($old_css_name != '' && $old_css_name != $css_name) {
-                $objFileManager->sfDeleteDir($css_dir . $old_css_name . '.css');
-            }
-            // プレビュー用テンプレートに書き込み
-            $objFileManager->sfWriteFile($css_path, $_POST['css']);
-
-            $this->tpl_onload="alert('登録が完了しました。');";
-            $this->old_css_name = $css_name;
-        }
-        $this->css_data = $_POST['css'];
-    }
-
-    function lfExecuteDelete($css_path, $device_type_id) {
-        $objFileManager = new SC_Helper_FileManager_Ex();
-
-        // css_name が空でない場合にはdeleteを実行
-        if ($_POST['css_name'] !== '') {
-            $objFileManager->sfDeleteDir($css_path);
-        }
-        $this->objDisplay->reload(array('device_type_id' => $device_type_id), true);
+        if (!SC_Utils_Ex::isBlank($old_css_name)
+            && $old_css_name != $css_name) {
+            if (!unlink($css_dir . $old_css_name . '.css')) {
+                $this->arrErr['err'] = '※ 旧ファイルの削除に失敗しました<br />';
+                return false;
+            }
+        }
+
+        if (!SC_Helper_FileManager_Ex::sfWriteFile($css_path, $css_data)) {
+            $this->arrErr['err'] = '※ CSSの書き込みに失敗しました<br />';
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 削除を実行する.
+     *
+     * @param string $css_path CSSファイルの絶対パス
+     * @return boolean 削除が成功した場合 true; 失敗した場合 false
+     */
+    function doDelete($css_path) {
+        if (!unlink($css_path)) {
+            $this->arrErr['err'] = '※ CSSの削除に失敗しました<br />';
+            return false;
+        }
+        return true;
     }
 
@@ -183,9 +206,9 @@
      * @return array ファイルリスト
      */
-    function lfGetCSSList($css_dir) {
+    function getCSSList($css_dir) {
         $objFileManager = new SC_Helper_FileManager_Ex();
 
         $arrFileList = $objFileManager->sfGetFileList($css_dir);
-        foreach ($arrFileList as $key => $val) {
+        foreach ($arrFileList as $val) {
             if (!$val['is_dir']) {
                 $arrCSSList[] = array(
@@ -199,36 +222,46 @@
 
     /**
-     * 入力項目のエラーチェックを行う.
-     *
-     * @param array $arrData 入力データ
-     * @param array $css_dir CSSディレクトリ
-     * @return array エラー情報
-     */
-    function lfErrorCheck($array, $css_dir) {
-        $objErr = new SC_CheckError_Ex($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;
+     * エラーチェックを行う.
+     *
+     * @param SC_FormParam $objFormParam SC_FormParam インスタンス
+     * @return array エラーメッセージの配列
+     */
+    function lfCheckError(&$objFormParam, &$arrErr) {
+        $arrParams = $objFormParam->getHashArray();
+        $objErr = new SC_CheckError_Ex($arrParams);
+        $objErr->arrErr =& $arrErr;
+        $objErr->doFunc(array('CSSファイル名', 'css_name', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK","FILE_NAME_CHECK_BY_NOUPLOAD"));
+
+        $device_type_id = $objFormParam->getValue('device_type_id');
+        $css_name = $objFormParam->getValue('css_name');
+        $old_css_name = $objFormParam->getValue('old_css_name', $css_name);
+
+        $is_error = false;
+        // 重複チェック
+        if(!SC_Utils_Ex::isBlank(($objErr->arrErr['css_name']))) {
+            $arrCSSList = $this->getCSSList($this->getCSSDir());
+            foreach ($arrCSSList as $val) {
+                if ($val['css_name'] == $css_name) {
+                    if (SC_Utils_Ex::isBlank($old_css_name)
+                        || $old_css_name != $css_name) {
+                        $is_error = true;
                     }
                 }
             }
-            if ($errFlg) $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />';
-        }
-
+            if ($is_error) {
+                $objErr->arrErr['css_name'] = '※ 同じファイル名のデータが存在しています。別の名称を付けてください。<br />';
+            }
+        }
         return $objErr->arrErr;
+    }
+
+    /**
+     * CSSディレクトリを取得する.
+     *
+     * @param integer $device_type_id 端末種別ID
+     * @return string CSSディレクトリ
+     */
+    function getCSSDir($device_type_id) {
+        return SC_Helper_PageLayout_Ex::getTemplatePath($device_type_id, true) . "css/";
     }
 }
Index: /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php
===================================================================
--- /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php	(revision 20859)
+++ /branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php	(revision 20860)
@@ -84,6 +84,9 @@
         // 登録
         case 'regist':
-            if ($this->doRegister($objFormParam)) {
-                $this->tpl_onload = "alert('登録が完了しました。');";
+            $this->arrErr = $this->lfCheckError($objFormParam, $this->arrErr);
+            if (SC_Utils_Ex::isBlank($this->arrErr)) {
+                if ($this->doRegister($objFormParam)) {
+                    $this->tpl_onload = "alert('登録が完了しました。');";
+                }
             }
             break;
@@ -140,5 +143,5 @@
      * @return array エラーメッセージの配列
      */
-    function lfCheckError(&$objFormParam, &$arrErr, &$objLayout) {
+    function lfCheckError(&$objFormParam, &$arrErr) {
         $arrParams = $objFormParam->getHashArray();
         $objErr = new SC_CheckError_Ex($arrParams);
Index: /branches/version-2_11-dev/data/Smarty/templates/admin/design/css.tpl
===================================================================
--- /branches/version-2_11-dev/data/Smarty/templates/admin/design/css.tpl	(revision 20800)
+++ /branches/version-2_11-dev/data/Smarty/templates/admin/design/css.tpl	(revision 20860)
@@ -30,4 +30,10 @@
 <div id="design" class="contents-main">
 
+    <!--{if $arrErr.err != ""}-->
+        <div class="message">
+            <span class="attention"><!--{$arrErr.err}--></span>
+        </div>
+    <!--{/if}-->
+
     <!--▼CSS設定ここから-->
     <table class="form">
@@ -35,6 +41,8 @@
             <th>CSSファイル名</th>
             <td>
-                <!--{if $arrErr.css_name != ""}--><span class="attention"><!--{$arrErr.css_name}--></span><br /><!--{/if}-->
-                <input type="text" name="css_name" value="<!--{$css_name|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{if $arrErr.css_name != ""}-->background-color: <!--{$smarty.const.ERR_COLOR}-->;<!--{/if}-->" size="60" class="box60" />.css<span class="attention"> (上限<!--{$smarty.const.STEXT_LEN}-->文字)</span>
+                <!--{assign var=key value="css_name"}-->
+                <input type="text" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="60" class="box60" />.css
+                <span class="attention"> (上限<!--{$arrForm[$key].length}-->文字)</span>
+                <!--{if $arrErr[$key] != ""}--> <div class="attention"><!--{$arrErr[$key]}--></div> <!--{/if}-->
             </td>
         </tr>
@@ -42,5 +50,6 @@
             <th>CSS内容</th>
             <td>
-                <textarea id="css" class="top" name="css" cols=90 rows=<!--{$area_row}--> align="left" wrap=off style="width: 650px;"><!--{$css_data|h}--></textarea>
+                <!--{assign var=key value="css_data"}-->
+                <textarea id="css" class="top" name="<!--{$key}-->" cols="90" rows=<!--{$area_row}--> align="left" style="width: 650px;"><!--{$arrForm[$key].value|h}--></textarea>
                 <input type="hidden" name="area_row" value="<!--{$area_row}-->" />
                 <div class="btn">
