質問 > フロント機能 > トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
moment |
投稿日時: 2014/7/4 23:57
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 お世話になります。どうか教えてください。
トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させたいです。そのため、detail.tplとLC_Page_Products_Detail.phpを参考にトップページのおすすめ商品ブロックに下記の設定を施しました。 ページ更新をしてもLogにはエラーは記載されませんが、商品ステータスアイコンをトップページブロックで表示させることがどうしてもできません。なぜ表示できないか、問題はどこか、どなたか教えてくださいませんでしょうか。 ● recommend.tpl(おすすめ商品ブロック) (detail.tplの商品ステータスの相当箇所をそのまま貼り付け) <!--{foreach from=$arrProducts item=arrProduct}--> <!--▼商品ステータス--> <!--{assign var=ps value=$productStatus[$tpl_product_id]}--> <!--{if count($ps) > 0}--> <ul class="status_icon clearfix"> <!--{foreach from=$ps item=status}--> <li> <img src="<!--{$TPL_URLPATH}--><!--{$arrSTATUS_IMAGE[$status]}-->" width="60" height="17" alt="<!--{$arrSTATUS[$status]}-->" id="icon<!--{$status}-->" /> </li> <!--{/foreach}--> </ul> <!--{/if}--> <!--▲商品ステータス--> ・・・・・ ● LC_Page_FrontParts_Bloc_Recommend.php (LC_Page_Products_Detail.phpから商品ステータス関連の記述を引用) function action() { // 商品ステータスを取得 $objProduct = new SC_Product_Ex(); $this->productStatus = $objProduct->getProductStatus($product_id); $masterData = new SC_DB_MasterData_Ex(); $this->arrSTATUS = $masterData->getMasterData('mtb_status'); $this->arrSTATUS_IMAGE = $masterData->getMasterData('mtb_status_image'); // 商品IDをFORM内に保持する $this->tpl_product_id = $product_id; ・・・・・ EC-CUBE: 2.12.5 データベース: MySQL 5.0.6 WEBサーバ:apache2.2 OS:Linux PHP: PHP 5.2.1 |
yuh |
投稿日時: 2014/7/7 2:19
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 まず、
この部分で$product_idにはなにも値が入っておらず、$this->productStatusには空か空の配列が入るはずです。
この部分は問題ないです。
この部分も$product_idが空なので意味ありません。 商品詳細ページは商品IDが固定ですが、おすすめ商品ブロックに関してはおすすめ商品で表示する分だけ商品IDがあります。 そこらへんでループの中で値を取得して、取得した値を元に表示させるようにすれば実装できます。 |
moment |
投稿日時: 2014/7/7 22:07
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 Yuh様
返信いただきましてありがとうございます。 商品ステータスアイコンを表示しない原因が大変よく分かりました。 そこで、教えて頂きました様に私なりに変更を加えました。 まず、商品ステータスアイコン表示の記述がおすすめ商品用のループの中で値を取得できるように下記のようにdtb_product_statusのproduct_status_idを利用しました。 これだけだとおすすめブロックに商品ステータスアイコンをひとつだけ表示しますが、商品ステータスが複数存在する場合に対応できません。 ● recommend.tpl(おすすめ商品ブロック) <!--{foreach from=$arrProducts item=arrProduct}--> <!--{assign var=ps value=$arrProduct.product_status_id|u}--> ・・・・ そこで商品ステータスが複数存在する場合に対応すべくsc_product.phpのgetProductStatusをどうやってLC_Page_FrontParts_Bloc_Recommend.php 内で利用したらよいかと考え、以下の様に試しておりましたが、おすすめ商品ブロック全体を非表示にしてしまいます。 ● LC_Page_FrontParts_Bloc_Recommend.php $arrProducts = $objQuery->select($col, $from, $where, $arrval); < getProductStatus の以下の箇所を追加> $results = array(); foreach ($productStatus as $status) { $results[$status['product_id']][] = $status['product_status_id']; } return $results; ここからどうしたらよいかお教え願いませんでしょうか。 |
red |
投稿日時: 2014/7/7 23:17
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 商品一覧を真似るのが一番早いかと思いますが
これだけでいい気がします
|
moment |
投稿日時: 2014/7/8 4:30
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 Red様
ご教授頂きましてありがとうございます。 そうですね、商品一覧では複数の商品ステータスアイコンが各商品で表示されております。 頂きました内容は下記の設定ということですよね。しかしながら、おすすめ商品ブロックで商品ステータスアイコンを(一つも)表示できないでおります。 何かが不足していますでしょうか。 ● recommend.tpl (list.tplの商品ステータスの相当箇所をそのまま貼り付け) <!--{foreach from=$arrProducts item=arrProduct}--> ・・・・・ <!--{if count($productStatus[$id]) > 0}--> <ul class="status_icon clearfix"> <!--{foreach from=$productStatus[$id] item=status}--> <li> <img src="<!--{$TPL_URLPATH}--><!--{$arrSTATUS_IMAGE[$status]}-->" width="60" height="17" alt="<!--{$arrSTATUS[$status]}-->"/> </li> <!--{/foreach}--> </ul> <!--{/if}--> ・・・・・ <!--{/foreach}--> ●LC_Page_FrontParts_Bloc_Recommend.php(頂いた内容を下記に貼り付け) function process() { ・・・・・ $arrProducts = $objProduct->getListByProductIds($objQuery, $arrProductId); $arrProducts['productStatus'] = $objProduct->getProductStatus($arrProductId); //追加 ・・・・・ } |
sumida |
投稿日時: 2014/7/8 7:58
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 横から失礼します。
LC_Page_FrontParts_Bloc_Recommend.php
recommend.tpl
こういうことですか?(v2.13.2ですが) |
moment |
投稿日時: 2014/7/8 9:55
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 Sumida様
ご教授いただきまして感謝いたします。 私のeccubeのバージョンは2.12.5なのですが、頂きました記述を試しましたところ、 Mtb_statusの最上段のデータだけを表示して、各商品ごとに商品登録時に選んだそれぞれの商品ステータスを表示しない様です。 どこか違うのでしょうか。 何とか表示させたいのですが、何か分かりませんでしょうか。 |
sumida |
投稿日時: 2014/7/8 11:27
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 もしかして、
NEWの商品しか表示できないということでしょうか? そうであれば、なぜなのかわかりませんが、 (v2.13では、DBへのアクセス周りが変更されているので発生しません。) LC_Page_FrontParts_Bloc_Recommend.php
このコードで、「T2.status = 1」とあるので、「NEW」の商品だけとなっています。なので、
とすれば、良いと思います。 そうなれば、T2が不要になるので
にしても良いと思います。 |
moment |
投稿日時: 2014/7/8 14:57
対応状況: −−−
|
常連 登録日: 2014/6/30 居住地: 投稿: 45 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 Sumida様
長くなって大変申し訳ございませんが、ご教授いただきまして大変感謝致します。 商品は全て表示され、その商品の商品ステータスでmtb_statusの最上段のものだけが表示されるという意味です。 アドバイス通り、テーブルの連結の問題も考え(実際6テーブル連結)、いろいろと試しているのですが、やはりmtb_statusの最上段のデータだけを表示いたします。 商品一覧で表示しているようにトップページブロック(新着、おすすめ等)で各商品のそれぞれ異なる複数の商品ステータスアイコンを表示させるには、 Dtb_product_statusのproduct_status_idを抽出しなければならないのではと考えているのですが、どう思われますか。 |
sumida |
投稿日時: 2014/7/8 17:43
対応状況: −−−
|
仙人 登録日: 2013/2/10 居住地: 広島県呉市ときどき瀬戸内海 投稿: 641 |
Re: トップページのブロックに商品詳細ページで表示される商品ステータスアイコンを表示させるにはどうしたらよろしいですか。 失礼しました。
まったくの勘違いをしておりました。 とりあえず、私の提案は、一旦取り消してください。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |