静的ページネートが出来るスカイアーク社さんの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