Movable Typeを「3.2日本語版 Release-2」にアップグレードした。
事前にデータベースをSQLiteにしておいたこともあり、アップグレード自体は非常にスムーズに行った。
ダウンロードしてきた「3.2日本語版 Release-2」を解凍後、mt-config.cgiの変更。さらに自分で手を加えていたCMS.pmとTrackback.pmに、必要な変更を行った。そして、説明の手順通りにサーバーにアップロードして、パーミッションの変更後にmt.cgiを実行する。すると、新しくなった管理画面が現れた!
最後に、全体を再構築してアップデート完了。
一応すべてバックアップを取っておいたとはいえ、再構築が終わるまではちょっとドキドキした。
再構築にかかる時間は多少短くなったように感じたが、計ったわけではないので、気のせいかも(笑)
で、ここまではよかったのだが。
しかーし!
「最近のコメント」の動向がおかしい!
新しくコメントがついた記事が上に表示されるようにしてあるのに、ソートされてこないのだ。
あれこれテスト投稿して動向を調べたところ、どうも「最後のコメント」の投稿時刻順ではなくて、そのエントリーについた「最初のコメント」の投稿時刻順でソートされているようだ。
今回のアップデートでは「recently_commented_onの処理を見直し、パフォーマンスが低下していた現象を修正」とあるので、この処理になんらかの手が加えられたことは間違いないのだが、私と同じような症状が出ている人はいないようで、ネットをあさっても情報が見つからない。
泣く泣く自力で解決策を探すことにした。
前回のリリースとは、5つの差分ファイルがあるとのことだった。おそらくそこに解決策があるだろうと踏んで、スクリプト内に「recently_commented_on」関連の記述があるものを探す。すると、「ContextHandlers.pm」なるファイルにそれらしい記述が見つかった。
そのあたりをじーっと見つめていると・・・
どうも、並べ替えの条件のところが、Postgresの場合しか指定されていないような・・・希ガス
自信はなかったけど、883行目あたりを書き換えてみる。
具体的には、ifの条件文から「&& MT::ConfigMgr->instance()->ObjectDriver =~ /postgres/」を削除してやる。
@entries = MT::Entry->load(\%terms, \%args);
if ($args->{recently_commented_on}
&& MT::ConfigMgr->instance()->ObjectDriver =~ /postgres/) {
my @e = sort {$b->comment_latest->created_on <=> $a->comment_latest->created_on}
@entries;
@entries = splice(@e, 0, $args->{recently_commented_on});
$no_resort = 1;
}
これで再構築してみると、あっ、思ったように並びが変わってる!成功、成功!
とりあえずはうまく行ったのだけれど、素人作業なので、今後他のところに影響が出ないか、ちょっと心配。
本当は866?875行目あたりで並べ替えされているような気もするんだが、んーちょっと知識不足で・・・。
それに、これは私に固有の問題なのか、それともSQLite+3.2-ja-2に共通の問題なのかがよく分からない。
他の人は、何ともないんだろうかしら・・・?
【追記】recently_commented_onの挙動不審について
はじめまして。実は私も昨日Version Upしたところ、同じ症状に悩まされ、解決策を探して、six apartから飛んできました。
ちなみにサーバーはロリポップで、dbはSQ Liteに移行したばかりです。
早速参考にさせていただきます。
>47thさん
コメントありがとうございます。
自分だけじゃないと分かって、少しほっとしました(苦笑)
データベースの変換を何度かやったので、データベース自体がおかしくなってるのかなとか、心配だったものですから・・・
私もサーバーはロリポで、dbも今回バークレーからSQLiteに変換したので、環境としてはほとんど同じですね。
こういう環境の人に共通の現象であるとしたら、問題はロリポのサーバーの方にあるのかも、と思ったりします。もう少し情報が集まるといいのですが。
引き続きエントリーを書きましたのでご参照ください。
MovableTypeで行こう!さんのコメント欄に書き込んだ者です。あそこに書いた時には正常な表示でインストールされたと理解しましたが、その後おかしな点が発見されました。全部点検してから書くべきでしたね。
こちら様のケースとはいささか違うのですが、コメント欄をクリックすると一応表示はされますが、全体の文字フォント・枠欄などが大きく表示されるようになりました。全体の幅700pxは変化しておりません。
読めないことはないのですが、みっともない書式になっています。アーカイブ・カテゴリーなどのクリックによる表示は問題ありません。サーバーはロリポで、MySQLを使用しています。
試してみるべき事項などありましたらご教示下さい。
渚さん、書き込みありがとございました。
実はご指摘があるまで問題に気がついていませんでした(゚Д゚;)
渚さんのエントリーにあるように修正したところ
きちんと表示されるようになりました。
当方はロリポップ+SQLiteです。
>KYOさま
こちらこそ、突然失礼しましたm(_ _)m
どこかに同じような症状の人がいないかと、コメントやトラバあさりをしていたもので(苦笑)
私もロリポップ+SQLiteです。ロリポの問題なのか、MTの側の問題なのか、いまいちよく分からなくて悩んでいます。どっちに話をもっていけばいいものやら。
>ハマの住人さま
同じような質問がロリポの助け合い掲示板に掲載されていましたから、そちらを参照されてはどうですか?
MT3.2へ移行した後の話
まだ終わってないのかよ!と言うツッコミがあちらこちらから聞こえてきそうですが。 今までのアップグレー…
こちらでは何もいじっていないのに、最近になって再び、「最近のコメント」の表示がおかしくなっていることに気づきました(reoが新しくコメントしてくれたのに、そのエントリーが最上位に表示されない・・・)。なんでだーー!!?
あれこれ悩んだけど、結局、MTデフォルトの「recently_commented_on」を使うのを止めて、別のプラグインを導入して解決することにしました。
「小粋空間」さんの「MTCollate を使って「最近のコメント」を表示する」を利用させてもらうことにします。
http://www.koikikukan.com/archives/cat_77.php#