[カラーミー]カテゴリー別商品一覧で条件分岐を作る

すっごいだるい。

やりたいこと

商品一覧ページがある。

商品一覧はカテゴリーごとに表示させることができる。

カテゴリー別に表示させるものを変える、つまり条件分岐を作りたい。

やっていく

独自タグのパンくずリストのやつを使えばカテゴリー名を出力できるので、それを活用する感じになる。

<{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()が動いたので、これが一番シンプルだし楽だと思う。

コメント

タイトルとURLをコピーしました