リスト系アーカイブの静的ファイルを分割するMT Pagerプラグイン(修正)。
公開日 : 2008-04-18 21:11:45
4月18日修正しました。
イケてる、イケテないどころじゃなくて、インデックス・アーカイブでは動かないのとページ送り部分におかしなところがあったので修正/差し替えしました。
実装面で新たに以下の修正をあわせて行いました。
- フィルターコールバックに対応させたので、build_pageコールバックプラグイン等の処理が反映されるようになった。
- <MTIfPagerCurrent>タグの追加。ページ送りの部分で現在のページと一致するところのリンクを外したりが簡単。
イケてないところは以下に書いていますが、多分MTPagenateとか他の同類のものよりは比較的素直な実装じゃないかと(PHPにしなくていいし区切り文字入れて分割とかしてないし、カウンタ値とかも素直に出るはずだしbuild_pageコールバックのプラグインも使えるし、何よりページ送りの部分のタグの書き方が素直だと思う)。
Download:
ページ送り部分のタグは例えば以下のような感じで書けるようになりました。
<MTPager>
<MTIfPagerHeader>
Page <MTPagerCurrent> of <MTPagerTotal>
<MTIfPagerPrev><a href="<MTPagerPrevLink>">Prev</a></MTIfPagerPrev>
</MTIfPagerHeader>
<MTIfPagerCurrent>
<strong>[<MTPagerCounter>]</strong>
<MTElse>
[<a href="<MTPagerLink>"><MTPagerCounter></a>]
</MTIfPagerCurrent>
<MTIfPagerFooter>
<MTIfPagerNext><a href="<MTPagerNextLink>">Next</a></MTIfPagerNext>
</MTIfPagerFooter>
</MTPager>
<MTEntries offset="0" limit="20">
<MTIgnore>Some Template Tags Here.</MTIgnore>
</MTEntries>
なので...以下、忘れてください w
イケてない。イケてないけど勢いで書いたので晒しておく。テストもあんまりしてないです。
以下のようなテンプレートを書く。インデックステンプレートもしくはブログ記事リスト系のアーカイブでのみ有効。
<MTPager>
<MTIfPagerHeader>
Page <MTPagerCurrent> of <MTPagerTotal>
<MTIfPagerPrev><a href="<MTPagerPrevLink>">Prev</a></MTIfPagerPrev>
</MTIfPagerHeader>
[<a href="<MTPagerLink>"><MTPagerCounter></a>]
<MTIfPagerFooter>
<MTIfPagerNext><a href="<MTPagerNextLink>">Next</a></MTIfPagerNext>
</MTIfPagerFooter>
</MTPager>
<MTEntries offset="0" limit="20">
<MTIgnore>Some Template Tags Here.</MTIgnore>
</MTEntries>
MTEntriesにlimit=分割したい単位の数字, offset=0を指定する。でもって「このアーカイブを分割する」チェックボックスにチェックを入れる。
以下のようにページ送りが表示されて、ページが分割される。
でも気に入らない。イケテない。イケてないのは、
分割されたページの再構築時にbuild_file_filterとかbuild_pageコールバックが呼ばれない(即ちWeblogPublisherにbuildさせていない)(対応済)fileinfoテーブルに保存されない(対応済)- ファイル名が「_」+ナンバーで、固定
- MTEntriesタグでないと駄目で、且つ1テンプレートに分割の条件は1つだけ
- そもそも正規表現でoffset値を書き換えるってどうよ
なので、書き直すかもしれないけれど、まぁ晒しておきます。やっぱりカスタムなアーカイブタイプとして登録するのが良いのかなぁ。