Movable Type(MT)のスタティックパブリッシングとダイナミックパブリッシングにおけるコードの読み込まれ方の違い~その1ー自分用覚書
August 6, 2012
Movable Type(MT)でダイナミックパブリッシングが出来るようになりましたので、テーマを充ててみたのですが、スタティックパブリッシングではOKだったものが、ダイナミックパブリッシングの時では、コードの読み込まれ方が異なるようでエラーが発生するのを2点ほど見つけました。
■ Fatal error: Smarty error: [in evaluated template line 145]: syntax error: unrecognized tag 'mtusersessionstate' (Smarty_Compiler.class.php, line 580) in /home/xxxxx/public_html/xxxxx/xxxxx/xxxxx/php/extlib/smarty/libs/Smarty.class.php on line 1095
当初このエラーを見てもどこに原因があるのか良くわからなかったのですが、どうやらヘッダーモジュールに以下のように各アーカイブテンプレート用の<script>~</script>をまとめて記載している箇所があるのですが、これが問題だったようです。
<MTIf name="page_template">
<script type="text/javascript">
~~~~
</script>
</MTIf>
<MTIf name="comment_preview_template">
<script type="text/javascript">
~~~~
</script>
</MTIf>
これらのコードを一旦削除して更新するとエラーは消え、サイトが表示されるようになりました。ですので、これらのコードは、Movable Type(MT)のデフォルトテンプレートのように関連する各テンプレートに直接記述するか、<script>~~</script>の部分を1つずつモジュール化してウェブサイト側にまとめ、例えば次のようなブロックタグ<MTIf name="page_template">~</MTIf>で判別して読み込みを行う(ブログから読み込む場合は、マルチブログで読み込み)か、になると思います。(私は後記の方法=ウェブサイト側にモジュールとして一箇所にまとめ、利用する時はインクルードでモジュール化したコードを読み込む事で、他ブログからでもマルチブログのインクルードを使ってコードを再利用する方法にしました。)
■ error in template: mtif found but mtelseif was expected
が、今度はサイドナビゲーションが消えていました。先ほどのような大きなエラーメッセージはなかったのですが、サイトの下の方に「error in template: mtif found but mtelseif was expected 」というエラーメッセージが小さく表示されていました。サイドナビが表示されていないので関連のあるテンプレートはサイドバー用のテンプレートかと思いきや、コーディングの順序でサイドバー用のコードが来る前のパンくずナビ用のテンプレートのところでエラーが発生しているのがわかりました。メッセージのとおり、MTElseIfに関係があるようなのですが、MTElseIfのクロージングタグがmissingなのかな?と思いましたが、ちゃんとクロージングタグはあるし、見たところ問題はなく、スタティックパブリッシングではOKなので余計に訳がわからなかったのですが、どうも、次に表す「駄目な例」の書き方が、ダイナミックパブリッシングでは読み込めない?ようです。スタティックではOKです。
◆駄目な例
<MTIf>
<MTElseIf>
<MTElse>
~~~
</MTElse>
</MTElseIf>
</MTIf>
◆OKな例
<MTIf>
<MTElseIf>
<MTElse>
~~~
</MTIf>
ということで、上記の「OKな例」のような記述にしたところ、問題はなくなりました。ちなみに、なぜかMTElseIfだけが問題で、MTElseの分は前の書き方のままでもOKでした。とりあえずは、今のところこの2点がスタティックパブリッシングとダイナミックパブリッシングにおける違い(?)のようです。私のテーマにおいて、の話ですが。忘れないように自分用覚書です。
- ブログトップページへ
- 次の記事: 「テキストエディタ EmEditor」
- 前の記事: 「Movable Type (MT) ダイナミックパブリッシング エラー 500 Internal Server Errorとページが見つかりません。」
- 過去記事一覧アーカイブへ
最新記事
- MTで検索タイムアウトが発生した場合
- MT7で新しいサイトを作るとき (自分用覚書)
- MT テーマのエクスポート時にファイルも選択する際、ファイル内に文字化けファイルがあるとエラー(自分用覚書)
- もしかして半身浴のお陰?花粉症の症状が出ません
- Hiromi: The Trio Project featuring Anthony Jackson
- Juneuary Weather 一気に寒く
- ローズガーデン at Burnaby Mountan
- やっとPRカード申請書を郵送
- きんぴらいなり寿司
- PRカードの更新・・!
- 今日の風景
- 5年前のちょうどこの時間帯に
- もうすぐ新年!
- ビクトリア北でM4.8の地震
- 中抜き化が進みつつある