« 重複トラックバックのフィルタリング | メイン | コメント/トラックバックスパム対策 »

2005年12月13日

TOPページの分割 [MovableType]

ひとつ前へのリンク では MTEntriesFooterとMTEntryPreviousで
「ひとつ前のページへ」を実現していたが、
これだとindexに5件+過去1件ずつ、という閲覧形式になってしまう。
過去5件なら5件分まとめてダラダラと読みたいわけで、
そこでまたMTPagenateの出番ですよ。

※すでにMTPaginateプラグインが導入されていることが前提
まだの人はここを読め → http://nonchan.web.infoseek.co.jp/cgi-bin/blog/archives/2005/04/22/index.php

weblogの設定変更
ローカルサイトパスをHOME/cgi-bin/mt に変更

iswebではCGIファイルは/cgi-bin以下にないと動作しないため、
index.cgi の位置を/cgi-bin/mtにする。この設定をmt.cgiで行う。

インデックステンプレートの改造
・拡張子をcgiにする(.phpではないところがミソ)
・先頭に#!/usr/local/bin/phpをいれる(iswebではこの措置が必要)
・エントリー表示部分に以下のような細工をいれる

<MTEntries lastn="5">

メイン記事部分の始まり(before)

<MTPaginate>
<MTPaginateContent max_sections="5">
<MTEntries lastn="20">

5件ずつ4ページ、合計20件になるよう宣言

テンプレートエンド付近にある</MTEntries>は以下のように書き換え。

<$MTPaginateSectionBreak>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<MTPaginateIfFirstPage_>
<$MTPaginateNavigator format_current="%d">
| <a href="<$MTPaginateNextPageLink$>">次ページ»</a>
</MTPaginateIfFirstPage_>
<MTPaginateIfMiddlePage_>
<a href="<$MTPaginatePreviousPageLink$>">«前ページ</a>
| <$MTPaginateNavigator format_current="%d"> |
<a href="<$MTPaginateNextPageLink$>">次ページ»</a>
</MTPaginateIfMiddlePage_>
<MTPaginateIfLastPage_>
<a href="<$MTPaginatePreviousPageLink$>">«前ページ</a>
|<$MTPaginateNavigator format_current="%d">
</MTPaginateIfLastPage_>
</MTPaginateIfMultiplePages>
</MTPaginate>

これでindexのボトム付近には
 が現れ、
ページナビゲーションをしてくれるようになる。

1ページあたり何件のエントリーをいれるかは
MTPaginateContent max_sections="5"の数字で指定し、
全体で何件にするかはMTEntries lastn="20"の数字で指定する

ただ、index.cgiとしてのサイズは大きくなるので、
20件以上のエントリをいれるのはお勧めしない。
エントリーのサイズにもよるがサーバーエラー頻発するかも。

isweb_htaccessの書き換え
これをやっておかないと、index.htmlにアクセスされたときに自動で新しいページ分割されたindex.cgiに飛ばない

RedirectMatch /index.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/index.cgi

ちなみにσ(゚∀゚ オレ!!の場合アーカイブページも分割しているので、isweb_htaccessの内容は
こんな感じだ。

RedirectMatch /mt/archives/(.*)\.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/archives/$1.cgi
RedirectMatch /index.html$ http://delta-j.web.infoseek.co.jp/cgi-bin/mt/index.cgi


by Daryl 2005年12月13日 18:16 | Permalink

トラックバック

このエントリーのトラックバックURL:
http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt-tb.cgi/331

このリストは、次のエントリーを参照しています: TOPページの分割:

» ページの分割とGoogle Custom Search化 from ところによりエンジニア
以前からチャレンジしてみたいと考えていた、ページの分割化にトライしました。今まで... [続きを読む]

トラックバック時刻: 2007年04月18日 13:13

» Movable Typeのページ分割 from ところによりエンジニア
以前からチャレンジしてみたいと考えていた、ページの分割化にトライしました。今まで... [続きを読む]

トラックバック時刻: 2007年04月18日 23:42

コメント

コメントしてください




保存しますか?