Changeset 20859


Ignore:
Timestamp:
2011/04/18 19:24:28 (10 years ago)
Author:
nanasess
bzr:base-revision:
svn-v4:1e3b908f-19a9-db11-a64c-001125224ba8:branches/version-2_11-dev:20858
bzr:committer:
Kentaro Ohkouchi <ohkouchi@loop-az.jp>
bzr:file-ids:

data/Smarty/templates/admin/design/header.tpl 15732@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2FSmarty%2Ftemplates%2Fdefault%2Fadmin%2Fdesign%2Fheader.tpl
data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php 15687@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fdesign%2FLC_Page_Admin_Design_Bloc.php
data/class/pages/admin/design/LC_Page_Admin_Design_Header.php 15688@1e3b908f-19a9-db11-a64c-001125224ba8:branches%2Ffeature-module-update%2Fdata%2Fclass%2Fpages%2Fadmin%2Fdesign%2FLC_Page_Admin_Design_Header.php
bzr:mapping-version:
v4
bzr:merge:

ohkouchi@loop-az.jp-20110418102242-i3r248nn3kzq7yyr
bzr:repository-uuid:
1e3b908f-19a9-db11-a64c-001125224ba8
bzr:revision-id:
ohkouchi@loop-az.jp-20110418102425-xm10rcev2j2xr3db
bzr:revno:
3570
bzr:revprop:branch-nick:
branches/version-2_11-dev
bzr:root:
branches/version-2_11-dev
bzr:text-revisions:

data/Smarty/templates/admin/design/header.tpl ohkouchi@loop-az.jp-20110418102242-i3r248nn3kzq7yyr
data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php ohkouchi@loop-az.jp-20110418102242-i3r248nn3kzq7yyr
data/class/pages/admin/design/LC_Page_Admin_Design_Header.php ohkouchi@loop-az.jp-20110418102242-i3r248nn3kzq7yyr
bzr:timestamp:
2011-04-18 19:24:25.545000076 +0900
bzr:user-agent:
bzr2.2.1+bzr-svn1.0.4
svn:original-date:
2011-04-18T10:24:25.545000Z
Message:

#972 (リファクタリング開発:[管理画面]デザイン管理)

  • ヘッダ/フッタ設定
