MTOS で、ある項目とある項目の内容が同じなら...という条件分岐を

MTOS 4 カスタマイズのメモ。

管理画面に開始日と終了日の入力項目を、藤本壱氏制作のプラグインを使った「カスタムフィールドもどき」で追加している。
で、これをブログの詳細画面に表示するときに、「同じ日時が入っていれば、その日時のみを表示」「開始と終了で違う日時が入っていれば、開始日~終了日と表示」ということがしたいわけだ。

具体的には、
・開始日、終了日にともに「2010-05-21」と入力した時は、「2010年5月21日(金)」と表示。
・開始日に「2010-05-21」と、終了日に「2010-05-23」と入力した時は、「2010年5月21日(金)~2010年5月23日(日)」と表示。
・・・ということだ。

で、

<$mt:SetVar name="entrydatefield2" value="<$mt:EntryDateField2$>"$>
<$mt:SetVar name="entrydatefield3" value="<$mt:EntryDateField3$>"$>
<$mt:EntryDateField2 format="%Y年%b月%e日(%a)"$><mt:if name="entrydatefield2" ne="$entrydatefield3">~<$mt:EntryDateField3 format="%Y年%b月%e日(%a)"$></mt:if>

とやってみたのだが駄目。

開始日に「2010-05-21」を、終了日に「2010-05-23」を入力した場合でも「2010年5月21日(金)」しか表示されない。

どうも、$entrydatefield2、$entrydatefield3には何もセットされないようだ。
どちらも空値なので、if ne の条件にはかからないということだろう。

そこで、次のように定義してみた。

<$mt:EntryDateField2 setvar="datafield2"$>
<$mt:EntryDateField3 setvar="datafield3"$>
<$mt:EntryDateField2 format="%Y年%b月%e日(%a)"$><mt:if name="datafield2" ne="$datafield3">~<$mt:EntryDateField3 format="%Y年%b月%e日(%a)"$></mt:if>

このやり方であればばっちり。

EntryDateField2 及び EntryDateField3 の値が、それぞれ $datafield2、$datafield3 にちゃんとセットされたようだ。

リファレンスマニュアルの if タグの説明は SetVar の value 値に「固定文字列」をセットしているものばかりで、項目の値同士を比較する書き方が見つからない。もう少し実践的な例を載せてくれればいいのに。

トラックバック(0)

このブログ記事を参照しているブログ一覧: MTOS で、ある項目とある項目の内容が同じなら...という条件分岐を

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/1149

コメントする

このブログ記事について

このページは、shinodaが2010年5月21日 15:43に書いたブログ記事です。

ひとつ前のブログ記事は「ニトリとコメリ」です。

次のブログ記事は「むむ。減量停滞期をついに脱したか?」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら