Movable Type 4.2でキャッシュ付きダイナミックパブリッシングでのページ分割 Movable Type 4.2でキャッシュ付きダイナミックパブリッシングでのページ分割

| | コメント(0) | トラックバック(0) はてなブックマークへ追加このエントリーのはてなブックマーク数 Buzzurlへ追加このエントリーのBuzzurlブックマーク数 livedoorクリップへ追加このエントリーのlivedoorクリップ数 Yahoo!ブックマークへ追加人が登録 add to del.icio.us add to Reddit

長いタイトルになってしまったが、
MT4.2のダイナミックパブリッシングでのページ分割の続き。

ダイナミックパブリッシングでのページ分割
http://www.movabletype.jp/documentation/designer/pagination.html

をやってPagerに対応したものの、ダイナミックパブリッシングのキャッシュがONになっていると2ページ目を表示しても1ページのキャッシュが表示されてしまうという問題があります。

つーわけで、cacheidにPagerを意識させてみた。

修正するのはmt/php/mt.php

ちなみにphp/lib/MTViewer.phpがsmartyの派生クラスで、こいつがmt/php/mt.phpから呼ばれる。

mt.phpの523行目あたりを見ると、MTクラスのviewメソッドにおいて、MTViewer、すなわちsmartyに渡すcacheidが次のようになっている。
$cache_id = $blog_id.';'.$fi_path;

$fi_pathをつくるときにクエリストリングなどはきれいに除去されてしまっているので、ここにさらにlimitとoffsetを追加すればよい。

// 修正前
$cache_id = $blog_id.';'.$fi_path;
// 修正後
$cache_id = $blog_id.';'.$fi_path;
if (isset($_REQUEST['limit']) || isset($_REQUEST['offset'])) {
  $cache_id .= ":".$_REQUEST['limit'].":".$_REQUEST['offset'];
}

たくさんページキャッシュができてしまうのが場合によっては問題。ファイルサイズの問題もあれば、ファイル数の問題もある。適当にキャッシュディレクトリを散らしたいところ。

しかし、ページキャッシュあると速いわ。なんか知らんがMT4に移行したときにページキャッシュがオフになってしまっていたので、なおさら速く感じる。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: Movable Type 4.2でキャッシュ付きダイナミックパブリッシングでのページ分割

このブログ記事に対するトラックバックURL: http://blog.makotokw.com/mt/mt-tb.cgi/2996

コメントする

Twitter

WALKMAN.LOG

このブログ記事について

このページは、makoto_kwがAugust 26, 2008 9:56 PMに書いたブログ記事です。

ひとつ前のブログ記事は「MT4.2のダイナミックパブリッシングでのページ分割」です。

次のブログ記事は「2008/08/26のtwilog」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。