質問 > フロント機能 > 商品一覧ページにレビュー数を表示とリンク |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
metan |
投稿日時: 2014/5/12 15:47
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク ご返信頂きまして誠にありがとうございます。
これ以上先は、私の知識不足の為出来なさそうです。 ご親切にお付き合い頂きまして、誠にありがとうございました。 失礼いたします。 |
tommy0714 |
投稿日時: 2014/5/10 23:31
対応状況: −−−
|
半人前 登録日: 2014/5/1 居住地: 投稿: 30 |
Re: 商品一覧ページにレビュー数を表示とリンク metan様
ここまで来ると、DBからデータが取得できていないような気がしますね。 一度、$arrProductsをvar_dumpしてみてはいかがでしょうか。 もし、DBからデータが正しく取れてるなら、少なくとも変数に0が入っているはずですので、空になるということはないと思います。
|
metan |
投稿日時: 2014/5/10 9:11
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク tommy0714様
テンプレート側の記述位置をいろいろと試してみたのですが、やはりレビュー数の表示は出来ませんでした。 |
metan |
投稿日時: 2014/5/9 18:01
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク お手数おかけしております。
プログラムの記述位置に問題ないとのことで安心致しました。 テンプレート側ですが。確認致しましたところ、 <!--{assign var=id value=$arrProduct.product_id}--> 以降に追加しておりました。 もう少し試してみます。 |
tommy0714 |
投稿日時: 2014/5/9 17:30
対応状況: −−−
|
半人前 登録日: 2014/5/1 居住地: 投稿: 30 |
Re: 商品一覧ページにレビュー数を表示とリンク プログラムは問題ないと思います。
テンプレート側の追加位置に問題があるのでは。 コード例では、$idという値を使っていましたが、 これは、
以降に追加した場合のみ有効です。
|
metan |
投稿日時: 2014/5/9 16:58
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク tommy0714様
ご返信ありがとうございます。 下記の箇所に追加し、data/Smarty/templates/XXX/products/list.tpl にも該当のコードを追加したのですが 件のレビュー としか表示されませんでした。 追加する場所が間違っておりますでしょうか? /* 商品一覧の表示 */ function lfGetProductsList($searchCondition, $disp_number, $startno, $linemax, &$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: 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); foreach($arrProductId as $product_id) { $arrProducts['productReviewCnt'][$product_id] = $objQuery->count("dtb_review", "del_flg = 0 AND status = 1 AND product_id = ?", array($product_id)); } return $arrProducts; } |
tommy0714 |
投稿日時: 2014/5/9 13:33
対応状況: −−−
|
半人前 登録日: 2014/5/1 居住地: 投稿: 30 |
Re: 商品一覧ページにレビュー数を表示とリンク どこに追加してシステムエラーが起こったのか分かりませんが、
ひとまず、lfGetProductsList関数のreturn直前に追加してみてください。
|
metan |
投稿日時: 2014/5/9 12:38
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク ご返信ありがとうございます。
先ほど、下記の場所にコードを追加致しましてシステムエラーは出なかったのですが、 // 商品一覧データの取得 $arrSearchCondition = $this->lfGetSearchCondition($this->arrSearchData); $this->tpl_linemax = $this->lfGetProductAllNum($arrSearchCondition); $urlParam = "category_id={$this->arrSearchData['category_id']}&pageno=#page#"; // モバイルの場合に検索条件をURLの引数に追加 if (SC_Display_Ex::detectDevice() === DEVICE_TYPE_MOBILE) { $searchNameUrl = urlencode(mb_convert_encoding($this->arrSearchData['name'], 'SJIS-win', 'UTF-8')); $urlParam .= "&mode={$this->mode}&name={$searchNameUrl}&orderby={$this->orderby}"; } $this->objNavi = new SC_PageNavi_Ex($this->tpl_pageno, $this->tpl_linemax, $this->disp_number, 'fnNaviPage', NAVI_PMAX, $urlParam, SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE); $this->arrProducts = $this->lfGetProductsList($arrSearchCondition, $this->disp_number, $this->objNavi->start_row, $this->tpl_linemax, $objProduct); foreach($arrProductId as $product_id) { $arrProducts['productReviewCnt'][$product_id] = $objQuery->count("dtb_review", "del_flg = 0 AND status = 1 AND product_id = ?", array($product_id)); } ←ここに追加 そして、 data/Smarty/templates/XXX/products/list.tpl に <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><!--{$arrProducts.productReviewCnt[$id]}-->件のレビュー</a> を追加し致したところ 一覧ページには 件のレビュー のみ表示されている状態です。 追加する場所が間違っているのでしょうか? |
tommy0714 |
投稿日時: 2014/5/9 12:28
対応状況: −−−
|
半人前 登録日: 2014/5/1 居住地: 投稿: 30 |
Re: 商品一覧ページにレビュー数を表示とリンク システムエラーはどのような内容でしょうか?
提示したコードはアイデアベースですので、 お手持ちの環境に適合するかどうかは内容次第となります。
|
metan |
投稿日時: 2014/5/9 12:01
対応状況: −−−
|
一人前 登録日: 2013/3/4 居住地: 投稿: 112 |
Re: 商品一覧ページにレビュー数を表示とリンク tommy0714様
ご返信頂きまして誠にありがとうございます。 先ほどご教授頂きましたコードで試してみたのですが、システムエラーになってしいます。 foreach($arrProductId as $product_id) { $arrProducts['productReviewCnt'][$product_id] = $objQuery->count("dtb_review", "del_flg = 0 AND status = 1 AND product_id = ?", array($product_id)); } 上記コードですが、 /* 商品一覧の表示 */ function lfGetProductsList の末尾付近に追加という事でよろしいのでしょうか? 御手数お掛けします。よろしくお願いいたします。 |
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |