Changeset 21374


Ignore:
Timestamp:
2011/12/24 17:14:56 (10 years ago)
Author:
Seasoft
Message:

#797 (新着情報のURLが同一ホスト時にモバイルサイトのセッションが切れる)

Location:
branches/version-2_11-dev/data/class
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_News.php

    r21126 r21374  
    9595            default: 
    9696                $this->newsCount = $this->lfGetNewsCount(); 
    97                 $this->arrNews = $this->lfGetNews(); 
     97                $this->arrNews = $this->lfGetNews(SC_Query_Ex::getSingletonInstance()); 
    9898                break; 
    9999        } 
     
    126126     * @return array $arrNewsList 新着情報の配列を返す 
    127127     */ 
    128     function lfGetNews(){ 
    129         $objQuery = SC_Query_Ex::getSingletonInstance(); 
    130         $sql = ''; 
    131         $sql .= " SELECT "; 
    132         $sql .= "   *, "; 
    133         $sql .= "   cast(news_date as date) as news_date_disp "; 
    134         $sql .= " FROM "; 
    135         $sql .= "   dtb_news "; 
    136         $sql .= " WHERE "; 
    137         $sql .= "   del_flg = '0' "; 
    138         $sql .= " ORDER BY "; 
    139         $sql .= "   rank DESC "; 
    140  
    141         $arrNewsList = $objQuery->getAll($sql); 
     128    function lfGetNews(&$objQuery) { 
     129        $objQuery->setOrder("rank DESC "); 
     130        $arrNewsList = $objQuery->select('* , cast(news_date as date) as news_date_disp', 'dtb_news' ,'del_flg = 0'); 
     131 
     132        // モバイルサイトのセッション保持 (#797) 
     133        if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE) { 
     134            foreach (array_keys($arrNewsList) as $key) { 
     135                $arrRow =& $arrNewsList[$key]; 
     136                if (SC_Utils_Ex::isAppInnerUrl($arrRow['news_url'])) { 
     137                    $netUrl = new Net_URL($arrRow['news_url']); 
     138                    $netUrl->addQueryString(session_name(), session_id()); 
     139                    $arrRow['news_url'] = $netUrl->getURL(); 
     140                } 
     141            } 
     142        } 
     143 
    142144        return $arrNewsList; 
    143145    } 
     
    152154    function lfGetNewsForJson(&$objFormParam){ 
    153155 
    154         $objQuery = SC_Query_Ex::getSingletonInstance(); 
     156        $objQuery =& SC_Query_Ex::getSingletonInstance(); 
    155157        $arrData = $objFormParam->getHashArray(); 
    156          
     158 
    157159        $dispNumber = $arrData['disp_number']; 
    158160        $pageNo = $arrData['pageno']; 
     
    161163        } 
    162164 
    163         $objQuery->setOrder("rank DESC "); 
    164         $arrNewsList = $objQuery->select(" * , cast(news_date as date) as news_date_disp "," dtb_news "," del_flg = '0' "); 
     165        $arrNewsList = $this->lfGetNews($objQuery); 
    165166 
    166167        //新着情報の最大ページ数をセット 
  • branches/version-2_11-dev/data/class/util/SC_Utils.php

    r21242 r21374  
    21632163        return is_dir($pathname) || @mkdir($pathname, $mode); 
    21642164    } 
     2165 
     2166    function isAppInnerUrl($url) { 
     2167        $pattern = '/^(' . preg_quote(HTTP_URL, '/') . '|' . preg_quote(HTTPS_URL, '/') . ')/'; 
     2168        return preg_match($pattern, $url) >= 1; 
     2169    } 
    21652170} 
    21662171?> 
Note: See TracChangeset for help on using the changeset viewer.