Hei Blog

Movable Typeのこと、いろいろメモっとこうと思ってブログつくりました。

mt:ContentField に値が入力されていないときの分岐のしかた


いよいよリリースされたMTの新バージョン「Movable Type 7」、みなさんさわってますか?
コンテンツタイプという概念ができて新しいタグも増えたので、疑問に思ったところをメモしていこうと思います。

まずはコンテンツデータの出力をするためのタグ、「mt:ContentField」について書いてみますね。

値が入力されていないときの処理のしかたがわからない

MT6までは、本文欄やカスタムフィールドに値がないときの処理は

<mt:If tag="xxx"><mt:xxx /><mt:Else>入力なし</mt:If>

のような形で記述していました。

MT7でコンテンツタイプを設定した場合、mt:Contents ブロックの中に mt:ContentField ブロックを書き、その中に mt:ContentFieldValue で値を出力するという形になります。

それについては最近公開されたタグリファレンスに下記のように書いてあるのですが、コンテンツデータに入力がないときの書き方が見つけられませんでした。

<mt:Contents content_type="イベント・セミナー" limit="1">
開催日時: <mt:ContentField content_field="開催日時"><mt:ContentFieldValue language="ja"></mt:ContentField>
</mt:Contents>
MTContentField - テンプレートタグリファレンス
https://www.movabletype.jp/documentation/appendices/tags/contentfield.html

mt:If を使ってみる

リファレンスにはなくてもできなくては困る!ということで、とりあえずいろいろ試してみることにしました。
まずは今までどおり mt:If を使ってみようと思い、下記のように書いてみました。

<mt:If tag="ContentField" content_field="出演者名">
出演者名に入力あり:<mt:ContentFieldValue />
<mt:Else>
出演者名に入力なし
</mt:If>

しかしこれを再構築しようとすると

「テンプレート「出演者紹介」の再構築中にエラーが発生しました: <mtContents>タグでエラーがありました: <mtIf>タグでエラーがありました: <mtContentFieldValue>タグでエラーがありました: コンテンツフィールドが見つかりません。」

というエラーが表示されます。


エラー

mt:If を使ってみる(その2)

エラーの内容から見ると、 mt:ContentField タグがないのが原因かなと思いましたので、下記のように修正してみました。

<mt:If tag="ContentField" content_field="出演者名">
<mt:ContentField content_field="出演者名">
出演者名に入力あり:<mt:ContentFieldValue />
</mt:ContentField>
<mt:Else>
出演者名に入力なし
</mt:If>

すると、入力があるときは「出演者名に入力あり:〜〜〜〜〜」、入力がないときは「出演者名に入力なし」と表示することができました!

mt:ContentField の中で mt:Else が使えた

いちおうこれで目的は達成できたのですが、その後いろいろいじってみたところ、下記のように mt:ContentField ブロックの中に mt:Else を書くことによって同じように出力することができました。

<mt:ContentField content_field="出演者名">
出演者名に入力あり:<mt:ContentFieldValue />
<mt:Else>
出演者名に入力なし
</mt:ContentField>

mt:If を書かなくていいので、こちらのほうがスマートで簡単な感じですね。

ドキュメントの充実に期待

というわけで、 mt:ContentField に値が入力されていないときのテンプレートの書き方についてはなんとか解決できました。
ただ、実際にこのような使い方は想定できると思いますので、できればこういうところまでタグリファレンスに書いておいてもらえると助かるなーと思いました。

今週末は MTDDC MEETUP HOKKAIDO 2018

さて今週末はいよいよ MTDDC MEETUP HOKKAIDO 2018 が開催されます。
リリースされたばかりのMT7の情報はもちろん、デザインやコーディングのセッションなど盛りだくさん。
ウェブ制作にかかわるみなさん、ぜひご参加ください!



スポンサードリンク




コメント

お名前 必須

名前を入力してください。

メールアドレス

正しいメールアドレスを入力してください。

URL

正しいURLを入力してください。

タイトル

タイトルを入力してください。

タイトルに不適切な言葉が含まれています。

コメント必須

コメントを入力してください。

コメントに不適切な言葉が含まれています

パスワード必須

パスワードを入力してください。

パスワードは半角小文字英数字で入力してください。

Cookie

RSS 2.0 Login