【やりたいこと】
Smartyのtpl内でforeachを使って配列の中身を出力する際、内容が全く同じ要素がある場合、その要素は出力しないようにしたい
【現状】
同じ要素が複数出力されてしまっている
【背景】
EC-CUBE2.13を使用してサイトを作成しています。
list.tplで「ある特定のカテゴリーの商品において、その商品すべてのメーカーの一覧を表示させる」という処理を記述しています。
コードは下記の通りです。
list.tpl
1 <!--▼メーカー一覧--> 2 <!--{if $arrSearchData.category_id == 1}--><!-- 特定のカテゴリーページのみ表示 --> 3 <ul class="makerlist_area"> 4 <!--{foreach from=$arrAllProducts item=maker name=foo}--> 5 <li class="maker_name">・<a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=1&maker_id=<!--{$maker.maker_id|h}-->"><!--{$maker.maker_name|h}--></a></li> 6 <!--{/foreach}--> 7 </ul> 8 <!--{/if}--> 9 <!-- ▲メーカー一覧--> 10
代替案として、JSを用いて「makerlist_areaクラスの中で、全く同じ要素が存在する場合1つだけ表示させる処理を加える」というアイデアも思いついたのですが、
どうせなら綺麗にforeachの中で処理したいと思い、何かいい方法がないか、投稿させて頂きました。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/02 09:38
退会済みユーザー
2016/05/02 12:33 編集
2016/05/06 05:22
退会済みユーザー
2016/05/06 08:29