バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カテゴリ毎のバナー表示 画像未登録時のバツ印について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
l58
投稿日時: 2017/5/31 23:56
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
カテゴリ毎のバナー表示 画像未登録時のバツ印について
▼テンプレート
[EC-CUBE] 2.135
[レンタルサーバ] wadax
[OS] win7
[PHP] 5.3.3
[データベース] MySQL 5.1.73
[ブラウザ] Google Chrome

いつもお世話になっております。

カテゴリー毎にタイトルバナーを表示するカスタマイズを行いました。
下記と同じ方法です。
http://ec-cube.nakweb.com/blog/1201.html

カテゴリーID名で画像をアップロードし、カテゴリーページで表示させています。
(カテゴリIDが1の場合は、1.jpg 、カテゴリIDが2の場合は、2.jpg という名前で保存)

表示はdata/Smarty/templates/default/products/list.tpl に

<!--▼カテゴリータイトルバナー-->
<div class="catebanner_area">
<!--{foreach from=$arrBannerCategoryId item=banner_category_id}-->
<!--{if $smarty.get.category_id == $banner_category_id}-->
<img src="<!--{$TPL_URLPATH}-->img/category_banner/category<!--{$smarty.get.category_id|h}-->.jpg" alt="<!--{$smarty.get.category_name|h}-->" id="" name="" />
<!--{/if}-->
<!--{/foreach}-->
</div>
<!--▲カテゴリータイトルバナー-->

としていますが、上記の場合だと、画像が未登録の場合、クローム等ブラウザによってバツ印がでてしまいます。

画像がない場合は非表示にする、又は画像がある場合のみ画像のパスを表示するなど、バツ印がでない方法がありましたらご教示いただけますでしょうか。

宜しくお願い致します。
hata
投稿日時: 2017/6/1 11:37
対応状況: −−−
長老
登録日: 2015/8/3
居住地: 宮城県(2017/09末引退)
投稿: 156
Re: カテゴリ毎のバナー表示 画像未登録時のバツ印について
画像のありなしの判断はマナー的にはテンプレートの中でやらない方が良いとは思いますが、
実装方式を変えずにやるなら
<!--{assign var=fname value="`$smarty.const.USER_TEMPLATE_REALDIR`default/img/category_banner/category`$banner_category_id`.jpg"}-->
<!--{if file_exists($fname)}-->

<img ...

<!--{/if}-->
でしょうかね。

file_exists()に渡すファイルパスは、サーバ上のパスなのでHTML_REALDIRからの指定が
必要だと思います。上記は参考までに画像のパスに合わせたものですのが、適宜変更してください。
l58
投稿日時: 2017/6/2 0:05
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: カテゴリ毎のバナー表示 画像未登録時のバツ印について
ありがとうございます!
下記で解決できました。

foreachの記述が良くわからず、画像が繰り返されてしまっていましたが、下記の記述で思い通りになりました。

<div class="catebanner_area">
<!--{foreach from=$arrBannerCategoryId item=banner_category_id}-->
<!--{assign var=fname value="`$smarty.const.USER_TEMPLATE_REALDIR`default/img/category_banner/category`$banner_category_id`.jpg"}-->
<!--{if file_exists($fname)}-->
<!--{if $smarty.get.category_id == $banner_category_id}-->
<img src="<!--{$TPL_URLPATH}-->img/category_banner/category<!--{$smarty.get.category_id|h}-->.jpg" alt="<!--{$smarty.get.category_name|h}-->" id="" name="" />
<!--{/if}-->
<!--{/if}-->
<!--{/foreach}-->
</div>

本当にありがとうございました!!
hata
投稿日時: 2017/6/2 9:06
対応状況: −−−
長老
登録日: 2015/8/3
居住地: 宮城県(2017/09末引退)
投稿: 156
Re: カテゴリ毎のバナー表示 画像未登録時のバツ印について
情報の共有ありがとうございます。

画像を設定していることを前提としたカテゴリのリストが$arrBannerCategoryIdだと思うので、
$arrBannerCategoryIdに該当するカテゴリを見つけてからファイルの有無をチェックするように
順序を変えた方がベターだと思います。無駄にファイルの有無をチェックすることがないので。
<div class="catebanner_area">
<!--{foreach from=$arrBannerCategoryId item=banner_category_id}-->
<!--{if $smarty.get.category_id == $banner_category_id}-->★こっちのチェックが先の方が良いと思いますよ。
<!--{assign var=fname value="`$smarty.const.USER_TEMPLATE_REALDIR`default/img/category_banner/category`$banner_category_id`.jpg"}-->
<!--{if file_exists($fname)}-->
<img src="<!--{$TPL_URLPATH}-->img/category_banner/category<!--{$smarty.get.category_id|h}-->.jpg" alt="<!--{$smarty.get.category_name|h}-->" id="" name="" />
<!--{/if}-->
<!--{/if}-->
<!--{/foreach}-->
</div>
l58
投稿日時: 2017/6/4 12:48
対応状況: −−−
常連
登録日: 2015/2/15
居住地:
投稿: 36
Re: カテゴリ毎のバナー表示 画像未登録時のバツ印について
なるほど!
ありがとうございます!

他にもこのバツ印を消したい箇所がいくつかあったのですが応用して全て思い通りの表示ができるようになりました。

まだまだ勉強不足で、、ご親切に本当にありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,281名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.