Changeset 18758 for trunk/data/class/helper/SC_Helper_PageLayout.php
- Timestamp:
- 2010/07/20 13:25:33 (16 years ago)
- File:
-
- 1 edited
-
trunk/data/class/helper/SC_Helper_PageLayout.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/class/helper/SC_Helper_PageLayout.php
r18562 r18758 3 3 * This file is part of EC-CUBE 4 4 * 5 * Copyright(c) 2000-20 07LOCKON CO.,LTD. All Rights Reserved.5 * Copyright(c) 2000-2010 LOCKON CO.,LTD. All Rights Reserved. 6 6 * 7 7 * http://www.lockon.co.jp/ … … 46 46 function sfGetPageLayout(&$objPage, $preview = false, $url = ""){ 47 47 $debug_message = ""; 48 $arrPageLayout = array();48 $arrPageLayout = array(); 49 49 50 50 // 現在のURLの取得 51 51 if ($preview === false) { 52 52 if ($url == "") { 53 $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 53 // 従来互換(dtb_pagelayoutのurlが絶対URLだった時) 54 $url = SITE_URL . preg_replace('|^' . preg_quote(URL_DIR) . '|', '' , $_SERVER['PHP_SELF']); 54 55 } 56 57 $url2 = preg_replace('|^http://[^/]+' . preg_quote(URL_DIR) . '|', '', $url); 55 58 // URLを元にページデザインを取得 56 $arrPageData = $this->lfgetPageData(" url = ? " , array($url));57 } else{58 $arrPageData = $this->lfgetPageData(" page_id = ? " , array("0"));59 $arrPageData = $this->lfgetPageData("url IN (?, ?) AND page_id <> 0" , array($url2, $url)); // $url は従来互換 60 } else { 61 $arrPageData = $this->lfgetPageData("page_id = 0"); 59 62 $objPage->tpl_mainpage = USER_PATH . "templates/preview/" 60 63 . TEMPLATE_NAME . "/" . $arrPageData[0]['filename'] . ".tpl"; … … 62 65 63 66 reset($arrPageData[0]); 64 while( list($key,$val) = each($arrPageData[0]) ){65 $debug_message.= "arrPageData[$key]:" . $val . "\n";67 while( list($key,$val) = each($arrPageData[0]) ){ 68 $debug_message.= "arrPageData[$key]:" . $val . "\n"; 66 69 } 67 70 … … 97 100 98 101 // 全ナビデータを取得する 99 $arrNavi = $this->lfGetNaviData($ url, $preview);100 101 $arrPageLayout['LeftNavi'] = $this->lfGetNavi($arrNavi,1); // LEFT NAVI102 $arrPageLayout['MainHead'] = $this->lfGetNavi($arrNavi,2); // メイン上部103 $arrPageLayout['RightNavi'] = $this->lfGetNavi($arrNavi,3); // RIGHT NAVI104 $arrPageLayout['MainFoot'] = $this->lfGetNavi($arrNavi,4); // メイン下部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); // メイン下部 105 108 106 109 GC_Utils::gfDebugLog($arrPageLayout); … … 121 124 * @return array ページ情報を格納した配列 122 125 */ 123 function lfgetPageData($addwhere = '', $sqlval = ''){ 124 $objQuery = new SC_Query; // DB操作オブジェクト 125 $arrRet = array(); // データ取得用 126 127 // SQL文生成 126 function lfgetPageData($where = 'page_id <> 0', $where_vals = array()) { 127 $objQuery = new SC_Query; // DB操作オブジェクト 128 $arrRet = array(); // データ取得用 129 128 130 // 取得するカラム 129 $col = " page_id"; // ページID130 $col .= " ,page_name"; // 名称131 $col .= " ,url"; // URL132 $col .= " ,php_dir"; // php保存先ディレクトリ133 $col .= " ,tpl_dir"; // tpl保存先ディレクトリ134 $col .= " ,filename"; // ファイル名称135 $col .= " ,header_chk "; // ヘッダー使用FLG136 $col .= " ,footer_chk "; // フッター使用FLG137 $col .= " ,edit_flg "; // 編集可能FLG138 $col .= " ,author"; // authorタグ139 $col .= " ,description"; // descriptionタグ140 $col .= " ,keyword"; // keywordタグ141 $col .= " ,update_url"; // 更新URL142 $col .= " ,create_date"; // データ作成日143 $col .= " ,update_date"; // データ更新日131 $col = " page_id"; // ページID 132 $col .= " ,page_name"; // 名称 133 $col .= " ,url"; // URL 134 $col .= " ,php_dir"; // php保存先ディレクトリ 135 $col .= " ,tpl_dir"; // tpl保存先ディレクトリ 136 $col .= " ,filename"; // ファイル名称 137 $col .= " ,header_chk "; // ヘッダー使用FLG 138 $col .= " ,footer_chk "; // フッター使用FLG 139 $col .= " ,edit_flg "; // 編集可能FLG 140 $col .= " ,author"; // authorタグ 141 $col .= " ,description"; // descriptionタグ 142 $col .= " ,keyword"; // keywordタグ 143 $col .= " ,update_url"; // 更新URL 144 $col .= " ,create_date"; // データ作成日 145 $col .= " ,update_date"; // データ更新日 144 146 145 147 // 取得するテーブル 146 148 $table = "dtb_pagelayout"; 147 149 148 // where句の指定があれば追加149 $where = ($addwhere != '') ? $addwhere : "page_id <> 0";150 151 150 // 並び変え 152 151 $objQuery->setOrder('page_id'); 153 152 154 153 // SQL実行 155 $arrRet = $objQuery->select($col, $table, $where, $ sqlval);154 $arrRet = $objQuery->select($col, $table, $where, $where_vals); 156 155 157 156 // 結果を返す … … 163 162 * 164 163 * @param string $url ページのURL 165 * @param boolean $preview プレビュー表示の場合 true166 164 * @return array ナビ情報の配列 167 165 */ 168 function lfGetNaviData($url, $preview=false){ 169 $objQuery = new SC_Query; // DB操作オブジェクト 170 $sql = ""; // データ取得SQL生成用 171 $arrRet = array(); // データ取得用 172 $arrData = array(); 173 174 // SQL文生成 166 function lfGetNaviData($page_id){ 167 $objQuery = new SC_Query; // DB操作オブジェクト 168 175 169 // 取得するカラム 176 170 $col = "target_id, bloc_name, tpl_path, php_path"; 177 171 178 172 // 取得するテーブル 179 $table = "dtb_blocposition AS pos , dtb_bloc AS bloc";173 $table = "dtb_blocposition AS pos INNER JOIN dtb_bloc AS bloc ON bloc.bloc_id = pos.bloc_id"; 180 174 181 175 // 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 } 176 $where = "page_id = ?"; 177 $where_vals[] = $page_id; 178 189 179 // 並び変え 190 180 $objQuery->setOrder('target_id, bloc_row'); 191 181 192 182 // SQL実行 193 $arrRet = $objQuery->select($col, $table, $where, $ sqlval);194 183 $arrRet = $objQuery->select($col, $table, $where, $where_vals); 184 195 185 // 結果を返す 196 186 return $arrRet; … … 207 197 $arrRet = array(); 208 198 if(is_array($arrNavi) === true) { 209 reset($arrNavi);199 reset($arrNavi); 210 200 while( list($key,$val)= each($arrNavi) ){ 211 // 指定された箇所と同じデータだけを取得する201 // 指定された箇所と同じデータだけを取得する 212 202 if ($target_id == $val['target_id']){ 213 203 if ($val['php_path'] != '') { 214 204 $arrNavi[$key]['php_path'] = HTML_PATH . $val['php_path']; 215 } 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 }205 } else { 206 $user_block_path = USER_TEMPLATE_PATH . TEMPLATE_NAME . "/" . $val['tpl_path']; 207 if(is_file($user_block_path)) { 208 $arrNavi[$key]['tpl_path'] = $user_block_path; 209 } else { 210 $arrNavi[$key]['tpl_path'] = TEMPLATE_DIR . $val['tpl_path']; 211 } 222 212 } 223 213 … … 258 248 */ 259 249 function lfDelPageData($page_id){ 260 // DBへデータを更新する 261 $objQuery = new SC_Query; // DB操作オブジェクト 262 $sql = ""; // データ更新SQL生成用 263 $ret = ""; // データ更新結果格納用 264 $arrDelData = array(); // 更新データ生成用 250 // DBへデータを更新する 251 $objQuery = new SC_Query; // DB操作オブジェクト 252 $ret = ""; // 結果格納用 253 $arrDelData = array(); // 抽出データ用 265 254 266 255 // page_id が空でない場合にはdeleteを実行
Note: See TracChangeset
for help on using the changeset viewer.
