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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tmp/version-2_5-test/data/class/pages/LC_Page_Sitemap.php

    r16582 r18609  
    6060    var $staticURL; 
    6161 
    62  
    63     /** ページデータ */ 
    64     var $arrPageData; 
    65  
    6662    /** ページリスト */ 
    6763    var $arrPageList; 
     
    7874    function init() { 
    7975        parent::init(); 
    80         $this->staticURL = array(SITE_URL, MOBILE_SITE_URL, SITE_URL . "rss/index.php"); 
     76         
     77        $this->staticURL = array(); 
     78         
     79        $this->staticURL[] = SITE_URL . 'rss/' . DIR_INDEX_URL; 
     80        if (USE_MOBILE !== false) { 
     81            $this->staticURL[] = MOBILE_SITE_URL; 
     82        } 
    8183    } 
    8284 
     
    104106        print("<?xml version='1.0' encoding='UTF-8'?>\n"); 
    105107        print("<urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'>\n"); 
    106  
    107         // 静的なページを処理 
    108         foreach($this->staticURL as $url) { 
    109             $this->createSitemap($url, '', 'daily', 1.0); 
    110         } 
    111108 
    112109        // TOPページを処理 
     
    116113                             'daily', 1.0); 
    117114 
     115        // 静的なページを処理 
     116        foreach ($this->staticURL as $url) { 
     117            $this->createSitemap($url, '', 'daily', 1.0); 
     118        } 
     119 
    118120        // 編集可能ページを処理 
    119121        $editablePages = $this->getEditablePage($this->arrPageList); 
    120         foreach($editablePages as $editablePage) { 
     122        foreach ($editablePages as $editablePage) { 
    121123            $this->createSitemap($editablePage['url'], 
    122124                                 $this->date2W3CDatetime($editablePage['update_date'])); 
     
    125127        // 商品一覧ページを処理 
    126128        $products = $this->getAllProducts(); 
    127         foreach($products as $product) { 
     129        foreach ($products as $product) { 
    128130            $this->createSitemap($product['url'], '', 'daily'); 
    129         } 
    130         $mobileProducts = $this->getAllProducts(true); 
    131         foreach($mobileProducts as $mobileProduct) { 
    132             $this->createSitemap($mobileProduct['url'], '', 'daily'); 
    133131        } 
    134132 
    135133        // 商品詳細ページを処理 
    136134        $details = $this->getAllDetail(); 
    137         foreach($details as $detail) { 
     135        foreach ($details as $detail) { 
    138136            $this->createSitemap($detail['url'], 
    139137                                 $this->date2W3CDatetime($detail['update_date'])); 
    140         } 
    141         $mobileDetails = $this->getAllDetail(true); 
    142         foreach($mobileDetails as $mobileDetail) { 
    143             $this->createSitemap($mobileDetail['url'],  
    144                                  $this->date2W3CDatetime($mobileDetail['update_date'])); 
    145138        } 
    146139 
     
    192185    function getTopPage($pageData) { 
    193186        $arrRet = array(); 
    194         foreach($pageData as $page) { 
     187        foreach ($pageData as $page) { 
    195188            if ($page['page_id'] == "1") { 
    196                 $page['url'] = SITE_URL . $page['url']; 
    197189                $arrRet[0] = $page; 
    198190                return $arrRet; 
     
    209201    function getEditablePage($pageData) { 
    210202        $arrRet = array(); 
    211         $i = 0; 
    212         foreach($pageData as $page) { 
     203        foreach ($pageData as $page) { 
    213204            if ($page['page_id'] > 4) { 
    214                 $arrRet[$i] = $page; 
    215                 $i++; 
     205                $arrRet[] = $page; 
    216206            } 
    217207        } 
     
    222212     * すべての商品一覧ページを取得する. 
    223213     * 
    224      * @param boolean $isMobile モバイルページを取得する場合 true 
    225214     * @return array 検索エンジンからアクセス可能な商品一覧ページの情報 
    226215     */ 
    227     function getAllProducts($isMobile = false) { 
     216    function getAllProducts() { 
     217         
     218        // XXX: 商品登録の無いカテゴリーは除外する方が良い気もする 
    228219        $conn = new SC_DBConn(); 
    229220        $sql = "SELECT category_id FROM dtb_category WHERE del_flg = 0"; 
    230221        $result = $conn->getAll($sql); 
    231222 
    232         $mobile = ""; 
    233         if ($isMobile) { 
    234             $mobile = "mobile/"; 
    235         } 
    236  
    237223        $arrRet = array(); 
    238         for ($i = 0; $i < count($result); $i++) { 
     224        foreach ($result as $row) { 
    239225            // :TODO: カテゴリの最終更新日を取得できるようにする 
    240             $page = array("url" => SITE_URL . sprintf("%sproducts/list.php?category_id=%d", $mobile, $result[$i]['category_id'])); 
    241             $arrRet[$i] = $page; 
     226             
     227            $page["url"] = SITE_URL . 'products/list.php?category_id=' . $row['category_id']; 
     228            $arrRet[] = $page; 
     229             
     230            // モバイルサイト 
     231            if (USE_MOBILE !== false) { 
     232                $page["url"] = MOBILE_SITE_URL . 'products/list.php?category_id=' . $row['category_id']; 
     233                $arrRet[] = $page; 
     234            } 
    242235        } 
    243236        return $arrRet; 
     
    247240     * すべての商品詳細ページを取得する. 
    248241     * 
    249      * @param boolean $isMobile モバイルページを取得する場合 true 
    250242     * @return array 検索エンジンからアクセス可能な商品詳細ページの情報 
    251243     */ 
    252     function getAllDetail($isMobile = false) { 
     244    function getAllDetail() { 
    253245        $conn = new SC_DBConn(); 
    254246        $sql = "SELECT product_id, update_date FROM dtb_products WHERE del_flg = 0 AND status = 1"; 
    255247        $result = $conn->getAll($sql); 
    256248 
    257         $mobile = ""; 
    258         if ($isMobile) { 
    259             $mobile = "mobile/"; 
    260         } 
    261  
    262249        $arrRet = array(); 
    263         for ($i = 0; $i < count($result); $i++) { 
    264             $page = array("url" => SITE_URL. sprintf("%sproducts/detail.php?product_id=%d", $mobile, $result[$i]['product_id']), 
    265                           "update_date" => $result[$i]['update_date']); 
    266             $arrRet[$i] = $page; 
     250        foreach ($result as $row) { 
     251             
     252            $page["update_date"] = $row['update_date']; 
     253             
     254            $page["url"] = SITE_URL . substr(DETAIL_P_HTML, strlen(URL_DIR)) . $row['product_id']; 
     255            $arrRet[] = $page; 
     256             
     257            // モバイルサイト 
     258            if (USE_MOBILE !== false) { 
     259                $page["url"] = SITE_URL . substr(MOBILE_DETAIL_P_HTML, strlen(URL_DIR)) . $row['product_id']; 
     260                $arrRet[] = $page; 
     261            } 
    267262        } 
    268263        return $arrRet; 
     
    278273     */ 
    279274    function getPageData($where = '', $arrVal = ''){ 
    280         $objDBConn = new SC_DbConn;     // DB操作オブジェクト 
    281         $sql = "";                      // データ取得SQL生成用 
    282         $arrRet = array();              // データ取得用 
     275        $objDBConn = new SC_DbConn;     // DB操作オブジェクト 
     276        $sql = "";                      // データ取得SQL生成用 
     277        $arrRet = array();              // データ取得用 
    283278 
    284279        // SQL生成(url と update_date 以外は不要?) 
    285280        $sql .= " SELECT"; 
    286         $sql .= " page_id";             // ページID 
    287         $sql .= " ,page_name";          // 名称 
    288         $sql .= " ,url";                // URL 
    289         $sql .= " ,php_dir";            // php保存先ディレクトリ 
    290         $sql .= " ,tpl_dir";            // tpl保存先ディdレクトリ 
    291         $sql .= " ,filename";           // ファイル名称 
    292         $sql .= " ,header_chk ";        // ヘッダー使用FLG 
    293         $sql .= " ,footer_chk ";        // フッター使用FLG 
    294         $sql .= " ,author";             // authorタグ 
    295         $sql .= " ,description";        // descriptionタグ 
    296         $sql .= " ,keyword";            // keywordタグ 
    297         $sql .= " ,update_url";         // 更新URL 
    298         $sql .= " ,create_date";        // データ作成日 
    299         $sql .= " ,update_date";        // データ更新日 
     281        $sql .= " page_id";             // ページID 
     282        $sql .= " ,page_name";          // 名称 
     283        $sql .= " ,url";                // URL 
     284        $sql .= " ,php_dir";            // php保存先ディレクトリ 
     285        $sql .= " ,tpl_dir";            // tpl保存先ディdレクトリ 
     286        $sql .= " ,filename";           // ファイル名称 
     287        $sql .= " ,header_chk ";        // ヘッダー使用FLG 
     288        $sql .= " ,footer_chk ";        // フッター使用FLG 
     289        $sql .= " ,author";             // authorタグ 
     290        $sql .= " ,description";        // descriptionタグ 
     291        $sql .= " ,keyword";            // keywordタグ 
     292        $sql .= " ,update_url";         // 更新URL 
     293        $sql .= " ,create_date";        // データ作成日 
     294        $sql .= " ,update_date";        // データ更新日 
    300295        $sql .= " FROM "; 
    301296        $sql .= "     dtb_pagelayout"; 
     
    306301        } 
    307302 
    308         $sql .= " ORDER BY  page_id"; 
    309  
    310         return $objDBConn->getAll($sql, $arrVal); 
     303        $sql .= " ORDER BY page_id"; 
     304 
     305        $pageData = $objDBConn->getAll($sql, $arrVal); 
     306         
     307        // URL にプロトコルの記載が無い場合、SITE_URL を前置する。 
     308        foreach (array_keys($pageData) as $key) { 
     309            $page =& $pageData[$key]; 
     310            if (!preg_match('|^https?://|i', $page['url'])) { 
     311                $page['url'] = SITE_URL . $page['url']; 
     312            } 
     313            $page['url'] = preg_replace('|/' . preg_quote(DIR_INDEX_FILE) . '$|', '/' . DIR_INDEX_URL, $page['url']); 
     314        } 
     315        unset($page); 
     316         
     317        return $pageData; 
    311318    } 
    312319 
Note: See TracChangeset for help on using the changeset viewer.