原因が解らずに困っております。
価格が高い順/価格が安い順/新着順ともに機能しておりません。
/products/list.phpとLC_Page_Products_List.phpをいじりました。
わかる方どうかご教授お願いいたします。
data/class/pages/products/LC_Page_Products_List.php
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
function lfGetProductsList($searchCondition, $disp_number, $startno, $linemax, &$objProduct) {
$arrval_order = array();
$objQuery =& SC_Query_Ex::getSingletonInstance();
// 表示順序
switch ($this->orderby) {
// 販売価格が安い順
case 'price':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC');
break;
case 'price2':
$objProduct->setProductsOrder('price02', 'dtb_products_class', 'DESC');
break;
// 新着順
case 'date':
$objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC');
break;
default:
if (strlen($searchCondition["where_category"]) >= 1) {
$dtb_product_categories = "(SELECT * FROM dtb_product_categories WHERE ".$searchCondition["where_category"].")";
$arrval_order = array_merge($searchCondition['arrvalCategory'], $searchCondition['arrvalCategory']);
} else {
$dtb_product_categories = 'dtb_product_categories';
}
$order = <<< __EOS__
(
SELECT
T3.rank
FROM
$dtb_product_categories T2
JOIN dtb_category T3
USING (category_id)
WHERE T2.product_id = alldtl.product_id
ORDER BY T3.rank DESC, T2.rank DESC
LIMIT 1
) DESC
,(
SELECT
T2.rank
FROM
$dtb_product_categories T2
JOIN dtb_category T3
USING (category_id)
WHERE T2.product_id = alldtl.product_id
ORDER BY T3.rank DESC, T2.rank DESC
LIMIT 1
) DESC
,product_id
__EOS__;
$objQuery->setOrder($order);
break;
}
/products/list.tpl↓↓
<!--{if $orderby != 'price'}-->
<a href="java script:fnChangeOrderby('price');">価格が安い順</a>
<!--{else}-->
<strong>価格が安い順</strong>
<!--{/if}-->
<!--{if $orderby != "price2"}-->
<a href="java script:fnChangeOrderby('price2');">価格が高い順</a>
<!--{else}-->
<strong>価格が高い順</strong>
<!--{/if}-->
<!--{if $orderby != "date"}-->
<a href="java script:fnChangeOrderby('date');">新着順</a>
<!--{else}-->
<strong>新着順</strong>
<!--{/if}-->