Changeset 23186


Ignore:
Timestamp:
2013/09/04 10:44:36 (7 years ago)
Author:
h_yoshimoto
Message:

#2334 #2327 テンプレートが存在しない場合、ページ情報が取得できない場合のエラーをWarningに変更

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_13_0/data/class/helper/SC_Helper_PageLayout.php

    r23126 r23186  
    2323 
    2424/** 
    25  * Webページのレイアウト惠
    26 å ±ã‚’制御するヘルパークラス. 
     25 * Webページのレイアウト情報を制御するヘルパークラス. 
    2726 * 
    2827 * @package Helper 
     
    3332{ 
    3433    /** 
    35      * ページのレイアウト惠
    36 å ±ã‚’取得し, 設定する. 
    37      * 
    38      * 現在の URL に応じたページのレイアウト惠
    39 å ±ã‚’取得し, LC_Page インスタンスに 
    40      * 設定する. 
    41      * 
    42      * @access public 
    43      * @param  LC_Page $objPage        LC_Page インスタンス 
    44      * @param  boolean $preview        プレビュー表示の場合 true 
    45      * @param  string  $url            ページのURL($_SERVER['SCRIPT_NAME'] の惠
    46 å ±) 
    47      * @param  integer $device_type_id 端末種別ID 
     34     * ページのレイアウト情報を取得し, 設定する. 
     35     * 
     36     * 現在の URL に応じたページのレイアウト情報を取得し, LC_Page インスタンスに 
     37     * 設定する. 
     38     * 
     39     * @access public 
     40     * @param  LC_Page $objPage        LC_Page インスタンス 
     41     * @param  boolean $preview        プレビュー表示の場合 true 
     42     * @param  string  $url            ページのURL($_SERVER['SCRIPT_NAME'] の情報) 
     43     * @param  integer $device_type_id 端末種別ID 
    4844     * @return void 
    4945     */ 
    5046    public function sfGetPageLayout(&$objPage, $preview = false, $url = '', $device_type_id = DEVICE_TYPE_PC) 
    5147    { 
    52         // URLをå 
    53 ƒã«ãƒšãƒ¼ã‚¸æƒ 
    54 å ±ã‚’取得 
     48        // URLを元にページ情報を取得 
    5549        if ($preview === false) { 
    5650            $url = preg_replace('|^' . preg_quote(ROOT_URLPATH) . '|', '', $url); 
    5751            $arrPageData = $this->getPageProperties($device_type_id, null, 'url = ?', array($url)); 
    5852        } 
    59         // プレビューの場合は, プレビュー用のデータを取得 
     53        // プレビューの場合は, プレビュー用のデータを取得 
    6054        else { 
    6155            $arrPageData = $this->getPageProperties($device_type_id, 0); 
     
    6357 
    6458        if (empty($arrPageData[0])) { 
    65             trigger_error('ページ惠
    66 å ±ã‚’取得できませんでした。', E_USER_ERROR); 
     59            trigger_error('ページ情報を取得できませんでした。', E_USER_WARNING); 
    6760        } 
    6861 
     
    7063         
    7164        if (!file_exists($objPage->tpl_mainpage)) { 
    72             $msg = 'メイン部のテンプレートが存在しません。[' . $objPage->tpl_mainpage . ']'; 
    73             trigger_error($msg, E_USER_ERROR); 
     65            $msg = 'メイン部のテンプレートが存在しません。[' . $objPage->tpl_mainpage . ']'; 
     66            trigger_error($msg, E_USER_WARNING); 
    7467        } 
    7568         
     
    8073        } 
    8174 
    82         // ページタイトルを設定 
     75        // ページタイトルを設定 
    8376        if (SC_Utils_Ex::isBlank($objPage->tpl_title)) { 
    8477            $objPage->tpl_title = $objPage->arrPageLayout['page_name']; 
    8578        } 
    8679 
    87         // 該当ページのブロックを取得し, é 
    88 ç½®ã™ã‚‹ 
     80        // 該当ページのブロックを取得し, 配置する 
    8981        $masterData = new SC_DB_MasterData_Ex(); 
    9082        $arrTarget = $masterData->getMasterData('mtb_target'); 
    9183        $arrBlocs = $this->getBlocPositions($device_type_id, $objPage->arrPageLayout['page_id']); 
    92         // 無効なプラグインのブロックを取り除く. 
     84        // 無効なプラグインのブロックを取り除く. 
    9385        $objPlugin = SC_Helper_Plugin_Ex::getSingletonInstance(); 
    9486        $arrBlocs = $objPlugin->getEnableBlocs($arrBlocs); 
    95         // php_path, tpl_path が存在するものを, 各ターゲットにé 
    96 ç½® 
     87        // php_path, tpl_path が存在するものを, 各ターゲットに配置 
    9788        foreach ($arrTarget as $target_id => $value) { 
    9889            foreach ($arrBlocs as $arrBloc) { 
     
    10495                    $objPage->arrPageLayout[$arrTarget[$target_id]][] = $arrBloc; 
    10596                } else { 
    106                     $error = "ブロックが見つかりません\n" 
     97                    $error = "ブロックが見つかりません\n" 
    10798                        . 'tpl_path: ' . $arrBloc['tpl_path'] . "\n" 
    10899                        . 'php_path: ' . $arrBloc['php_path']; 
     
    111102            } 
    112103        } 
    113         // カラム数を取得する 
     104        // カラム数を取得する 
    114105        $objPage->tpl_column_num = $this->getColumnNum($objPage->arrPageLayout); 
    115106    } 
    116107 
    117108    /** 
    118      * ページの属性を取得する. 
    119      * 
    120      * この関数は, dtb_pagelayout の惠
    121 å ±ã‚’検索する. 
    122      * $device_type_id は忠
    123 é ˆ. デフォルト値は DEVICE_TYPE_PC. 
    124      * $page_id が null の場合は, $page_id が 0 以外のものを検索する. 
    125      * 
    126      * @access public 
    127      * @param  integer $device_type_id 端末種別ID 
    128      * @param  integer $page_id        ページID; null の場合は, 0 以外を検索する. 
    129      * @param  string  $where          追加の検索条件 
    130      * @param  array   $arrParams      追加の検索パラメーター 
    131      * @return array   ãƒšãƒ¼ã‚¸å±žæ€§ã®é 
    132 åˆ— 
     109     * ページの属性を取得する. 
     110     * 
     111     * この関数は, dtb_pagelayout の情報を検索する. 
     112     * $device_type_id は必須. デフォルト値は DEVICE_TYPE_PC. 
     113     * $page_id が null の場合は, $page_id が 0 以外のものを検索する. 
     114     * 
     115     * @access public 
     116     * @param  integer $device_type_id 端末種別ID 
     117     * @param  integer $page_id        ページID; null の場合は, 0 以外を検索する. 
     118     * @param  string  $where          追加の検索条件 
     119     * @param  array   $arrParams      追加の検索パラメーター 
     120     * @return array   ページ属性の配列 
    133121     */ 
    134122    public function getPageProperties($device_type_id = DEVICE_TYPE_PC, $page_id = null, $where = '', $arrParams = array()) 
     
    149137 
    150138    /** 
    151      * ブロック惠
    152 å ±ã‚’取得する. 
    153      * 
    154      * @access public 
    155      * @param  integer $device_type_id 端末種別ID 
    156      * @param  string  $where          追加の検索条件 
    157      * @param  array   $arrParams      追加の検索パラメーター 
    158      * @param  boolean $has_realpath   php_path, tpl_path の絶対パスを含める場合 true 
    159      * @return array   ãƒ–ロック惠
    160 å ±ã®é 
    161 åˆ— 
     139     * ブロック情報を取得する. 
     140     * 
     141     * @access public 
     142     * @param  integer $device_type_id 端末種別ID 
     143     * @param  string  $where          追加の検索条件 
     144     * @param  array   $arrParams      追加の検索パラメーター 
     145     * @param  boolean $has_realpath   php_path, tpl_path の絶対パスを含める場合 true 
     146     * @return array   ブロック情報の配列 
    162147     */ 
    163148    public function getBlocs($device_type_id = DEVICE_TYPE_PC, $where = '', $arrParams = array(), $has_realpath = true) 
     
    173158 
    174159    /** 
    175      * ブロックé 
    176 ç½®æƒ 
    177 å ±ã‚’取得する. 
    178      * 
    179      * @access public 
    180      * @param  integer $device_type_id 端末種別ID 
    181      * @param  integer $page_id        ページID 
    182      * @param  boolean $has_realpath   php_path, tpl_path の絶対パスを含める場合 true 
    183      * @return array   é 
    184 ç½®æƒ 
    185 å ±ã‚’含めたブロックのé 
    186 åˆ— 
     160     * ブロック配置情報を取得する. 
     161     * 
     162     * @access public 
     163     * @param  integer $device_type_id 端末種別ID 
     164     * @param  integer $page_id        ページID 
     165     * @param  boolean $has_realpath   php_path, tpl_path の絶対パスを含める場合 true 
     166     * @return array   配置情報を含めたブロックの配列 
    187167     */ 
    188168    public function getBlocPositions($device_type_id, $page_id, $has_realpath = true) 
     
    203183        } 
    204184 
    205         //å 
    206 ¨ãƒšãƒ¼ã‚¸è¨­å®šã¨å„ページのブロックの重複を削除 
     185        //全ページ設定と各ページのブロックの重複を削除 
    207186        $arrUniqBlocIds = array(); 
    208187        foreach ($arrBlocs as $index => $arrBloc) { 
     
    221200 
    222201    /** 
    223      * ページ惠
    224 å ±ã‚’削除する. 
    225      * 
    226      * XXX ファイルを確実に削除したかどうかのチェック 
    227      * 
    228      * @access public 
    229      * @param  integer $page_id        ページID 
    230      * @param  integer $device_type_id 端末種別ID 
    231      * @return integer 削除数 
     202     * ページ情報を削除する. 
     203     * 
     204     * XXX ファイルを確実に削除したかどうかのチェック 
     205     * 
     206     * @access public 
     207     * @param  integer $page_id        ページID 
     208     * @param  integer $device_type_id 端末種別ID 
     209     * @return integer 削除数 
    232210     */ 
    233211    public function lfDelPageData($page_id, $device_type_id = DEVICE_TYPE_PC) 
    234212    { 
    235213        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    236         // page_id が空でない場合にはdeleteを実行 
     214        // page_id が空でない場合にはdeleteを実行 
    237215        if ($page_id != '') { 
    238216            $arrPageData = $this->getPageProperties($device_type_id, $page_id); 
    239217            $ret = $objQuery->delete('dtb_pagelayout', 'page_id = ? AND device_type_id = ?', array($page_id, $device_type_id)); 
    240             // ファイルの削除 
     218            // ファイルの削除 
    241219            $this->lfDelFile($arrPageData[0]['filename'], $device_type_id); 
    242220        } 
     
    246224 
    247225    /** 
    248      * ページのファイルを削除する. 
    249      * 
    250      * dtb_pagelayout の削除後に呼び出すこと。 
     226     * ページのファイルを削除する. 
     227     * 
     228     * dtb_pagelayout の削除後に呼び出すこと。 
    251229     * 
    252230     * @access private 
    253231     * @param  string  $filename 
    254      * @param  integer $device_type_id 端末種別ID 
    255      * @return void    // TODO boolean にするべき? 
     232     * @param  integer $device_type_id 端末種別ID 
     233     * @return void    // TODO boolean にするべき? 
    256234     */ 
    257235    public function lfDelFile($filename, $device_type_id) 
     
    260238 
    261239        /* 
    262          * 同名ファイルの使用件数 
    263          * PHP ファイルは, 複数のデバイスでå 
    264 ±æœ‰ã™ã‚‹ãŸã‚, device_type_id を条件にå 
    265 ¥ã‚Œãªã„ 
     240         * 同名ファイルの使用件数 
     241         * PHP ファイルは, 複数のデバイスで共有するため, device_type_id を条件に入れない 
    266242         */ 
    267243        $exists = $objQuery->exists('dtb_pagelayout', 'filename = ?', array($filename)); 
    268244 
    269245        if (!$exists) { 
    270             // phpファイルの削除 
     246            // phpファイルの削除 
    271247            $del_php = HTML_REALDIR . $filename . '.php'; 
    272248            if (file_exists($del_php)) { 
     
    275251        } 
    276252 
    277         // tplファイルの削除 
     253        // tplファイルの削除 
    278254        $del_tpl = $this->getTemplatePath($device_type_id) . $filename . '.tpl'; 
    279255        if (file_exists($del_tpl)) { 
     
    283259 
    284260    /** 
    285      * 編集可能ページかどうか. 
    286      * 
    287      * @access public 
    288      * @param  integer                   $device_type_id 端末種別ID 
    289      * @param  integer                   $page_id        ページID 
    290      * @return ç·¨é›†å¯èƒ½ãƒšãƒ¼ã‚¸ã®å ´åˆ true 
     261     * 編集可能ページかどうか. 
     262     * 
     263     * @access public 
     264     * @param  integer                   $device_type_id 端末種別ID 
     265     * @param  integer                   $page_id        ページID 
     266     * @return 編集可能ページの� �合 true 
    291267     */ 
    292268    public function isEditablePage($device_type_id, $page_id) 
     
    304280 
    305281    /** 
    306      * テンプレートのパスを取得する. 
    307      * 
    308      * @access public 
    309      * @param  integer $device_type_id 端末種別ID 
    310      * @param  boolean $isUser         USER_REALDIR 以下のパスを返す場合 true 
    311      * @return string  テンプレートのパス 
     282     * テンプレートのパスを取得する. 
     283     * 
     284     * @access public 
     285     * @param  integer $device_type_id 端末種別ID 
     286     * @param  boolean $isUser         USER_REALDIR 以下のパスを返す場合 true 
     287     * @return string  テンプレートのパス 
    312288     */ 
    313289    public function getTemplatePath($device_type_id = DEVICE_TYPE_PC, $isUser = false) 
     
    340316 
    341317    /** 
    342      * DocumentRoot から user_data のパスを取得する. 
    343      * 
    344      * 引数 $hasPackage を true にした場合は, user_data/packages/template_name 
    345      * を取得する. 
    346      * 
    347      * @access public 
    348      * @param  integer $device_type_id 端末種別ID 
    349      * @param  boolean $hasPackage     ãƒ‘ッケージのパスも含める場合 true 
    350      * @return string  端末に応じた DocumentRoot から user_data までのパス 
     318     * DocumentRoot から user_data のパスを取得する. 
     319     * 
     320     * 引数 $hasPackage を true にした場合は, user_data/packages/template_name 
     321     * を取得する. 
     322     * 
     323     * @access public 
     324     * @param  integer $device_type_id 端末種別ID 
     325     * @param  boolean $hasPackage     パッケージのパスも含める場合 true 
     326     * @return string  端末に応じた DocumentRoot から user_data までのパス 
    351327     */ 
    352328    public function getUserDir($device_type_id = DEVICE_TYPE_PC, $hasPackage = false) 
     
    374350 
    375351    /** 
    376      * ブロックの php_path, tpl_path を設定する. 
     352     * ブロックの php_path, tpl_path を設定する. 
    377353     * 
    378354     * @access private 
    379      * @param  integer $device_type_id 端末種別ID 
    380      * @param  array   $arrBlocs       è¨­å®šã™ã‚‹ãƒ–ロックのé 
    381 åˆ— 
     355     * @param  integer $device_type_id 端末種別ID 
     356     * @param  array   $arrBlocs       設定するブロックの配列 
    382357     * @return void 
    383358     */ 
     
    393368 
    394369    /** 
    395      * カラム数を取得する. 
     370     * カラム数を取得する. 
    396371     * 
    397372     * @access private 
    398      * @param  array   $arrPageLayout レイアウト惠
    399 å ±ã®é 
    400 åˆ— 
    401      * @return integer $col_num カラム数 
     373     * @param  array   $arrPageLayout レイアウト情報の配列 
     374     * @return integer $col_num カラム数 
    402375     */ 
    403376    public function getColumnNum($arrPageLayout) 
    404377    { 
    405         // メインは確定 
     378        // メインは確定 
    406379        $col_num = 1; 
    407380        // LEFT NAVI 
Note: See TracChangeset for help on using the changeset viewer.