見出し画像

PowerCMS X でテンプレートタグの mt: 部分は色んなルールがある

テンプレートタグは <mt:date> のように小文字で書くことが一般的だと思います。

<mt:date>

結果
2024-09-14 16:40:43

実はテンプレートタグは大文字と小文字を区別していなくて、コロンも不要です。前後に $ を付けてタグだと分かりやすくすることもできます。タグの後ろにスラッシュ(/)も付けられます。
以下は参考例で、すべてテンプレートタグとして処理されます。

コロン無し
<mtdate>

大文字、小文字が混在
<MTDate>

前後に $ を付ける
<$mt:date$>

先頭だけ $ を付ける
<$mt:date>

末尾に / を付ける
<mt:date />

大文字小文字を適当に設定する
<mt:dATe />
<mT:dATe />

ファンクションタグは 「mt + モデル名 + カラム名」で記述するので、キャメルケースが読みやすいと思います。

<mt:EntryTitle>
<MTEntryTitle>

ファンクションタグは、カラムの「名前」もしくは「ラベル」で設定できる

テンプレートのファンクションタグ「mt + モデル名 + カラム名」ですが、
「カラム名」は「名前」と「ラベル」のどちらでも利用できます

例えば記事モデルに下記カラムを作成した場合に、

カラム

このようなファンクションタグが利用できます。

<mt:Entries>

<mt:EntryData>
<mt:EntryDataHoge>

</mt:Entries>

結果は同じ値が表示されます。

例はラベルを「Data Hoge」として半角スペースを入れていますが、ファンクションタグは半角スペースを削除して「DataHoge」と記述します。

事故らないように気をつけよう

例えば下記のように「uniqueid」カラムを作ったとします。ラベルは「ユニークID」です

カラム

ラベルは日本語名を使用できますが、ファンクションの時は日本語が反応しません。例だと「ユニーク」の部分です。つまり「ユニーク」を削除した「ID」の部分だけ反応します。
よって、「uniqueid」のファンクションタグは以下の2つが指定できます。

名前で指定した場合
<mt:EntryUniqueid>

ラベルで指定した場合
<mt:Entryid>

ここで思うのです。<mt:Entryid> タグは既に「ID」カラムが存在しているので重複していると。でも結果は正常に処理されて、 <mt:Entryid> は記事IDの値として表示されました。おそらくデフォルトで存在しているカラムが優先されるようです。
ただし、自身で作成したカラム同士だと、どのように処理されるか分からないので、「ラベル」は「日本語表記のみで英語を含めない」もしくは「英語表記のみ」で統一するのが運用としては良いかもしれません。


この記事が気に入ったらサポートをしてみませんか?