質問 > フロント機能 > 商品一覧→在庫0を後ろへ |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yn2978 |
投稿日時: 2016/1/22 18:53
対応状況: −−−
|
新米 登録日: 2016/1/22 居住地: 投稿: 9 |
商品一覧→在庫0を後ろへ 現在、商品一覧ページのデフォルトを更新順かつ在庫0を後ろへという表示にしようと思っています。
更新順にという部分に関しては、
を追加することでできたのですが、 常に在庫0を後ろに回す方法がさっぱりです。在庫順ソートで後ろに回すことはできるのですが、そうではなく在庫0のみをどのソート状態でも一番後ろにしたいのです。 LC_Page_Products_List.phpの現在の中身は以下の通りです。 public function lfGetProductsList($searchCondition, $disp_number, $startno, &$objProduct) { $arrOrderVal = array(); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 表示順序 switch ($this->orderby) { // 販売価格が安い順 case 'price': $objProduct->setProductsOrder('price02', 'dtb_products_class', 'ASC'); break; // 新着順 case 'date': $objProduct->setProductsOrder('create_date', 'dtb_products', 'DESC'); break; default: $objProduct->setProductsOrder('update_date', 'dtb_products', 'DESC'); break; if (strlen($searchCondition['where_category']) >= 1) { $dtb_product_categories = '(SELECT * FROM dtb_product_categories WHERE '.$searchCondition['where_category'].')'; $arrOrderVal = $searchCondition['arrvalCategory']; } else { $dtb_product_categories = 'dtb_product_categories'; } $order = <<< __EOS__ ( SELECT T3.rank * 2147483648 + T2.rank FROM $dtb_product_categories T2 JOIN dtb_category T3 ON T2.category_id = T3.category_id WHERE T2.product_id = alldtl.product_id ORDER BY T3.rank DESC, T2.rank DESC LIMIT 1 ) DESC ,product_id DESC __EOS__; $objQuery->setOrder($order); break; } // 取得範囲の指定(開始行番号、行数のセット) $objQuery->setLimitOffset($disp_number, $startno); $objQuery->setWhere($searchCondition['where']); // 表示すべきIDとそのIDの並び順を一気に取得 $arrProductId = $objProduct->findProductIdsOrder($objQuery, array_merge($searchCondition['arrval'], $arrOrderVal)); $objQuery =& SC_Query_Ex::getSingletonInstance(); $arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId); // 規格を設定 $objProduct->setProductsClassByProductIds($arrProductId); $arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId); return $arrProducts; } どうか、よろしくお願い致します。 |
tsuji |
投稿日時: 2016/1/22 19:06
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品一覧→在庫0を後ろへ yn2978 様
これは、アイディアですが、データの取得を2回に分けて、 最初に在庫有りを取得し、あとで在庫なしを取得し、 在庫有りのデータのあとに在庫なしを追加したらできると思います
|
yn2978 |
投稿日時: 2016/1/22 19:30
対応状況: −−−
|
新米 登録日: 2016/1/22 居住地: 投稿: 9 |
Re: 商品一覧→在庫0を後ろへ さっそくのレス大変感謝します。
たしかに仰る通りで、そうしたいと思いました。 ですが、私はECCUBEはこのたび初めて触りまして、DB関連の記述も初めてなのです・・。 読むことはできるのですが、DB関連の記述を複製&調整というところまではまだ出来ません。 今回だけ、どうか教えて頂けないでしょうかm(_ _)m |
tsuji |
投稿日時: 2016/1/25 13:21
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 商品一覧→在庫0を後ろへ yn2978 様
> 今回だけ、どうか教えて頂けないでしょうかm(_ _)m もし、コピペでカスタマイズされるということになりますと 今後、不具合が起きたときに対処ができなくなりますので、 アイディアだけにとどめさせていただけたらと思います。
|
yn2978 |
投稿日時: 2016/1/25 17:42
対応状況: −−−
|
新米 登録日: 2016/1/22 居住地: 投稿: 9 |
Re: 商品一覧→在庫0を後ろへ ありがとうございましたm(_ _)m
諦めてJQueryでページ毎に後ろに飛ばすようにしました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |