Changeset 20939


Ignore:
Timestamp:
2011/05/18 13:10:30 (10 years ago)
Author:
Seasoft
Message:

#1302 (商品一覧からカートインで「現在のカゴの中」画面のカテゴリブロックが一部選択色)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/version-2_11-dev/data/class/SC_Response.php

    r20938 r20939  
    8686     * アプリケーション内でリダイレクトする 
    8787     * 
     88     * 内部で生成する URL の searchpart は、下記の順で上書きしていく。(後勝ち) 
     89     * 1. 引数 $inheritQueryString が true の場合、$_SERVER['QUERY_STRING'] 
     90     * 2. $location に含まれる searchpart 
     91     * 3. 引数 $arrQueryString 
    8892     * @param string $location 「url-path」「現在のURLからのパス」「URL」のいずれか。「../」の解釈は行なわない。 
     93     * @param array $arrQueryString URL に付加する searchpart 
     94     * @param bool $inheritQueryString 現在のリクエストの searchpart を継承するか 
     95     * @param bool|null $useSsl true:HTTPSを強制, false:HTTPを強制, null:継承 
    8996     * @return void 
    9097     * @static 
     
    94101        // url-path → URL 変換 
    95102        if ($location[0] === '/') { 
    96             $netUrl = new Net_URL(); 
    97             $netUrl->path = $location; 
     103            $netUrl = new Net_URL($location); 
    98104            $location = $netUrl->getUrl(); 
    99105        } 
     
    133139 
    134140        $netUrl = new Net_URL($url); 
    135         $arrQueryString = array_merge($netUrl->querystring, $arrQueryString); 
    136         $netUrl->querystring = array(); 
    137  
    138         if ($inheritQueryString) { 
    139             if (!empty($_SERVER['QUERY_STRING'])) { 
    140                 $netUrl->addRawQueryString($_SERVER['QUERY_STRING']); 
    141             } 
    142         } 
    143  
    144         foreach ($arrQueryString as $key => $val) { 
    145             $netUrl->addQueryString($key, $val); 
    146         } 
    147  
    148         $url = $netUrl->getURL(); 
     141 
     142        if ($inheritQueryString && !empty($_SERVER['QUERY_STRING'])) { 
     143            $arrQueryStringBackup = $netUrl->querystring; 
     144            // XXX メソッド名は add で始まるが、実際には置換を行う 
     145            $netUrl->addRawQueryString($_SERVER['QUERY_STRING']); 
     146            $netUrl->querystring = array_merge($netUrl->querystring, $arrQueryStringBackup); 
     147        } 
     148 
     149        $netUrl->querystring = array_merge($netUrl->querystring, $arrQueryString); 
    149150 
    150151        $session = SC_SessionFactory::getInstance(); 
Note: See TracChangeset for help on using the changeset viewer.