2008
09/18
MT4.2を弄ってたんだけど、ダイナミックパブリッシングにするとコメント周りにエラーが出る。
4.1で使ってるテンプレをそのまま使ってるのにエラー。
イヤになって数日放置
放置し続ける・・・わけにもいかないので原因を調査してみた。
以下備忘録。
エラーの内容としては、エントリーアーカイブでコメントの付いてる記事を表示させると
Smarty error: [plugin] modifier '0' is not implemented (core.load_plugins.php, line 118)
ってなエラーが出て、システムテンプレートのダイナミックパブリッシングエラーが丸ごと<$MTCommentBody$>部分に出てきてしまい、表示が無惨な姿になってしまう。
最初、わけがわからんかったのだがブログ記事リストは問題ないので、コメント周りと判断
ちなみにスタティックに変えてやると問題ナシ
おそらく、ダイナミックをCGI版でやれば大丈夫な気がしたんだけど、それでは根本解決にならないので却下
最終的にテンプレから<$MTCommentBody$>を消したら正しく出るのでコイツが原因と特定。
<$MTCommentBody$>とダイナミックパブリッシング、MT4.2辺りでググってみると
ダイナミックパブリッシングに移行(新規じゃなくてね)する場合に、一番問題になるのが「改行設定」・・・とasiamothさんも書いている
---中略---
つまりプラグインが使えない事により、一番困るのが「改行変換」のプラグインが使えなくなる事なのだ。大抵はみんな改行フィルタを試しているはず。
このサイトでも壱さんの「改良改行フィルター」をデフォルトとして使っていたのですが、ダイナミックパブリッシング化でこのプラグインが使用できなくなります。
ただし、これには幾つか抜け道があるので、上手にテンプレートを組み上げられるなら、このプラグインの使用も可能です。
まず、Perl版ダイナミックパブリッシングなら、改行設定プラグインも使用可能である点。
動的に更新は行われるが、リビルドはCGIが行うので問題ありません。それから改行設定が有効になる部分が、エントリーとコメントの中のみだという点です。
つまり<$MTEntryBody$><$MTEntryMore$>それと<$MTCommentBody$>が使われているテンプレートをダイナミックにしなければ、問題は発生しないという点です。このタグが含まれる部分をモジュールとして作成し、外部ファイルとして読み込む場合には、改行設定のプラグインを使用したままでも、ダイナミックパブリッシングにする事ができます。
WolaWola-ダイナミックパブリッシングへの道(2):改行設定
で、コメント設定の「テキストフォーマット」部分を見てみる・・・「なし」に設定してあるよ??
「なし」だから変換してないんだけどなぁ、と思いつつ他のに変えてみる
「改行を変換」にすると綺麗に直りましたとさ。ちゃんちゃん。
ちなみに「なし」以外どれも問題なかった・・・orz
なんで「なし」になってたのかは記憶にございませんw
ちなみにMT4.1のサイトで試してみたけど、「なし」にしてもちゃんと表示されてますがな(もちろん改行は変換されないけど)
つまらんことに時間を費やしてしまった・・・orz

トラックバックurl
| ホームへ |