Main Contents

Feb 24 2006

■最近のコメントバグ-shiftMT-08

某月某日。
サイドバーに表示される「最近のコメント」表示がおかしい。

PHP化で、どのページにも同じ内容が表示されるようにはなったが、
古い記事についたコメントが表示されない。

ググる。
見つける。バグがあるらしい。

MTタグ <MTEntries recently_commented_on="5">
“MTEntries”がここからエントリのことを書きますよ!タグで、
“recently_commented_on”が、最近コメントがついた5個だけという意味。

この“recently_commented_on”がクセ者。

続きは↓ココから↓

最近のコメントを表示しようと思うと、
全てのエントリーから最近ついたコメントを探す必要がある。
その為にデータベースを使うのだが、その探す方法にバグがあるらしい。

なので、データベースによって対処が違う上に、
MTのバージョンによっても状況が違う。

現在使っている3.2J-2は、3.2Jのバグ修正版。
そのバグが“recently_commented_on”だったらしいのだけど、
直ってないっぽい。

結論から言うと、今でもうちでは直っていません・・・orz
方法がいくつか紹介されていたので、Linkだけしておきます。

(2006.03.06追記) 下記方法で修正できました。

/lib/MT/Template/ContextHandlers.pm の
867行目

if (MT::ConfigMgr->instance()->ObjectDriver !~ /postgres|sqlite/)
884行目
&& MT::ConfigMgr->instance()->ObjectDriver =~ /postgres|sqlite/)
のように太字部分を追加すると直りました。

これはMovableTypeで行こう!: MT3.2+SQLiteでrecently_commented_onがうまく働かない問題さんで紹介されている方法なのですが、この修正箇所が867行目にもあるのを見つけ、修正したら直ったって訳です。

下記リンクは、参考までに残しておきます。




我楽: recently_commented_on オプションの挙動がおかしい件。

↑まったく同じ環境なので期待したのですが、修正方法が

recently_commented_on を扱うファイル /lib/MT/Template/ContextHandlers.pm を 3.2-ja のファイルへ差し替え。無事表示されました。(笑)
3.2-ja持ってないので出来ず…。
“recently_commented_on”の修正の為の3.2-ja-2じゃないの?

これで判ったのは、“recently_commented_on”というコマンドは
/lib/MT/Template/ContextHandlers.pm にある内容を実行するらしい。
この内容にバグがあるので、挙動がおかしいと。

MT 3.2でrecently_commented_onとBerkeleyDBに嵌っている人が多い件について - Ogawa::Memoranda

↑BerkeleyDBを使っているなら、パッチあり。
“recently_commented_on”の動きが解説してあるので、必見。
ちなみに「嵌っている」はハマっている と読む^^

Hiro's Bar - B-Wiki - recently_commented_onが正しく機能しない

↑PostgreSQLを使っているならば、直るそうです。

■TrackBacks

注:スパム対策の為、管理者確認後に表示されます

TrackBacks URL :

MT3.2 ようやく導入 from clover

本日ようやく,MT3.2へのバージョンアップに成功しました☆ 去年の10/23に挫折してから・・・半年以上ですか。 まー忙しくってそれどころじゃなかったっ...


■Comments

はじめまして。
CubeクロックをBlogに使わせてもらっています。
2度コメント欄に書き込みをしたのですが、書き込み直後は反映されているように見えているのに、翌日になると何故かコメントが消えていました。

このCubeClockはシンプルで表示が軽いのが気に入っています。
立方体の動きも、見ていて心が和みます。
Blogのトップに置かせてもらいました。
カスタムの方法も紹介していただいているので、いずれは色を変えたりもしてみたいと思っています。

■MOMO さん
ちゃんと、コメント反映されていますよ。


■Post a comment

(Moo-t.blog では不適切なコメントを防止するため、コメントを掲載する前に管理者がコメントの内容を確認しています。コメントを初めて投稿する場合すぐに掲載されませんが、管理者が適切なコメントと判断した場合コメントは直ちに表示されますので、再度コメントを投稿する必要はありません。)

コメントフォーム