Location:
branches/version-2_11-dev/data
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/Smarty/templates/admin/design/header.tpl

    r20800 r20859  
    2222 */ 
    2323*}--> 
    24 <!--{* 
     24<div id="design" class="contents-main"> 
    2525 
    26 XXX: ヘッダーとフッターでwrapの設定が違うのは疑問。それぞれの良し悪しはともかく、統一を。 
     26    <!--{if $arrErr.err != ""}--> 
     27        <div class="message"> 
     28            <span class="attention"><!--{$arrErr.err}--></span> 
     29        </div> 
     30    <!--{/if}--> 
    2731 
    28 *}--> 
    29 <div id="design" class="contents-main"> 
    3032    <!--{* ▼ヘッダー編集ここから *}--> 
    3133    <h2>ヘッダー編集</h2> 
     
    3537    <input type="hidden" name="division" value="header" /> 
    3638    <input type="hidden" name="header_row" value="<!--{$header_row}-->" /> 
    37     <input type="hidden" name="browser_type" value="" /> 
    3839    <input type="hidden" name="device_type_id" value="<!--{$device_type_id|h}-->" /> 
    3940 
    40         <textarea id="header-area" class="top" name="header" rows="<!--{$header_row}-->" wrap="off" style="width: 100%;"><!--{$header_data|h|smarty:nodefaults}--></textarea> 
     41        <textarea id="header-area" class="top" name="header" rows="<!--{$header_row}-->" style="width: 100%;"><!--{$header_data|h|smarty:nodefaults}--></textarea> 
    4142        <div class="btn"> 
    4243            <a id="header-area-resize-btn" class="btn-normal" href="javascript:;" onclick="ChangeSize('#header-area-resize-btn', '#header-area', 50, 13); $('input[name=header_row]').val($('#header-area').attr('rows'));return false;"><span>拡大</span></a> 
     
    5960    <input type="hidden" name="division" value="footer" /> 
    6061    <input type="hidden" name="footer_row" value=<!--{$footer_row}--> /> 
    61     <input type="hidden" name="browser_type" value="" /> 
    6262    <input type="hidden" name="device_type_id" value="<!--{$device_type_id|h}-->" /> 
    6363 
     
    7676    <!--{* ▲フッター編集ここまで *}--> 
    7777</div> 
    78 <script type="text/javascript"> 
    79     /* ブラウザの種類をセットする */ 
    80     function lfnSetBrowser(form, item){ 
    81         browser_type = 0; 
    82         if(navigator.userAgent.indexOf("MSIE") >= 0){ 
    83             browser_type = 1; 
    84         } 
    85         else if(navigator.userAgent.indexOf("Gecko/") >= 0){ 
    86             browser_type = 2; 
    87         } 
    88  
    89         document[form][item].value=browser_type; 
    90     } 
    91  
    92 </script> 
  • branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Bloc.php

    r20857 r20859  
    7373    function action() { 
    7474        $objFormParam = new SC_FormParam_Ex(); 
    75         $this->lfInitParam($objFormParam, $_REQUEST); 
     75        $this->lfInitParam($objFormParam); 
    7676        $objFormParam->setParam($_REQUEST); 
    7777        $objFormParam->convParam(); 
  • branches/version-2_11-dev/data/class/pages/admin/design/LC_Page_Admin_Design_Header.php

    r20764 r20859  
    2424// {{{ requires 
    2525require_once CLASS_EX_REALDIR . 'page_extends/admin/LC_Page_Admin_Ex.php'; 
     26require_once CLASS_EX_REALDIR . 'helper_extends/SC_Helper_FileManager_Ex.php'; 
    2627 
    2728/** 
     
    6869     * Page のアクション. 
    6970     * 
    70      * FIXME テンプレートの取得方法を要修正 
    71      * 
    7271     * @return void 
    7372     */ 
    7473    function action() { 
    75         // 端末種別IDを取得 
    76         if (isset($_REQUEST['device_type_id']) 
    77             && is_numeric($_REQUEST['device_type_id'])) { 
    78             $device_type_id = $_REQUEST['device_type_id']; 
     74        $objFormParam = new SC_FormParam_Ex(); 
     75        $this->lfInitParam($objFormParam); 
     76        $objFormParam->setParam($_REQUEST); 
     77        $objFormParam->convParam(); 
     78        $this->arrErr = $objFormParam->checkError(); 
     79        $is_error = (!SC_Utils_Ex::isBlank($this->arrErr)); 
     80 
     81        $this->device_type_id = $objFormParam->getValue('device_type_id', DEVICE_TYPE_PC); 
     82 
     83        switch ($this->getMode()) { 
     84        // 登録 
     85        case 'regist': 
     86            if ($this->doRegister($objFormParam)) { 
     87                $this->tpl_onload = "alert('登録が完了しました。');"; 
     88            } 
     89            break; 
     90 
     91        default: 
     92            break; 
     93        } 
     94 
     95        if (!$is_error) { 
     96            // テキストエリアに表示 
     97            $header_path = $this->getTemplatePath($this->device_type_id, 'header'); 
     98            $footer_path = $this->getTemplatePath($this->device_type_id, 'footer'); 
     99            if ($header_path === false || $footer_path === false) { 
     100                $this->arrErr['err'] = '※ ファイルの取得に失敗しました<br />'; 
     101            } else { 
     102                $this->header_data = file_get_contents($header_path); 
     103                $this->footer_data = file_get_contents($footer_path); 
     104            } 
    79105        } else { 
    80             $device_type_id = DEVICE_TYPE_PC; 
     106            // 画面にエラー表示しないため, ログ出力 
     107            GC_Utils_Ex::gfPrintLog('Error: ' . print_r($this->arrErr, true)); 
    81108        } 
    82         $this->device_type_id = $device_type_id; 
    83109 
    84110        //サブタイトルの追加 
    85         $this->tpl_subtitle .= ' - ' . $this->arrDeviceType[$device_type_id]; 
    86  
    87         // テンプレートのパス 
    88         $template_path = $this->lfGetTemplatePath($device_type_id); 
    89  
    90         // データ更新処理 
    91         if (isset($_POST['division']) && $_POST['division'] != '') { 
    92             $division = $_POST['division']; 
    93             $content = $_POST[$division]; // TODO no checked? 
    94  
    95             switch ($this->getMode()) { 
    96             case 'regist': 
    97                 // 正規のテンプレートに書き込む 
    98                 $template = $template_path . '/' . $division . '.tpl'; 
    99                 $this->lfUpdateTemplate($template, $content); 
    100                 $this->tpl_onload="alert('登録が完了しました。');"; 
    101                 break; 
    102             default: 
    103                 // なにもしない 
    104                 break; 
    105             } 
    106         } 
    107  
    108         // テキストエリアに表示 
    109         $this->header_data = file_get_contents($template_path . '/header.tpl'); 
    110         $this->footer_data = file_get_contents($template_path . '/footer.tpl'); 
    111  
    112         // ブラウザタイプ 
    113         $this->browser_type = isset($_POST['browser_type']) ? $_POST['browser_type'] : ""; 
    114     } 
    115  
    116     function lfUpdateTemplate($template, $content) { 
    117         $fp = fopen($template,'w'); 
    118         fwrite($fp, $content); 
    119         fclose($fp); 
    120     } 
    121  
    122     function lfGetTemplatePath($device_type_id) { 
    123         $objLayout = new SC_Helper_PageLayout_Ex(); 
    124         return $objLayout->getTemplatePath($device_type_id); 
     111        $this->tpl_subtitle .= ' - ' . $this->arrDeviceType[$this->device_type_id]; 
    125112    } 
    126113 
     
    133120        parent::destroy(); 
    134121    } 
     122 
     123    /** 
     124     * パラメータ情報の初期化 
     125     * 
     126     * @param object $objFormParam SC_FormParamインスタンス 
     127     * @return void 
     128     */ 
     129    function lfInitParam(&$objFormParam) { 
     130        $objFormParam->addParam("端末種別ID", "device_type_id", INT_LEN, 'n', array("NUM_CHECK", "MAX_LENGTH_CHECK")); 
     131        $objFormParam->addParam("division", "division", STEXT_LEN, 'a', array("MAX_LENGTH_CHECK")); 
     132        $objFormParam->addParam("ヘッダデータ", "header"); 
     133        $objFormParam->addParam("フッタデータ", "footer"); 
     134    } 
     135 
     136    /** 
     137     * エラーチェックを行う. 
     138     * 
     139     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     140     * @return array エラーメッセージの配列 
     141     */ 
     142    function lfCheckError(&$objFormParam, &$arrErr, &$objLayout) { 
     143        $arrParams = $objFormParam->getHashArray(); 
     144        $objErr = new SC_CheckError_Ex($arrParams); 
     145        $objErr->arrErr =& $arrErr; 
     146        $objErr->doFunc(array("division", "division", STEXT_LEN), array("EXIST_CHECK")); 
     147        return $objErr->arrErr; 
     148    } 
     149 
     150    /** 
     151     * 登録を実行する. 
     152     * 
     153     * ファイルの作成に失敗した場合は, エラーメッセージを出力する. 
     154     * 
     155     * @param SC_FormParam $objFormParam SC_FormParam インスタンス 
     156     * @return integer|boolean 登録が成功した場合 true; 失敗した場合 false 
     157     */ 
     158    function doRegister(&$objFormParam) { 
     159        $division = $objFormParam->getValue('division'); 
     160        $contents = $objFormParam->getValue($division); 
     161        $tpl_path = $this->getTemplatePath($objFormParam->getValue('device_type_id'), $division); 
     162        if ($tpl_path === false 
     163            || !SC_Helper_FileManager_Ex::sfWriteFile($tpl_path, $contents)) { 
     164            $this->arrErr['err'] = '※ ファイルの書き込みに失敗しました<br />'; 
     165            return false; 
     166        } 
     167        return true; 
     168    } 
     169 
     170    /** 
     171     * テンプレートパスを取得する. 
     172     * 
     173     * @param integer $device_type_id 端末種別ID 
     174     * @param string $division "header" or "footer" 
     175     * @return string|boolean 成功した場合, テンプレートのパス; 失敗した場合 false 
     176     */ 
     177    function getTemplatePath($device_type_id, $division) { 
     178        $tpl_path = SC_Helper_PageLayout_Ex::getTemplatePath($device_type_id) . '/' . $division . '.tpl'; 
     179        if (file_exists($tpl_path)) { 
     180            return $tpl_path; 
     181        } else { 
     182            return false; 
     183        } 
     184    } 
    135185} 
     186?> 
Note: See TracChangeset for help on using the changeset viewer.