すっごいだるい。
やりたいこと
商品一覧ページがある。
商品一覧はカテゴリーごとに表示させることができる。
カテゴリー別に表示させるものを変える、つまり条件分岐を作りたい。
やっていく
独自タグのパンくずリストのやつを使えばカテゴリー名を出力できるので、それを活用する感じになる。
<{if $sid_name != ""}>
小カテゴリー名称:<{$sid_name}>
<{elseif $bid_name != ""}>
大カテゴリー名称、またはグループ名称:<{$bid_name}>
<{else}>
ALL
<{/if}>だから、大カテゴリーならこんな感じ。
<{if $sid_name != ""}>
<{if $bid_name == "野菜"}>
<p>野菜はおいしい</p>
<{elseif $bid_name == "フルーツ"}>
<p>フルーツはおいしい</p>
<{/if}>
<{/if}>カテゴリーごとの内容は、管理画面上では画像しか設定できない。
だから文章とかコンテンツを用意したい場合はhtml上にベタ打ちでやっていくことになる。
条件分岐もカテゴリー名をそのまま放り込むことになる。
カテゴリー名を変えたら条件外になる。
名称対策でURLを拾ってもいいんだけど、使いまわしの可能性を考えたらカテゴリー名でやっていくのが無難かもしれない。どちらにせよベストじゃないですね。
カテゴリーに登録した画像を引っ張りたければこうなる。
<{section name=num loop=$category}>
<{if $bid_name == $category[num].name }>
<img src="<{$category[num].img_url}>" alt="<{$category[num].name}>">
<{/if}>
<{/section}>カテゴリー一覧を出すにあたり、現在表示しているカテゴリーと同じ名称だった場合だけ出力させるっていうループと条件分岐の合わせ技。
複数のカテゴリに対して同一の処理をしたい場合
こんな感じにまとめることができる。
<{if $bid_name == "aaa" || $bid_name == "bbb" || $bid_name == "ccc"}>
表示内容
<{/if}>
<{if $bid_name == "aaa" or $bid_name == "bbb" or $bid_name == "ccc"}>
表示内容
<{/if}>
<{if in_array($bid_name, ["aaa", "bbb", "ccc"])}>
表示内容
<{/if}>全部同じ処理になる。
カラーミーショップ環境でin_array()が動いたので、これが一番シンプルだし楽だと思う。


コメント