- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/helper/SC_Helper_PageLayout.php
r18562 r18609 46 46 function sfGetPageLayout(&$objPage, $preview = false, $url = ""){ 47 47 $debug_message = ""; 48 48 $arrPageLayout = array(); 49 49 50 50 // 現在のURLの取得 … … 53 53 $url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 54 54 } 55 56 $url2 = preg_replace('|^http://[^/]+' . preg_quote(URL_DIR) . '|', '', $url); 55 57 // 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"); 59 61 $objPage->tpl_mainpage = USER_PATH . "templates/preview/" 60 62 . TEMPLATE_NAME . "/" . $arrPageData[0]['filename'] . ".tpl"; 61 63 } 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 } 66 69 } 67 70 … … 97 100 98 101 // 全ナビデータを取得する 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 106 115 GC_Utils::gfDebugLog($arrPageLayout); 107 116 … … 121 130 * @return array ページ情報を格納した配列 122 131 */ 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 128 137 // 取得するカラム 129 $col = " page_id"; 130 $col .= " ,page_name"; 131 $col .= " ,url"; 132 $col .= " ,php_dir"; 133 $col .= " ,tpl_dir"; 134 $col .= " ,filename"; 135 $col .= " ,header_chk "; 136 $col .= " ,footer_chk "; 137 $col .= " ,edit_flg "; 138 $col .= " ,author"; 139 $col .= " ,description"; 140 $col .= " ,keyword"; 141 $col .= " ,update_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"; // データ更新日 144 153 145 154 // 取得するテーブル 146 155 $table = "dtb_pagelayout"; 147 156 148 // where句の指定があれば追加149 $where = ($addwhere != '') ? $addwhere : "page_id <> 0";150 151 157 // 並び変え 152 158 $objQuery->setOrder('page_id'); 153 159 154 160 // SQL実行 155 $arrRet = $objQuery->select($col, $table, $where, $ sqlval);161 $arrRet = $objQuery->select($col, $table, $where, $where_vals); 156 162 157 163 // 結果を返す … … 163 169 * 164 170 * @param string $url ページのURL 165 * @param boolean $preview プレビュー表示の場合 true166 171 * @return array ナビ情報の配列 167 172 */ 168 function lfGetNaviData($ url, $preview=false){173 function lfGetNaviData($page_id){ 169 174 $objQuery = new SC_Query; // DB操作オブジェクト 170 $sql = ""; // データ取得SQL生成用 171 $arrRet = array(); // データ取得用 172 $arrData = array(); 173 174 // SQL文生成 175 175 176 // 取得するカラム 176 $col = "target_id, bloc_name, tpl_path, php_path ";177 $col = "target_id, bloc_name, tpl_path, php_path,anywhere"; 177 178 178 179 // 取得するテーブル 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"; 180 181 181 182 // 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 189 186 // 並び変え 190 187 $objQuery->setOrder('target_id, bloc_row'); 191 188 192 189 // SQL実行 193 $arrRet = $objQuery->select($col, $table, $where, $ sqlval);194 190 $arrRet = $objQuery->select($col, $table, $where, $where_vals); 191 195 192 // 結果を返す 196 193 return $arrRet; … … 206 203 function lfGetNavi($arrNavi, $target_id) { 207 204 $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'] ){ 213 209 if ($val['php_path'] != '') { 214 210 $arrNavi[$key]['php_path'] = HTML_PATH . $val['php_path']; 215 211 }else{ 216 217 218 219 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 } 222 218 } 223 219 … … 258 254 */ 259 255 function lfDelPageData($page_id){ 260 // DBへデータを更新する261 256 $objQuery = new SC_Query; // DB操作オブジェクト 262 $sql = ""; // データ更新SQL生成用 263 $ret = ""; // データ更新結果格納用 264 $arrDelData = array(); // 更新データ生成用 257 $ret = ""; // 結果格納用 258 $arrDelData = array(); // 抽出データ用 265 259 266 260 // page_id が空でない場合にはdeleteを実行
Note: See TracChangeset
for help on using the changeset viewer.