[[トップページ]] > [[MT]] > PageButeプラグインの改良 静的ページネートが出来るスカイアーク社さんのPageButeプラグインを少し改良して、ページ内の最初のエントリーと最後のエントリーのカウント数(エントリー全体で何番目か)を表示できるようにしてみます。 スカイアーク社さんのPageButeプラグイン http://www.skyarc.co.jp/engineerblog/entry/2642.html http://www.skyarc.co.jp/engineerblog/entry/pagebute356.html は、手軽にページネートを作成することが出来るで非常に重宝しています。便利です。 しかしながら、、、ページ内で「○件目~○件目までを表示しています」みたいなことをしようとすると、どうも難しいようです。 いろいろと試してみたのですが、MTPageCountやMTPageMaxCountといった機能タグで、ページ番号は取得出来るのですが、これを使ってナイーブに現在のページの最初のエントリーのカウントを出そうとしてもうまくいきません。PageButeプラグインのソースコードを見てみると、MTPageCountやMTPageMaxCountというタグはコメント文を出力しているだけで、その後、ページファイルを書き出す段階に置き換えをしているので、MTタグが実行されている段階では数値を計算出来ないためです。 それでも、頑張ればMTタグだけでも出来るのかもしれないのですが、自分は挑戦してみたもののどうもダメだったため、PageButeプラグイン自体に同機能を追加してみました。[[差分ファイル>http://www19.atwiki.jp/knight_9999?cmd=upload&act=open&pageid=28&file=pagebute.patch]] (著作権の問題があるため、ここでは差分ファイルのみの紹介になります) 差分ファイルの使い方は、オリジナルの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