PHxでelseifみたいな使い方をしたいとき

  • 2011.04.21 Thursday
  • 14:58
 PHxはMODxのテンプレート変数などの値によって、条件分岐や表示非表示を切り替えることのできるプラグインです。
便利なんだけどプログラム系でないわたしは、まず書き方を理解するのが大変でした^^;

■書き方の例
・テンプレート変数hogeの値が1のときは画像1を表示し、それ以外のときは画像2を表示する。
[*hoge:is=`1`:then=`<img src="assets/images/1.png" alt="1の画像" >`:else=`<img src="assets/images/2.png" alt="2の画像" />`*]


・テンプレート変数hogeの値が1のときは画像1を表示し、それ以外のときは何も表示しない。
[*hoge:is=`1`:then=`<img src="assets/images/1.png" alt="1の画像" />`:else=``*]

こんな感じでチャンクやテンプレートに書きます。
dittoのテンプレートに使う場合は[+hoge でプレースフォルダにします。

詳しくはMEGUさんのとこの解説などをご覧ください。


さて、ここで以下のような振る舞いをさせたいときどうするか?
テンプレート変数hogeの値が1のときは画像1を表示し、値3のときは画像3を表示し、それ以外のときは何も表示しない。

実はPHxにはelseifに相当する文法がない!
参考:MODx : phx の使い方


これでしばらく悩みましたが、あっけなく解決。値1のときの振る舞いと値3のときの振る舞いを別々に書けばいいのです。

[*hoge:is=`1`:then=`<img src="assets/images/1.png" alt="1の画像" />`:else=``*]
[*hoge:is=`3`:then=`<img src="assets/images/3.png" alt="3の画像" />`:else=``*]

どちらも値がちがう場合は何も表示しないので、実際に表示されるのは片方のhogeの値のみです。

calendar

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< March 2024 >>

たいやき

selected entries

categories

archives

links

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM