- 2009-08-11 (火) 12:34
- 備忘録
MTで条件分岐をさせる場合に、特定の入力エリアに内容が入っていない場合の処理という事で、
<mt:Entries>
<mt:If tag="hoge">
//hogeに内容がある場合の処理
<mt:Else>
//hogeに内容がない場合の処理
</mt:If>
</mt:Entries>
//※hogeにはMTタグや、カスタムフィールドタグが入ります。
という方法があります。
ですが、この方法だと、tagモディファイアに、EntryBodyを設定するとうまく動きません。
なので、こういう実装をしてみました。
<mt:Entries>
<$MTEntryBody remove_html="1" regex_replace="/ /g","" setvar="bodyFlag"$> //エントリーボディの値から、htmlタグと空白を除去し、$bodyFlag変数へ
<mt:If name="bodyFlag" ne="">
//$bodyFlagに内容がある場合の処理
<mt:Else>
//$bodyFlagに内容がない場合の処理
</mt:If>
</mt:Entries>
リッチテキストで、中途半端に内容を入れ、それを消したつもりになってると、<br />とか残ってたりします。それを、remove_htmlモディファイアで消去。
EntryBodyのエリアには何も触れなくても、なぜか空白が入ったりしてます。
その可能性を、regex_replaceで強引に消してます。
その2処理をした内容を、$bodyFlagに格納し、それが空でなければ、EntryBodyに内容が入っている場合の処理をし、
空ならば逆の処理をします。
ま、力技です;
もっといい方法があったら教えてください。
- Newer: WCAN 2009 Summer
- Older: カラーデザイン勉強会 その3
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.maki-o.net/memo/wp-trackback.php?p=497
- Listed below are links to weblogs that reference
- mt:If tag=”EntryBody” が効かないので、 from maki-o memo