バージョン選択

フォーラム

メニュー

オンライン状況

63 人のユーザが現在オンラインです。 (55 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 63
もっと...

サイト内検索

質問 > フロント機能 > 個数を指定する窓の表示・非表示の切り替え

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sower
投稿日時: 2011/5/3 22:57
対応状況: −−−
半人前
登録日: 2011/4/19
居住地:
投稿: 11
個数を指定する窓の表示・非表示の切り替え
首記の件についてお尋ねします。
制作中のサイトでは、在庫が複数ある商品をほとんど扱わないため、在庫がひとつ以上の時以外は個数を指定する窓を非表示に、
在庫のある商品の場合は窓を表示するカスタマイズを試みました。

商品一覧では
<!--{if $arrProducts[cnt].stock_max > "1"}-->
詳細では
<!--{if $arrProduct.stock_max > "1"}-->
というふうに、在庫が1以上なら表示、それ以外なら非表示という分岐条件を考えました。これでうまく表示・非表示の切り替えはできたのですが、
カゴボタンが利かなくなりました。カゴボタンをクリックしてもカゴに入らず、カゴの中の画面にも移動せずという状態です。

上記コード以外にも在庫が1と等しければ==とか、1と等しくない時!=とか、CSSでvisiblity: hidden とかdisplay: none とか
試しましたが、カゴボタンの機能と個数指定する窓の表示・非表示の切り替えが、現在のところトレードオフの状態です。

こういった場合の解決策、または原因の突き止め方をご存知でしょうか。
どうぞよろしくお願いいたします。

(以下追記)
-------------------------------------------------------
[EC-CUBE] 2.4.4正式版
[レンタルサーバ] なし(XAMPPにてローカル運用)
[OS] Windows NT MICETAO 5.1 build 2600
[PHP] PHP 5.2.9
[データベース] PostgreSQL 8.3.12,
[WEBサーバ] Apache/2.2.11
-------------------------------------------------------
fukap
投稿日時: 2011/5/4 12:12
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 個数を指定する窓の表示・非表示の切り替え
とりあえず商品一覧のカスタマイズ例を考えてみました。
応用すれば、商品詳細の方もいけると思います。

list.tplの146行目付近です。

<!--{assign var=quantity value=quantity`$id`}-->
<!--{if $arrProducts[cnt].stock_max > 1 && $arrProducts[cnt].stock_unlimited_max != 1}-->
<dt>個数:</dt>
<dd><input type="text" name="<!--{$quantity}-->" size="3" class="box54" value="<!--{$arrForm[$quantity]|default:1}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr[$quantity]|sfGetErrorColor}-->" />
<!--{if $arrErr[$quantity] != ""}-->
<br /><span class="attention"><!--{$arrErr[$quantity]}--></span>
<!--{/if}-->
</dd>
<!--{else}-->
<input type="hidden" name="<!--{$quantity}-->" size="3" class="box54" value="1" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr[$quantity]|sfGetErrorColor}-->" />
<!--{/if}-->


sower
投稿日時: 2011/5/4 14:34
対応状況: −−−
半人前
登録日: 2011/4/19
居住地:
投稿: 11
Re: 個数を指定する窓の表示・非表示の切り替え
fukap様、またお助けくださりありがとうございます。

早速試させていただきましたが、商品一覧では完全に機能いたしませんでした。目的の窓の表示・非表示は、
在庫の有無によってちゃんと分岐されました。しかし、カゴボタンが機能しないところがあります。

レイアウトはご存知の通り横型3列ですが、機能したのは左側[cnt]のみで、あとの[$cnt4][$cnt3]と変更した
真ん中と右側のカゴボタンは機能しませんでした。(カゴに入らず、カゴ画面に移動せずです。)
これはまたしても、なにか他の部分と緩衝しているのかもしれません。例えば先のカスタマイズでやっとできたカゴボタンとか?

商品詳細の方は、以下のようなコードでうまくいきました! とくにおかしなところがあればご指摘いただけますでしょうか。

<!--{assign var=quantity value=quantity`$id`}-->
<!--{if $arrProduct.stock_max > 1 && $arrProduct.stock_unlimited_max != 1}-->
<dl>
<dt>個数:</dt>
<dd><input type="text" name="quantity" class="box54" value="<!--{$arrForm.quantity.value|default:1}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.quantity|sfGetErrorColor}-->" />
<!--{if $arrErr.quantity != ""}-->
<br /><span class="attention"><!--{$arrErr.quantity}--></span>
<!--{/if}-->
</dd>
<!--{else}-->
<input type="hidden" name="<!--{$quantity}-->" size="3" class="box54" value="1" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr[$quantity]|sfGetErrorColor}-->" />
<!--{/if}-->
</dl>

商品詳細の方は、もうちょっと検討してみます。またよろしくお願いいたします。
fukap
投稿日時: 2011/5/4 19:56
対応状況: −−−
仙人
登録日: 2009/7/7
居住地: 滋賀県
投稿: 907
Re: 個数を指定する窓の表示・非表示の切り替え
以下スレの続きですね。

横型商品一覧にカゴ入れるボタンをつけたい
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=7607&forum=10&post_id=38313#forumpost38313

商品詳細の方はうまくいったようですね。
私の理解では特に問題はないように見受けられます。
私の記述の問題ですが、<!--{else}-->の後の行は、無駄なプロパティが記述されているので、
次のように書いた方がスマートだと思いました。

 <input type="hidden" name="<!--{$quantity}-->" value="1" />

商品一覧についても同様の方法でできると思いますが、
横型3列に商品リストを並べる場合は、商品に関する記述が左・中央・右と3箇所に分かれていますので、
上記で行った修正を中央・右の商品にもしてあげないといけないと思います。
例えば、中央の商品については以下のような記述になると思います。

<!--{assign var=quantity value=quantity`$id4`}-->
<!--{if $arrProducts[$cnt4].stock_max > 1 && $arrProducts[$cnt4].stock_unlimited_max != 1}--><dt>個数:</dt>
<dd><input type="text" name="<!--{$quantity}-->" size="3" class="box54" value="<!--{$arrForm[$quantity]|default:1}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr[$quantity]|sfGetErrorColor}-->" />
<!--{if $arrErr[$quantity] != ""}-->
<br /><span class="attention"><!--{$arrErr[$quantity]}--></span>
<!--{/if}-->
</dd>
<!--{else}-->
<input type="hidden" name="<!--{$quantity}-->" value="1" />
<!--{/if}-->

同様に右の商品についても、$cnt4→$cnt3、$id4→$id3に変更してみると、
うまくいったりしませんか?
sower
投稿日時: 2011/5/5 0:10
対応状況: 解決済
半人前
登録日: 2011/4/19
居住地:
投稿: 11
Re: 個数を指定する窓の表示・非表示の切り替え
投稿ありがとうございます。うまくいきました!

原因は私のケアレスミスでした。ちゃんと左・中央・右と3箇所に分けて書いたつもりだったのですが、
一番上の行の$idをちゃんと$id4、$id3とかき分けていませんでした。正しく書き直すと期待通り機能しました。

また、スマートに書き直してくださった1行も反映させました。fukap様にまた助けていただき感謝です。
本当にありがとうございました。

(このスレに書かれたコードでうまく動きますので、同様の問題でつまづいている方がおられましたら
ぜひ参考にしてみてください。)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,897名です
総投稿数は110,002件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.