recently_commented_on オプションの挙動がおかしい件。
私の環境下固有の話かもしれませんが…recently_commented_on オプションの挙動がおかしいのですよ。
■環境 → レン鯖:ロリポップ MovableTypeヴァージョン:Version 3.2-ja-2 DB:SQLite
どうおかしいかというと、1年前ぐらいのエントリーに最近ついたコメントが、最近のコメント画面で表示されない。フィルターに引っかかってるのかと思ったんだけど、MTのシステム画面では公開状態になってるし、それなら、再構築が上手くいかなかったのかな?と思って再構築してみても表示されない。こりゃー、DB壊れたかなとちょっと心配になってググってみたら…こんなんありました。
→ Hiro’s Bar – B-Wiki – recently_commented_onが正しく機能しない
ふーむ。なるほど…。私、とーしろーなのでソースの意味はわからないのですが、どうもソートの順序が上手く機能しないようですね。ただ、ここに書いてあるのは PostgreSQL をバックエンドにした場合のことだけだったので、SQLiteはどうかわからんと。もうちょっと調べてみると、Lolipop+SQLite で同様の症状が生じてる人を発見。
→ Everyday, “Albi”day: recently_commented_onの挙動不審について
という事は、DB が壊れてるわけじゃないのねと一安心。じゃぁ、このままにしとくか…ていうのも何か気持ち悪いので、ソースを書き換えようかとも思ったけど、そんなスキルも無い。仕方ないから、今回の 3.2-ja → 3.2-ja-2 へのヴァージョンアップで変更された、recently_commented_on を扱うファイル /lib/MT/Template/ContextHandlers.pm を 3.2-ja のファイルへ差し替え。無事表示されました。(笑)
元々、3.2-ja-2 のリリースは、Berkeley DBの環境下での3.2の不具合を修正したもので、それに加えてrecently_commented_onの処理を見直し、パフォーマンスが低下していた現象を修正したらしいので、Berkeley DB を使用していないのであれば、無理してあげる必要なかったんですよねぇ…。
エディタで 3.2-ja と 3.2-ja-2 の ContextHandlers.pm の内容比較してみたんだけど、873行目あたりから違ってたので、誰かいじれる人、チャレンジしてくらさい。(人任せ:笑)
recently_commented_onを実際テンプレートの中でどのように利用しているのでしょうか。
もしかしたらlastnやdaysと併用していませんでしょうか。
>ogawaさん
こんばんわ。
わざわざコメントいただいて恐縮です。
おっしゃるとおり、<MTComments lastn=”5″>と併用してますぅ。こいつが原因なんでしょうか?
そうです。lastnとrecently_commented_onを同時に指定すると後者を無視するというのが仕様です。3.2-jaだけがたまたま例外的に可能だったというだけです。
>ogawaさん
あちゃー、そうだったのですねぇ。直しときます。ありがとうございました。
こんばんは。
情報ありがとうございました。
テンプレート修正しなければ…。
>yujiroさん
仕様だからしようがないですなー。(笑)
■最近のコメントバグ-shiftMT-08
某月某日。 サイドバーに表示される「最近のコメント」表示がおかしい。 PHP化で…