overview
やはり細部までこだわりたいという方の為の解説です。
ここから先は貴方の創造力が全てです。
ループ変数 __FIRST__ __INNER__ __LAST__
これらの変数はアンダースコア2個で囲まれ、ループの中の TMPL_IF で使用します。
__FIRST__ … ループの一巡目のみ正しい
__INNER__ … ループの[ 一巡目と一番最後 ]以外で正しい
__LAST__ … ループの一番最後のみ正しい
例を挙げるとこのようになります。<!-- TMPL_LOOP NAME=LOOP -->
start
<!-- TMPL_IF NAME=__FIRST__ -->
ループの最初
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME=__INNER__ -->
ループの途中
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME=__LAST__ -->
ループの最後
<!-- /TMPL_IF -->
end
<!-- /TMPL_LOOP -->
↓変換後start
ループの最初
end
start
ループの途中
end
start
ループの途中
end
start
ループの途中
end
………
start
ループの途中
end
start
ループの最後
end
例
TMPL_IF, TMPL_UNLESSで上手いカッコを その2を参照してください。
TMPL_IF, TMPL_UNLESSで上手いカッコを その1
通常であれば NAME=SITE_MASTER は TMPL_VAR で使うと管理人名になりますが、
TMPL_IF, TMPL_UNLESSで使用すると管理人名が登録されていれば正しく
管理人名が登録されていなければ正しくないと解釈されます。
管理人名をTMPL_VARで表示すれば良いので必要あるのかと思うかもしれませんが
カッコなどでくくっていると、管理人名を登録しなかった場合にカッコだけ表示されます。
即ち以下のようにすることでデザイン的にもうまい具合に表示されます。<!-- TMPL_IF NAME=SITE_MASTER -->
(<!-- TMPL_VAR NAME=SITE_MASTER -->)
<!-- /TMPL_IF -->
TMPL_IF, TMPL_UNLESSで上手いカッコを その2
その1でも良いのですが、CLASS_LOOPの様に少し違う形にしたいこともあります。
例あ - か - さ - た - な - は - ま - や - ら - わ
この場合にはもう一工夫します。<!-- TMPL_LOOP NAME=CLASS_LOOP -->
<!-- TMPL_UNLESS NAME=__FIRST__ --> - <!-- /TMPL_UNLESS -->
<!-- TMPL_VAR NAME=SITE_CLASS -->
<!-- /TMPL_LOOP -->
__FIRST__が正しくない = 上では「あ」の時以外で「 - 」を表示しています。
※ クラスが登録されないということはないので TMPL_IF は省略してあります。
TMPL_LOOPの要素が無い時をチェックする
TMPL_LOOPの中で要素が無い時はTMPL_LOOPの中は表示されませんが
もっと広範囲にわたって制御したい時があります。
その時は、ループの名前をTMPL_IFに渡すと、要素がある時に正しく、
要素が無い時に正しくないと判断されます。
例
<!-- TMPL_IF NAME=LOOP_NAME -->
要素が無い時は表示されない部分
<!-- TMPL_LOOP NAME=LOOP_NAME -->
<!-- TMPL_VAR NAME=VAR_NAME -->
<!-- /TMPL_LOOP -->
要素が無い時は表示されない部分
<!-- /TMPL_IF -->
これは、サイトが1つのクラスしか所属していない時にOtherを表示し無い様に
するために使用しています。