Ignore:
Timestamp:
2011/11/10 23:40:41 (12 years ago)
Author:
Seasoft
Message:

#1528 (SC_Product#getListByProductIds 第2引数の順に並び替えてから返す)

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

Legend:

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

    r21321 r21325  
    180180     * @param SC_Query $objQuery SC_Query インスタンス 
    181181     * @param array|int $arrProductId 商品ID 
    182      * @return array 商品一覧の配列 
     182     * @return array 商品一覧の配列 (キー: 商品ID) 
    183183     */ 
    184184    function getListByProductIds(&$objQuery, $arrProductId = array()) { 
     
    191191 
    192192        $objQuery->setWhere($where, $arrProductId); 
    193         $arrRet = $this->lists($objQuery); 
    194         return $arrRet; 
     193        $arrProducts = $this->lists($objQuery); 
     194 
     195        // 配列のキーを商品IDに 
     196        $arrTmp = array(); 
     197        foreach($arrProducts as $arrProduct) { 
     198            $arrTmp[$arrProduct['product_id']] = $arrProduct; 
     199        } 
     200        $arrProducts =& $arrTmp; 
     201        unset($arrTmp); 
     202 
     203        // SC_Query::setOrder() の指定がない場合、$arrProductId で指定された商品IDの順に配列要素を並び替え 
     204        if (strlen($objQuery->order) === 0) { 
     205            $arrTmp = array(); 
     206            foreach($arrProductId as $product_id) { 
     207                $arrTmp[$product_id] = $arrProducts[$product_id]; 
     208            } 
     209            $arrProducts =& $arrTmp; 
     210            unset($arrTmp); 
     211        } 
     212 
     213        return $arrProducts; 
    195214    } 
    196215 
  • branches/version-2_11-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Recommend.php

    r21256 r21325  
    107107            } 
    108108            // 取得 
    109             $arrTmp = $objProduct->getListByProductIds($objQuery, $arrProductId); 
    110             foreach ($arrTmp as $key => $arrRow) { 
    111                 $arrProductList[$arrRow['product_id']] = $arrRow; 
    112             } 
     109            $arrProductList = $objProduct->getListByProductIds($objQuery, $arrProductId); 
    113110            // おすすめ商品情報にマージ 
    114111            foreach (array_keys($arrBestProducts) as $key) { 
  • branches/version-2_11-dev/data/class/pages/products/LC_Page_Products_Detail.php

    r21322 r21325  
    458458        $arrProducts = $objProduct->getListByProductIds($objQuery, $arrRecommendProductId); 
    459459 
    460         //取得している並び順で並び替え 
    461         // FIXME SC_Productあたりにソート処理はもってくべき 
    462         $arrProducts2 = array(); 
    463         foreach($arrProducts as $item) { 
    464             $arrProducts2[ $item['product_id'] ] = $item; 
    465         } 
    466  
    467460        $arrRecommend = array(); 
    468461        foreach ($arrRecommendData as $key => $arrRow) { 
    469             $arrRecommendData[$key] = array_merge($arrRow, $arrProducts2[$arrRow['recommend_product_id']]); 
     462            $arrRecommendData[$key] = array_merge($arrRow, $arrProducts[$arrRow['recommend_product_id']]); 
    470463        } 
    471464 
  • branches/version-2_11-dev/data/class/pages/products/LC_Page_Products_List.php

    r21319 r21325  
    311311        $arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId); 
    312312 
    313         //取得している並び順で並び替え 
    314         $arrProducts2 = array(); 
    315         foreach($arrProducts as $item) { 
    316             $arrProducts2[ $item['product_id'] ] = $item; 
    317         } 
    318         $arrProducts = array(); 
    319         foreach($arrProductId as $product_id) { 
    320             $arrProducts[] = $arrProducts2[$product_id]; 
    321         } 
    322  
    323313        // 規格を設定 
    324314        $objProduct->setProductsClassByProductIds($arrProductId); 
Note: See TracChangeset for help on using the changeset viewer.