項目の中身が無いときは何も表示させないようにする

更新日
2017.07.29
作成日
2012.10.28

移行作業中のため一部のページが正しく表示されていない場合があります(o-ω-))

項目の値がある場合は div などで囲ったり見出しを付けたいけど値が空の場合は何も表示させたくないという表示方法です。

方法がいくつかあるのでご紹介します。

@IF文を使用する

基本は @IF文 で条件分岐が出来ます。

<@IF:[*image*]>
<div class="docimage"><img src="[*image*]"></div>
<@ENDIF>

モディファイアを使用する

モディファイアreplace_toを使って値がある時だけタグ付きに置き換えて表示します。

[*image:replace_to=`<div class="docimage"><img src="[+value+]"></div>`*]

テンプレート変数ならカスタムフィルターが使える

何か入力されていれば見出しや枠付で表示して、何も入力されていなければ見出しも枠も表示させたくないという場合、カスタムフィルターを使うとスニペットを作らなくても良いので簡単に設定できます。以下の例は特記事項に何か入力があった場合のみ、見出しとdivで枠を表示します。

カスタムフィルターを使用する場合、Ditto などではテンプレート変数を使用する時フィルターを通した結果が返されるので、いろんな場所で表示方法を変えたい項目ならば少し注意が必要です。

表示の方法を分岐させるスニペットを使う

分岐用スニペットが配布されています。私はテンプレートの中にあまりロジックを入れたくないのでなるべく使わないようにしてますが、これを使うと一般的な CMS のテンプレートのようにテンプレート内で分岐ができます。が、今は @IF が使えるようになったので需要なくなったかも。※ PHP コードではなくスニペットコードを記述します。
めっちゃ記述が複雑になっちゃいますが分岐をネストする事もできるみたいです。

evolution / assets / snippets / if /