質問 > フロント機能 > 在庫のない商品を非表示にするパラメータをURLに付け加えたい。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
Aichi |
投稿日時: 2015/11/29 16:08
対応状況: −−−
|
半人前 登録日: 2012/6/19 居住地: 投稿: 27 |
在庫のない商品を非表示にするパラメータをURLに付け加えたい。 通常、商品一覧ページを表示させた場合、在庫のない商品も表示されるので、これを在庫のない商品は非表示にさせる方法を実行しました。
検索ヒット数を上げるために管理画面のシステム設定のパラメータ「NOSTOCK_HIDDEN」は「false」にしています。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=11958&forum=10&post_id=55031#forumpost55031 こちらのスレッドを参考にしました。 その結果、 http://ec-cube.com/products/list.php? のURLに http://ec-cube.com/products/list.php?nostock_hidden=1 http://ec-cube.com/products/list.php?category_id=61&nostock_hidden=1 といったようなパラメータを付ける事で在庫のない商品を非表示にすることが出来ました。 教えていただきたいことは、ここからで。 商品一覧ページのフロント部分、「価格順・新着順」の左側に 「在庫無しを非表示」といったチェック、もしくはリンクを作成して、 それをチェック・クリックすることによって、URLにnostock_hidden=1もしくは&nostock_hidden=1を付け加えたいのですが、具体的な方法が分かりません。 data|Smarty|templates|default|products|list.tpl のみに何らかの修正・追加だけで可能なのか? data|class|pages|products|LC_Page_Products_List.php にも修正を行う必要があるのか。 なにとぞご教授いただきますよう、宜しくお願い致します。 EC-CUBEバージョン 2.12.2 PHPバージョン PHP 5.3.3 DBバージョン MySQL 5.0.95 |
tsuji |
投稿日時: 2015/11/30 10:08
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。 Aichi 様
方法はいくつかあるかと思いますが、 list.tplにあるfnChangeOrderbyが参考になると思います。 リンクをクリックしたらnostock_hiddenをgetで渡してリロードする形でしょうか。 そして各商品のURLにgetで取得したnostock_hiddenをそのままつけたらよいと思います。
|
Aichi |
投稿日時: 2015/11/30 15:35
対応状況: 解決済
|
半人前 登録日: 2012/6/19 居住地: 投稿: 27 |
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。 tsuji 様
アドバイスいただき誠に有難うございます。 早速、試させていただきました。 そして、なんとかうまくいったようです。 list.tplにあるfnChangeOrderbyを参考に list.tplファイルに以下のように追加してみました。 <!--▼ページナビ(本文)--> <!--{capture name=page_navi_body}--> <div class="pagenumber_area clearfix"> <div class="change"> ↓↓追加↓↓ <!--{if $nostock_hidden != 'nostock_hidden'}--> <a href="java script:fnChangeNostock_hidden('nostock_hidden');">在庫切れ非表示</a> <!--{else}--> <strong>在庫切れ非表示</strong> <!--{/if}--> ↑↑追加↑↑ <!--{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}--> 表示件数 上記のように追加してみたら、思い通りに動いてくれました。 すばやく対応する事ができて大変感謝しております。 本当に有難うございました。 |
Aichi |
投稿日時: 2015/12/1 1:16
対応状況: −−−
|
半人前 登録日: 2012/6/19 居住地: 投稿: 27 |
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。 上記のパソコン版を参考にスマホでも在庫無し非表示を実現しようと試みましたが、どうもうまくいきません。
sphoneのlist.tplを抜粋します。 <script type="text/javascript" src="<!--{$smarty.const.ROOT_URLPATH}-->js/products.js"></script> <script type="text/javascript">//<![CDATA[ // 並び順を変更 function fnChangeOrderby(orderby) { fnSetVal('orderby', orderby); fnSetVal('pageno', 1); fnSubmit(); } // 表示件数を変更 function fnChangeDispNumber(dispNumber) { fnSetVal('disp_number', dispNumber); fnSetVal('pageno', 1); fnSubmit(); } // 在庫切れ非表示 function fnChangeNostock_hidden(nostock_hidden) { fnSetVal('nostock_hidden', nostock_hidden); fnSetVal('nostock_hidden', 1); fnSubmit(); } //]]></script> 〜〜〜 <!--▼ページナビ(本文)--> <section class="pagenumberarea clearfix"> <ul> <!--{if $nostock_hidden != 'nostock_hidden'}--> <li><a href="java script:fnChangeNostock_hidden('nostock_hidden');" rel="external">在庫切れ非表示</a></li> <!--{else}--> <li class="on_number">在庫切れ非表示</li> <!--{/if}--> <!--{if $orderby != 'price'}--> <li><a href="java script:fnChangeOrderby('price');" rel="external">価格順</a></li> <!--{else}--> <li class="on_number">価格順</li> <!--{/if}--> <!--{if $orderby != "date"}--> <li><a href="java script:fnChangeOrderby('date');" rel="external">新着順</a></li> <!--{else}--> <li class="on_number">新着順</li> <!--{/if}--> </ul> </section> <!--▲ページナビ(本文)--> スマホのフロントには「在庫切れ表示」と表示されるのですが クリックしても何の反応もありません。 価格順や新着順は従来通り機能しています。 LC_Page_Products_List.phpは前回のパソコン用に修正したままです。 なんとかスマホ版でも在庫切れの商品を非表示にする機能を実装したいです。 なにとぞ、アドバイスのほど宜しくお願い致します。 |
Aichi |
投稿日時: 2015/12/1 23:56
対応状況: −−−
|
半人前 登録日: 2012/6/19 居住地: 投稿: 27 |
Re: 在庫のない商品を非表示にするパラメータをURLに付け加えたい。 自己解決したので、記載しておきます。
sphoneのlist.tplの中に設定を追加することで解決しました。 前回の省略してしまった部分に解決策がありました。 <section id="product_list"> <form name="form1" id="form1" method="get" action="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php"> <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" /> <input type="hidden" name="mode" value="<!--{$mode|h}-->" /> <input type="hidden" name="category_id" value="<!--{$arrSearchData.category_id|h}-->" /> <input type="hidden" name="maker_id" value="<!--{$arrSearchData.maker_id|h}-->" /> <input type="hidden" name="name" value="<!--{$arrSearchData.name|h}-->" /> <input type="hidden" name="orderby" value="<!--{$orderby|h}-->" /> <input type="hidden" name="disp_number" value="<!--{$disp_number|h}-->" /> <input type="hidden" name="pageno" value="<!--{$tpl_pageno|h}-->" /> <input type="hidden" name="product_id" value="" /> <input type="hidden" name="classcategory_id1" value="" /> <input type="hidden" name="classcategory_id2" value="" /> <input type="hidden" name="product_class_id" value="" /> <input type="hidden" name="quantity" value="" /> <input type="hidden" name="rnd" value="<!--{$tpl_rnd|h}-->" /> ↓↓追加↓↓ <input type="hidden" name="nostock_hidden" value="<!--{$nostock_hidden|h}-->" /> ↑↑追加↑↑ </form> 上記を追加する事によって、きちんと動作する事が出来ました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |