静的ページネートが出来るスカイアーク社さんのPageButeプラグインを少し改良して、ページ内の最初のエントリーと最後のエントリーのカウント数(エントリー全体で何番目か)を表示できるようにしてみます。
は、手軽にページネートを作成することが出来るで非常に重宝しています。便利です。
しかしながら、、、ページ内で「○件目~○件目までを表示しています」みたいなことをしようとすると、どうも難しいようです。
いろいろと試してみたのですが、MTPageCountやMTPageMaxCountといった機能タグで、ページ番号は取得出来るのですが、これを使ってナイーブに現在のページの最初のエントリーのカウントを出そうとしてもうまくいきません。PageButeプラグインのソースコードを見てみると、MTPageCountやMTPageMaxCountというタグはコメント文を出力しているだけで、その後、ページファイルを書き出す段階に置き換えをしているので、MTタグが実行されている段階では数値を計算出来ないためです。
それでも、頑張ればMTタグだけでも出来るのかもしれないのですが、自分は挑戦してみたもののどうもダメだったため、PageButeプラグイン自体に同機能を追加してみました。
差分ファイル
(著作権の問題があるため、ここでは差分ファイルのみの紹介になります)
差分ファイルの使い方は、オリジナルのPageBute.pl (バージョン 3.5.6)と同じディレクトリにおいて
patch PageBute.pl < pagebute.patch
です。
上記の修正を行うと、以下の二つのタグが使えるようになります。
MTPageFirstEntryCount
MTPageLastEntryCount
それぞれ、そのページ内の最初のエントリーのカウント、最後のエントリーのカウントになります。
例えば、記事が24件あって、5件ずつ表示している場合
ページ |
最初のエントリーカウント |
最後のエントリーカウント |
1ページ目 |
1 |
5 |
2ページ目 |
6 |
10 |
3ページ目 |
11 |
15 |
4ページ目 |
16 |
20 |
5ページ目 |
21 |
24 |
のようになります。
(5ページの最後のエントリーカウントが25にならないのは、記事が全部で24件しかないためです)
MTタグで記述すると、次のようなサンプルを作ることが出来ます。
<MTPageContents count="5">
<MTEntries lastn="999">
<MTPageContentsHeader>
全エントリー数:<$mt:entriesCount$> <br />
現在のページ番号:[<$mt:pageCount$>]<br />
最大のページ番号:<$mt:pageMaxCount$> <br />
<$mt:pageFirstEntryCount$>件目~<$mt:pageLastEntryCount$>件目 <br />
<dl></MTPageContentsHeader>
<dt>タイトル:<$MTEntryTitle$></dt>
<dd>概要:<$MTEntryExcerpt$></dd>
<MTPageContentsFooter></dl></MTPageContentsFooter>
<$MTPageSeparator$>
</MTEntries>
</MTPageContents>
</mt:setVarBlock>
2013/3/7
最終更新:2013年03月07日 15:44