Ignore:
Timestamp:
2011/02/04 22:10:47 (15 years ago)
Author:
yomoro
Message:

#977 リファクタリング分

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_5-dev/data/class/pages/LC_Page_Sitemap.php

    r20057 r20098  
    9292        $this->arrPageList = $this->getPageData(); 
    9393 
    94         $objQuery = new SC_Query(); 
     94        $objQuery = SC_Query::getSingletonInstance(); 
    9595 
    9696        //キャッシュしない(念のため) 
     
    108108 
    109109        // 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']), 
    113113                             'daily', 1.0); 
    114114 
     
    119119 
    120120        // 編集可能ページを処理 
    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'])); 
    125125        } 
    126126 
    127127        // 商品一覧ページを処理 
    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'); 
    131131        } 
    132132 
    133133        // 商品詳細ページを処理 
    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'])); 
    138138        } 
    139139 
     
    180180     * TOPページの情報を取得する. 
    181181     * 
    182      * @param array $pageData すべてのページ情報の配列 
     182     * @param array $arrPageList すべてのページ情報の配列 
    183183     * @return array TOPページの情報 
    184184     */ 
    185     function getTopPage($pageData) { 
     185    function getTopPage($arrPageList) { 
    186186        $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; 
    190190                return $arrRet; 
    191191            } 
     
    196196     * すべての編集可能ページの情報を取得する. 
    197197     * 
    198      * @param array $pageData すべてのページ情報の配列 
     198     * @param array $arrPageList すべてのページ情報の配列 
    199199     * @return array 編集可能ページ 
    200200     */ 
    201     function getEditablePage($pageData) { 
     201    function getEditablePage($arrPageList) { 
    202202        $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; 
    206206            } 
    207207        } 
     
    217217         
    218218        // XXX: 商品登録の無いカテゴリーは除外する方が良い気もする 
    219         $objQuery = new SC_Query(); 
     219        $objQuery = SC_Query::getSingletonInstance(); 
    220220        $sql = "SELECT category_id FROM dtb_category WHERE del_flg = 0"; 
    221221        $result = $objQuery->getAll($sql); 
     
    225225            // :TODO: カテゴリの最終更新日を取得できるようにする 
    226226             
    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; 
    229229             
    230230            // モバイルサイト 
    231231            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; 
    234234            } 
    235235        } 
     
    243243     */ 
    244244    function getAllDetail() { 
    245         $objQuery = new SC_Query(); 
     245        $objQuery = SC_Query::getSingletonInstance(); 
    246246        $sql = "SELECT product_id, update_date FROM dtb_products WHERE del_flg = 0 AND status = 1"; 
    247247        $result = $objQuery->getAll($sql); 
     
    250250        foreach ($result as $row) { 
    251251             
    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; 
    256256             
    257257            // モバイルサイト 
    258258            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; 
    261261            } 
    262262        } 
     
    270270     * @param string $where WHERE句 
    271271     * @param array  $arrVal WHERE句の値を格納した配列 
    272      * @return ブロック情報 
     272     * @return array $arrPageList ブロック情報 
    273273     */ 
    274274    function getPageData($where = '', $arrVal = ''){ 
    275         $objQuery = new SC_Query();     // DB操作オブジェクト 
     275        $objQuery = SC_Query::getSingletonInstance();     // DB操作オブジェクト 
    276276        $sql = "";                      // データ取得SQL生成用 
    277277        $arrRet = array();              // データ取得用 
     
    301301        $sql .= " ORDER BY page_id"; 
    302302 
    303         $pageData = $objQuery->getAll($sql, $arrVal); 
     303        $arrPageList = $objQuery->getAll($sql, $arrVal); 
    304304         
    305305        // 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; 
    316316    } 
    317317 
     
    325325        $arr = array(); 
    326326        // 正規表現で文字列を抽出 
    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})/", 
    328328             $date, $arr); 
    329329        // :TODO: time zone も取得するべき... 
Note: See TracChangeset for help on using the changeset viewer.