- Timestamp:
- 2011/02/04 22:10:47 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/version-2_5-dev/data/class/pages/LC_Page_Sitemap.php
r20057 r20098 92 92 $this->arrPageList = $this->getPageData(); 93 93 94 $objQuery = new SC_Query();94 $objQuery = SC_Query::getSingletonInstance(); 95 95 96 96 //キャッシュしない(念のため) … … 108 108 109 109 // TOPページを処理 110 $ topPage= $this->getTopPage($this->arrPageList);111 $this->createSitemap($ topPage[0]['url'],112 $this->date2W3CDatetime($ topPage[0]['update_date']),110 $arrTopPagesList = $this->getTopPage($this->arrPageList); 111 $this->createSitemap($arrTopPagesList[0]['url'], 112 $this->date2W3CDatetime($arrTopPagesList[0]['update_date']), 113 113 'daily', 1.0); 114 114 … … 119 119 120 120 // 編集可能ページを処理 121 $ editablePages= $this->getEditablePage($this->arrPageList);122 foreach ($ editablePages as $editablePage) {123 $this->createSitemap($ editablePage['url'],124 $this->date2W3CDatetime($ editablePage['update_date']));121 $arrEditablePagesList = $this->getEditablePage($this->arrPageList); 122 foreach ($arrEditablePagesList as $arrEditablePage) { 123 $this->createSitemap($arrEditablePage['url'], 124 $this->date2W3CDatetime($arrEditablePage['update_date'])); 125 125 } 126 126 127 127 // 商品一覧ページを処理 128 $ products= $this->getAllProducts();129 foreach ($ products as $product) {130 $this->createSitemap($ product['url'], '', 'daily');128 $arrProductPagesList = $this->getAllProducts(); 129 foreach ($arrProductPagesList as $arrProductPage) { 130 $this->createSitemap($arrProductPage['url'], '', 'daily'); 131 131 } 132 132 133 133 // 商品詳細ページを処理 134 $ details= $this->getAllDetail();135 foreach ($ details as $detail) {136 $this->createSitemap($ detail['url'],137 $this->date2W3CDatetime($ detail['update_date']));134 $arrDetailPagesList = $this->getAllDetail(); 135 foreach ($arrDetailPagesList as $arrDetailPage) { 136 $this->createSitemap($arrDetailPage['url'], 137 $this->date2W3CDatetime($arrDetailPage['update_date'])); 138 138 } 139 139 … … 180 180 * TOPページの情報を取得する. 181 181 * 182 * @param array $ pageDataすべてのページ情報の配列182 * @param array $arrPageList すべてのページ情報の配列 183 183 * @return array TOPページの情報 184 184 */ 185 function getTopPage($ pageData) {185 function getTopPage($arrPageList) { 186 186 $arrRet = array(); 187 foreach ($ pageData as $page) {188 if ($ page['page_id'] == "1") {189 $arrRet[0] = $ page;187 foreach ($arrPageList as $arrPage) { 188 if ($arrPage['page_id'] == "1") { 189 $arrRet[0] = $arrPage; 190 190 return $arrRet; 191 191 } … … 196 196 * すべての編集可能ページの情報を取得する. 197 197 * 198 * @param array $ pageDataすべてのページ情報の配列198 * @param array $arrPageList すべてのページ情報の配列 199 199 * @return array 編集可能ページ 200 200 */ 201 function getEditablePage($ pageData) {201 function getEditablePage($arrPageList) { 202 202 $arrRet = array(); 203 foreach ($ pageData as $page) {204 if ($ page['page_id'] > 4) {205 $arrRet[] = $ page;203 foreach ($arrPageList as $arrPage) { 204 if ($arrPage['page_id'] > 4) { 205 $arrRet[] = $arrPage; 206 206 } 207 207 } … … 217 217 218 218 // XXX: 商品登録の無いカテゴリーは除外する方が良い気もする 219 $objQuery = new SC_Query();219 $objQuery = SC_Query::getSingletonInstance(); 220 220 $sql = "SELECT category_id FROM dtb_category WHERE del_flg = 0"; 221 221 $result = $objQuery->getAll($sql); … … 225 225 // :TODO: カテゴリの最終更新日を取得できるようにする 226 226 227 $ page["url"] = HTTP_URL . 'products/list.php?category_id=' . $row['category_id'];228 $arrRet[] = $ page;227 $arrPage["url"] = HTTP_URL . 'products/list.php?category_id=' . $row['category_id']; 228 $arrRet[] = $arrPage; 229 229 230 230 // モバイルサイト 231 231 if (USE_MOBILE !== false) { 232 $ page["url"] = MOBILE_HTTP_URL . 'products/list.php?category_id=' . $row['category_id'];233 $arrRet[] = $ page;232 $arrPage["url"] = MOBILE_HTTP_URL . 'products/list.php?category_id=' . $row['category_id']; 233 $arrRet[] = $arrPage; 234 234 } 235 235 } … … 243 243 */ 244 244 function getAllDetail() { 245 $objQuery = new SC_Query();245 $objQuery = SC_Query::getSingletonInstance(); 246 246 $sql = "SELECT product_id, update_date FROM dtb_products WHERE del_flg = 0 AND status = 1"; 247 247 $result = $objQuery->getAll($sql); … … 250 250 foreach ($result as $row) { 251 251 252 $ page["update_date"] = $row['update_date'];253 254 $ page["url"] = HTTP_URL . substr(P_DETAIL_URLPATH, strlen(ROOT_URLPATH)) . $row['product_id'];255 $arrRet[] = $ page;252 $arrPage["update_date"] = $row['update_date']; 253 254 $arrPage["url"] = HTTP_URL . substr(P_DETAIL_URLPATH, strlen(ROOT_URLPATH)) . $row['product_id']; 255 $arrRet[] = $arrPage; 256 256 257 257 // モバイルサイト 258 258 if (USE_MOBILE !== false) { 259 $ page["url"] = HTTP_URL . substr(MOBILE_P_DETAIL_URLPATH, strlen(ROOT_URLPATH)) . $row['product_id'];260 $arrRet[] = $ page;259 $arrPage["url"] = HTTP_URL . substr(MOBILE_P_DETAIL_URLPATH, strlen(ROOT_URLPATH)) . $row['product_id']; 260 $arrRet[] = $arrPage; 261 261 } 262 262 } … … 270 270 * @param string $where WHERE句 271 271 * @param array $arrVal WHERE句の値を格納した配列 272 * @return ブロック情報272 * @return array $arrPageList ブロック情報 273 273 */ 274 274 function getPageData($where = '', $arrVal = ''){ 275 $objQuery = new SC_Query(); // DB操作オブジェクト275 $objQuery = SC_Query::getSingletonInstance(); // DB操作オブジェクト 276 276 $sql = ""; // データ取得SQL生成用 277 277 $arrRet = array(); // データ取得用 … … 301 301 $sql .= " ORDER BY page_id"; 302 302 303 $ pageData= $objQuery->getAll($sql, $arrVal);303 $arrPageList = $objQuery->getAll($sql, $arrVal); 304 304 305 305 // URL にプロトコルの記載が無い場合、HTTP_URL を前置する。 306 foreach (array_keys($ pageData) as $key) {307 $ page =& $pageData[$key];308 if (!preg_match('|^https?://|i', $ page['url'])) {309 $ page['url'] = HTTP_URL . $page['url'];310 } 311 $ page['url'] = preg_replace('|/' . preg_quote(DIR_INDEX_FILE) . '$|', '/' . DIR_INDEX_PATH, $page['url']);312 } 313 unset($ page);314 315 return $ pageData;306 foreach (array_keys($arrPageList) as $key) { 307 $arrPage =& $arrPageList[$key]; 308 if (!preg_match('|^https?://|i', $arrPage['url'])) { 309 $arrPage['url'] = HTTP_URL . $arrPage['url']; 310 } 311 $arrPage['url'] = preg_replace('|/' . preg_quote(DIR_INDEX_FILE) . '$|', '/' . DIR_INDEX_PATH, $arrPage['url']); 312 } 313 unset($arrPage); 314 315 return $arrPageList; 316 316 } 317 317 … … 325 325 $arr = array(); 326 326 // 正規表現で文字列を抽出 327 ereg("^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",327 preg_match("/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})/", 328 328 $date, $arr); 329 329 // :TODO: time zone も取得するべき...
Note: See TracChangeset
for help on using the changeset viewer.
