a-blog cms IFブロックを使ったコンテンツの制御方法

Preview:

Citation preview

IFブロックを使った コンテンツの制御方法

有限会社アップルップル 堀 悟大

目次

1. IFブロックの基本編

2. IFブロックのオプション 3. ブロックの解決順序 4. AND演算子、OR演算子

5. フォームで使えるIFブロック

6. カスタムフィールドで使えるIFブロック

7. 簡単な正規表現をつかったIFブロック

IFブロックの基本編

<!— BEGIN_IF [値/オプション/値] —>

出力されるHTML

<!— ELSE —> 出力されるHTML

<!— END_IF —>

IFブロックの基本編

<!— BEGIN_IF [3/eq/3] —> <p>3 = 3です</p>

<!— END_IF —> !

*IFブロックに入る値は変数じゃなくてもOKです

IFブロックの基本編オプションの種類 eq …. 等しい

neq…等しくない

gt……より大きい

gte….以上

lt…….より小さい

lte……以下

!lk …. 含まれる

nlk…含まれない

re……正規表現に一致

nre…..正規表現に不一致

em…….値が空

nem……値がある

ブロックの解決順序

1. インクルードを解決 2. グローバル変数を解決 3. タッチモジュールを解決 4. モジュール類を内側から解決 5. IFブロックを解決

AND演算子、OR演算子

AND編

<!-- BEGIN_IF [3/gt/2/_and_/2/lt/4] --> <p>条件を満たします</p>

<!-- ELSE --> <p>条件を満たしません</p>

<!-- END_IF -->

AND演算子、OR演算子

OR編

<!-- BEGIN_IF [4/lt/2/_or_/2/eq/2] --> <p>条件を満たします</p>

<!-- ELSE --> <p>条件を満たしません</p>

<!-- END_IF -->

フォームで使えるIFブロック

例えば電話番号 2つのフォームの1つでも入力されていない場合にエラーメッセージを表示したい

フォームで使えるIFブロック

<!— BEGIN_IF [<!— BEGIN phone1:validator —>error<!— END phone1:validator —><!— BEGIN phone2:validator —>error<!— END phone2:validator —>/nem/] —> <p class=“acms-text-error”> 郵便番号が正しく入力されていません

</p> <!— END_IF —>

フォームで使えるIFブロック

青丸が未入力の場合 !

<!— BEGIN_IF [error/nem/] —> <p>電話番号が未入力です</p>

<!— END_IF —>

先にバリデーターが 解決される

フォームで使えるIFブロック

両方とも入力されている場合 !

<!— BEGIN_IF [/nem/] —> <p>電話番号が未入力です</p>

<!— END_IF —>

先にバリデーターが 解決される

フォームで使えるIFブロック

DEMO

カスタムフィールドで使えるIFブロック

デフォルトでエントリーのカスタムフィールドのcheckboxをcheckedに

この商品をエントリーに表示する

カスタムフィールドで使えるIFブロック

<!— BEGIN_IF [%{EID}/em/] —> <input type=“checkbox” name=“show” value=“yes” checked=“checked”> <!— ELSE —> <input type=“checkbox” name=“show” value=“yes” {show:checked#yes}/> <!— END_IF —>

この商品をエントリーに表示する

カスタムフィールドで使えるIFブロックDEMO

簡単な正規表現をつかったIFブロック<!-- BEGIN_IF [%{BID}/re/2|3] —> 出力したいHTML

<!— END_IF —>

簡単な正規表現をつかったIFブロックDEMO !

物件情報と、製品情報のみバナーを表示する

IFブロックは最後に実行される<!— BEGIN_IF [%{BID}/re/2|3] —> <!-- BEGIN_MODULE Entry_Body —> <!-- BEGIN entry:loop —> <!— END entry:loop —> <!-- END_MODULE Entry_Body —> <!— END_IF —>

IFブロックは最後に実行されるなかで、処理の重いモジュールが動いていると当然処理が重くなります。

IFブロックを使おう

IFブロックは使い方次第で、サイトの実装をとても楽にしてくれます。

ありがとうございました! steelydylan " steelydylan

Recommended