@IF文の基本的な使い方

最終更新日:2016年10月18日 shortlink:http://modx.jp/?id=1060

MODXではv1.0.13Jから@IF文を使うことができます。本家版でも近日中にリリース予定のv1.2から使えるようになります。

たとえば下記のように使います。

<meta name="description" content="[*description*]">

このように記述すると投稿画面のdescriptionフィールドに入力された文章をmetaタグとして出力することができますが、

<meta name="description" content="">

何も入力していない場合は上記のような空タグが出力されてしまいます。

<@IF:[*description*]>
<meta name="description" content="[*description*]">
<@ENDIF>

上記のように@IF文を用いると、descriptionが入力されている場合のみタグを出力します。

<table>
<@IF:[*HP*]>   <tr><th>HP</th>   <td>[*HP*]</td></tr>  <@ENDIF>
<@IF:[*email*]><tr><th>email</th><td>[*email*]</td></tr><@ENDIF>
<@IF:[*TEL*]>  <tr><th>TEL</th>  <td>[*TEL*]</td></tr> <@ENDIF>
<@IF:[*FAX*]>  <tr><th>FAX</th>  <td>[*FAX*]</td></tr> <@ENDIF>
</table>

応用例。このような使い方もできます。たとえば FAX を入力していない場合は FAX の行を出力しません。

値によっては数式と見なされ意図通りに判定されないことがあります。

<@IF:[*TEL:isnt('')*]><tr><th>TEL</th><td>[*TEL*]</td></tr><@ENDIF>

上記のように記述すると値の有無を正確に判定します。
※開発中の1.0.18Jでは値の有無判定専用の isNotEmpty・isEmpty モディファイアを提供する予定です。

PR

  • KAGOYA
  • ASP at AKIHABARA Japan
  • CMS AWARDS 2007 Winner
ページトップへ