Ignore:
Timestamp:
2010/03/11 10:35:11 (14 years ago)
Author:
kajiwara
Message:

正式版にナイトリービルド版をマージしてみるテスト

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tmp/version-2_5-test/data/class/helper/SC_Helper_PageLayout.php

    r18562 r18609  
    4646    function sfGetPageLayout(&$objPage, $preview = false, $url = ""){ 
    4747        $debug_message = ""; 
    48         $arrPageLayout = array(); 
     48        $arrPageLayout = array(); 
    4949 
    5050        // 現在のURLの取得 
     
    5353                $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
    5454            } 
     55             
     56            $url2 = preg_replace('|^http://[^/]+' . preg_quote(URL_DIR) . '|', '', $url); 
    5557            // URLを元にページデザインを取得 
    56             $arrPageData = $this->lfgetPageData(" url = ? " , array($url)); 
    57         }else{ 
    58             $arrPageData = $this->lfgetPageData(" page_id = ? " , array("0")); 
     58            $arrPageData = $this->lfgetPageData("url IN (?, ?) AND page_id <> 0" , array($url2, $url)); // $url は従来互換 
     59        } else { 
     60            $arrPageData = $this->lfgetPageData("page_id = 0"); 
    5961            $objPage->tpl_mainpage = USER_PATH . "templates/preview/" 
    6062                . TEMPLATE_NAME . "/" . $arrPageData[0]['filename'] . ".tpl"; 
    6163        } 
    62          
    63         reset($arrPageData[0]); 
    64         while( list($key,$val) = each($arrPageData[0]) ){ 
    65              $debug_message.= "arrPageData[$key]:" . $val . "\n"; 
     64 
     65        if (!empty($arrPageData[0])) { 
     66            foreach($arrPageData[0] as $key => $val) { 
     67                $debug_message.= "arrPageData[$key]:" . $val . "\n"; 
     68            } 
    6669        } 
    6770         
     
    97100 
    98101        // 全ナビデータを取得する 
    99         $arrNavi = $this->lfGetNaviData($url, $preview); 
    100  
    101         $arrPageLayout['LeftNavi']  = $this->lfGetNavi($arrNavi,1); // LEFT NAVI 
    102         $arrPageLayout['MainHead']  = $this->lfGetNavi($arrNavi,2); // メイン上部 
    103         $arrPageLayout['RightNavi'] = $this->lfGetNavi($arrNavi,3); // RIGHT NAVI 
    104         $arrPageLayout['MainFoot']  = $this->lfGetNavi($arrNavi,4); // メイン下部 
    105  
     102        $arrNavi = $this->lfGetNaviData($arrPageLayout['page_id']); 
     103 
     104        $arrPageLayout['LeftNavi']  = $this->lfGetNavi($arrNavi,1);    // LEFT NAVI 
     105        $arrPageLayout['MainHead']  = $this->lfGetNavi($arrNavi,2);    // メイン上部 
     106        $arrPageLayout['RightNavi'] = $this->lfGetNavi($arrNavi,3);    // RIGHT NAVI 
     107        $arrPageLayout['MainFoot']  = $this->lfGetNavi($arrNavi,4);    // メイン下部 
     108        $arrPageLayout['TopNavi'] = $this->lfGetNavi($arrNavi,5); //上部 
     109        $arrPageLayout['BottomNavi'] = $this->lfGetNavi($arrNavi,6); //下部 
     110        $arrPageLayout['HeadNavi'] = $this->lfGetNavi($arrNavi,7); //上部 
     111        $arrPageLayout['HeaderTopNavi'] = $this->lfGetNavi($arrNavi,8); //上部 
     112        $arrPageLayout['FooterBottomNavi'] = $this->lfGetNavi($arrNavi,9); //下部 
     113         
     114         
    106115        GC_Utils::gfDebugLog($arrPageLayout); 
    107116         
     
    121130     * @return array ページ情報を格納した配列 
    122131     */ 
    123     function lfgetPageData($addwhere = '', $sqlval = ''){ 
    124         $objQuery = new SC_Query;       // DB操作オブジェクト 
    125         $arrRet = array();              // データ取得用 
    126  
    127         // SQL文生成 
     132    function lfgetPageData($where = 'page_id <> 0', $where_vals = array()) { 
     133                 
     134        $objQuery = new SC_Query;       // DB操作オブジェクト 
     135        $arrRet = array();              // データ取得用 
     136 
    128137        // 取得するカラム 
    129         $col  = " page_id";             // ページID 
    130         $col .= " ,page_name";          // 名称 
    131         $col .= " ,url";                // URL 
    132         $col .= " ,php_dir";            // php保存先ディレクトリ 
    133         $col .= " ,tpl_dir";            // tpl保存先ディレクトリ 
    134         $col .= " ,filename";           // ファイル名称 
    135         $col .= " ,header_chk ";        // ヘッダー使用FLG 
    136         $col .= " ,footer_chk ";        // フッター使用FLG 
    137         $col .= " ,edit_flg ";          // 編集可能FLG 
    138         $col .= " ,author";             // authorタグ 
    139         $col .= " ,description";        // descriptionタグ 
    140         $col .= " ,keyword";            // keywordタグ 
    141         $col .= " ,update_url";         // 更新URL 
    142         $col .= " ,create_date";        // データ作成日 
    143         $col .= " ,update_date";        // データ更新日 
     138        $col  = " page_id";             // ページID 
     139        $col .= " ,page_name";          // 名称 
     140        $col .= " ,url";                // URL 
     141        $col .= " ,php_dir";            // php保存先ディレクトリ 
     142        $col .= " ,tpl_dir";            // tpl保存先ディレクトリ 
     143        $col .= " ,filename";           // ファイル名称 
     144        $col .= " ,header_chk ";        // ヘッダー使用FLG 
     145        $col .= " ,footer_chk ";        // フッター使用FLG 
     146        $col .= " ,edit_flg ";          // 編集可能FLG 
     147        $col .= " ,author";             // authorタグ 
     148        $col .= " ,description";        // descriptionタグ 
     149        $col .= " ,keyword";            // keywordタグ 
     150        $col .= " ,update_url";         // 更新URL 
     151        $col .= " ,create_date";        // データ作成日 
     152        $col .= " ,update_date";        // データ更新日 
    144153         
    145154        // 取得するテーブル 
    146155        $table = "dtb_pagelayout"; 
    147156         
    148         // where句の指定があれば追加 
    149         $where = ($addwhere != '') ? $addwhere : "page_id <> 0"; 
    150          
    151157        // 並び変え 
    152158        $objQuery->setOrder('page_id'); 
    153159         
    154160        // SQL実行 
    155         $arrRet = $objQuery->select($col, $table, $where, $sqlval); 
     161        $arrRet = $objQuery->select($col, $table, $where, $where_vals); 
    156162         
    157163        // 結果を返す 
     
    163169     * 
    164170     * @param string $url ページのURL 
    165      * @param boolean $preview プレビュー表示の場合 true 
    166171     * @return array ナビ情報の配列 
    167172     */ 
    168     function lfGetNaviData($url, $preview=false){ 
     173    function lfGetNaviData($page_id){ 
    169174        $objQuery = new SC_Query;       // DB操作オブジェクト 
    170         $sql = "";                      // データ取得SQL生成用 
    171         $arrRet = array();              // データ取得用 
    172         $arrData = array(); 
    173  
    174         // SQL文生成 
     175 
    175176        // 取得するカラム 
    176         $col = "target_id, bloc_name, tpl_path, php_path"; 
     177        $col = "target_id, bloc_name, tpl_path, php_path,anywhere"; 
    177178         
    178179        // 取得するテーブル 
    179         $table = "dtb_blocposition AS pos, dtb_bloc AS bloc"; 
     180        $table = "dtb_blocposition AS pos INNER JOIN dtb_bloc AS bloc ON bloc.bloc_id = pos.bloc_id"; 
    180181         
    181182        // where文生成 
    182         $where = "bloc.bloc_id = pos.bloc_id"; 
    183         if ($preview == true) { 
    184             $where .= " AND EXISTS (SELECT page_id FROM dtb_pagelayout AS lay WHERE page_id = '0' AND pos.page_id = lay.page_id)"; 
    185         }else{ 
    186             $where .= " AND EXISTS (SELECT page_id FROM dtb_pagelayout AS lay WHERE url = ? AND page_id <> '0' AND pos.page_id = lay.page_id)"; 
    187             $sqlval = array($url); 
    188         } 
     183        $where = "anywhere = 1 OR page_id = ?"; 
     184        $where_vals[] = $page_id; 
     185 
    189186        // 並び変え 
    190187        $objQuery->setOrder('target_id, bloc_row'); 
    191188         
    192189        // SQL実行 
    193         $arrRet = $objQuery->select($col, $table, $where, $sqlval); 
    194                                              
     190        $arrRet = $objQuery->select($col, $table, $where, $where_vals); 
     191         
    195192        // 結果を返す 
    196193        return $arrRet; 
     
    206203    function lfGetNavi($arrNavi, $target_id) { 
    207204        $arrRet = array(); 
    208         if(is_array($arrNavi) === true) { 
    209             reset($arrNavi); 
    210             while( list($key,$val)= each($arrNavi) ){ 
    211                 // 指定された箇所と同じデータだけを取得する 
    212                 if ($target_id == $val['target_id']){ 
     205        if(is_array($arrNavi)) { 
     206            foreach($arrNavi as $key => $val){ 
     207                // 指定された箇所と同じデータだけを取得する 
     208                if ($target_id == $val['target_id'] ){ 
    213209                    if ($val['php_path'] != '') { 
    214210                        $arrNavi[$key]['php_path'] = HTML_PATH . $val['php_path']; 
    215211                    }else{ 
    216                         $user_block_path = USER_TEMPLATE_PATH . TEMPLATE_NAME . "/" . $val['tpl_path']; 
    217                         if(is_file($user_block_path)) { 
    218                            $arrNavi[$key]['tpl_path'] = $user_block_path; 
    219                         } else { 
    220                            $arrNavi[$key]['tpl_path'] = TEMPLATE_DIR . $val['tpl_path']; 
    221                         } 
     212                        $user_block_path = USER_TEMPLATE_PATH . TEMPLATE_NAME . "/" . $val['tpl_path']; 
     213                        if(is_file($user_block_path)) { 
     214                            $arrNavi[$key]['tpl_path'] = $user_block_path; 
     215                        } else { 
     216                            $arrNavi[$key]['tpl_path'] = TEMPLATE_DIR . $val['tpl_path']; 
     217                        } 
    222218                    } 
    223219                     
     
    258254     */ 
    259255    function lfDelPageData($page_id){ 
    260         // DBへデータを更新する 
    261256        $objQuery = new SC_Query;       // DB操作オブジェクト 
    262         $sql = "";                      // データ更新SQL生成用 
    263         $ret = "";                      // データ更新結果格納用 
    264         $arrDelData = array();          // 更新データ生成用 
     257        $ret = "";                  // 結果格納用 
     258        $arrDelData = array();      // 抽出データ用 
    265259 
    266260        // page_id が空でない場合にはdeleteを実行 
Note: See TracChangeset for help on using the changeset viewer.