| ブログトップ | CMS関連 |

【MT】カスタムフィールドのテンプレートタグ名によるバグ【PostgreSQL・SQLite】

  • MTのバージョン:5.04
  • データベース:PostgreSQL
  • サーバ:独自の専用サーバ

 

おこったバグ現象

まずカスタムフィールドにて、テンプレートタグ名「EntryProductImageData」という「画像」用フォームを作成。

次にテンプレートにて

<mt:If tag="EntryProductImageData">
<mt:EntryProductImageDataAsset><$MTAssetThumbnailLink width="200" $></mt:EntryProductImageDataAsset>
</mt:If>

と記述したところ、再構築時に以下のようなエラーが出ました。

エラー内容:EntryProductImageDataAssetタグを正しいコンテキストで使用していません。

もちろんMTEntriesタグの中で使ってますし、変な記述もしてないはずなんですが、記事作成・編集にて「EntryProductImageData」のカスタムフィールドに画像を登録すると必ずこのエラーが表示されてしまいます。

※ちなみに普通のレンタルサーバなどではこの現象は起きません。独自に専用サーバを立てているところに設置すると、まれにこのようなことが起きます。

 

解決方法

原因は全く分からなかったのですが、「そういえば以前も確か似たようなことあったなぁ。あの時は確かカスタムフィールドのテンプレート名に大文字を入れたのに勝手に小文字に変換されたんだっけ・・・」というのを思いだし、以下の対処方法を試しました。すなわち

テンプレートタグに大文字は使わない。

カスタムフィールドのテンプレートタグ名を「entry_product_image_data」に変更し、テンプレートの記述を

<mt:If tag="entry_product_image_data">
<mt:entry_product_image_dataAsset><$MTAssetThumbnailLink width="200" $></mt:entry_product_image_dataAsset>
</mt:If>

に変更したところ、正常に再構築され、サムネイルも表示されるようになりました。

ググってもなかなか原因が出てこないので焦りましたよ。

改めて「MT テンプレートタグ名 大文字」でググったらこんなページが。

カスタムフィールドのテンプレートタグを使うと、再構築でエラーが発生する | Movable Type 4 FAQ

そういえば以前発生した時はSQLiteで、今回のサーバはPostgreSQLだった・・・

なんてやっかいな・・・

カスタムフィールドのテンプレートタグ名を付けるときは大文字は使わないほうがよさそうですね。

このエントリーをはてなブックマークに追加

LINEで送る

nandani | 2011年05月09日 | コメント(0) | トラックバック(0) | CMS関連

トラックバック

トラックバックURL

コメントする

※メールアドレスが公開されることはありません。

名前 *
メール*
URL
Copyright(c) 2010 - 2017 ダリの雑記