ページ分割プラグイン(Perl版ダイナミック・パブリッシング専用)・その1

先日、Perlでダイナミック・パブリッシングを行う方法を紹介しましたが、それ用のページ分割プラグインを作りましたので公開します。
エントリーを一定の件数ずつ表示し、前後のページへ移動できるようにするものです。

導入の手順は以下の通りです。

1.プラグインのダウンロードとインストール

まず、以下のリンクをクリックしてプラグインのZipファイルをダウンロードします。

プラグインのダウンロード

Zipファイルを解凍すると、「DivPages」というフォルダができます。 そのフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

2.MTDivPagesInitタグの追加

ページ分割を行いたいテンプレートで、その先頭に<$MTDivPagesInit per_page="n"$>のタグを追加します。
「per_page="n"」の部分で、1ページあたりに表示するエントリーの数を指定します。例えば、1ページあたり5件のエントリーを表示するには、「per_page="5"」にします。
なお、「per_page="n"」を省略すると、1ページあたり10件ずつエントリーを出力します。

3.MTEntriesタグの書き換え

テンプレートの中で、エントリーの一覧を出力する部分を探します。
そして、その先頭の「<MTEntries ・・・>」のタグを「<MTEntriesDivPages ・・・>」に書き換えます。
また、最後の「</MTEntries>」を「</MTEntriesDivPages>」に書き換えます。

4.ページ移動リンクを作る

最後に、ページを移動するためのリンクを作ります。エントリー一覧の直後あたりに入れると良いでしょう。
例えば、以下のようなタグを入れると、先頭/最後/前/次ページへのリンクと、ページ番号で移動先を選ぶリストボックスが表示されます。

<MTDivPagesIfMulti>
<form id="page_sel" name="page_sel" action="get">
<div>
<MTDivPagesIfPrevPage><a href="<$MTDivPagesFirstPageLink$>">先頭ページ</a>|<a href="<$MTDivPagesPrevPageLink$>">前のページ</a>|</MTDivPagesIfPrevPage>
<select name="page_num" onchange="location.href='<$MTDivPagesCurPageLink mode="relative"$>?page=' + document.page_sel.page_num.value;">
<MTDivPagesLoop all="1">
  <option value="<$MTDivPagesNumber$>"<MTDivPagesIfCurPage> selected="selected"</MTDivPagesIfCurPage>><$MTDivPagesNumber$></option>
</MTDivPagesLoop>
</select>ページ/<$MTDivPagesCount$>ページ
<MTDivPagesIfNextPage>|<a href="<$MTDivPagesNextPageLink$>">次のページ</a>|<a href="<$MTDivPagesLastPageLink$>">最終ページ</a></MTDivPagesIfNextPage>
</div>
</form>
</MTDivPagesIfMulti>

なお、このプラグインで追加されるタグについては、次回以降のエントリーで解説します。