Ignore:
Timestamp:
2008/09/09 12:45:44 (16 years ago)
Author:
Seasoft
Message:

Sitemap の改善
・TOPページが重複している問題を解消
r17416 の変更に対応

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/comu-ver2/data/class/pages/LC_Page_Sitemap.php

    r17558 r17602  
    7979        parent::init(); 
    8080 
    81         $this->staticURL[] = SITE_URL; 
    8281        $this->staticURL[] = SITE_URL . 'rss/index.php'; 
    8382        if (USE_MOBILE !== false) { 
     
    109108        print("<?xml version='1.0' encoding='UTF-8'?>\n"); 
    110109        print("<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n"); 
    111  
    112         // 静的なページを処理 
    113         foreach($this->staticURL as $url) { 
    114             $this->createSitemap($url, '', 'daily', 1.0); 
    115         } 
    116110 
    117111        // TOPページを処理 
     
    121115                             'daily', 1.0); 
    122116 
     117        // 静的なページを処理 
     118        foreach ($this->staticURL as $url) { 
     119            $this->createSitemap($url, '', 'daily', 1.0); 
     120        } 
     121 
    123122        // 編集可能ページを処理 
    124123        $editablePages = $this->getEditablePage($this->arrPageList); 
    125         foreach($editablePages as $editablePage) { 
     124        foreach ($editablePages as $editablePage) { 
    126125            $this->createSitemap($editablePage['url'], 
    127126                                 $this->date2W3CDatetime($editablePage['update_date'])); 
     
    130129        // 商品一覧ページを処理 
    131130        $products = $this->getAllProducts(); 
    132         foreach($products as $product) { 
     131        foreach ($products as $product) { 
    133132            $this->createSitemap($product['url'], '', 'daily'); 
    134133        } 
     
    136135        // 商品詳細ページを処理 
    137136        $details = $this->getAllDetail(); 
    138         foreach($details as $detail) { 
     137        foreach ($details as $detail) { 
    139138            $this->createSitemap($detail['url'], 
    140139                                 $this->date2W3CDatetime($detail['update_date'])); 
     
    188187    function getTopPage($pageData) { 
    189188        $arrRet = array(); 
    190         foreach($pageData as $page) { 
     189        foreach ($pageData as $page) { 
    191190            if ($page['page_id'] == "1") { 
    192                 $page['url'] = SITE_URL . $page['url']; 
    193191                $arrRet[0] = $page; 
    194192                return $arrRet; 
     
    205203    function getEditablePage($pageData) { 
    206204        $arrRet = array(); 
    207         $i = 0; 
    208         foreach($pageData as $page) { 
     205        foreach ($pageData as $page) { 
    209206            if ($page['page_id'] > 4) { 
    210                 $arrRet[$i] = $page; 
    211                 $i++; 
     207                $arrRet[] = $page; 
    212208            } 
    213209        } 
     
    309305        $sql .= " ORDER BY page_id"; 
    310306 
    311         return $objDBConn->getAll($sql, $arrVal); 
     307        $pageData = $objDBConn->getAll($sql, $arrVal); 
     308         
     309        // URL にプロトコルの記載が無い場合、SITE_URL を前置する。 
     310        foreach (array_keys($pageData) as $key) { 
     311            $page =& $pageData[$key]; 
     312            if (!preg_match('|^https?://|i', $page['url'])) { 
     313                $page['url'] = SITE_URL . $page['url']; 
     314            } 
     315        } 
     316        unset($page); 
     317         
     318        return $pageData; 
    312319    } 
    313320 
Note: See TracChangeset for help on using the changeset viewer.