リスト系アーカイブの静的ファイルを分割するMT Pagerプラグイン(修正)。

| コメント(2) | トラックバック(0)

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値を書き換えるってどうよ

なので、書き直すかもしれないけれど、まぁ晒しておきます。やっぱりカスタムなアーカイブタイプとして登録するのが良いのかなぁ。

Download:

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/94

コメント(2)

これはいいですね!
もうちょっと早ければ使えたのに・・・っと思って歯噛みしてます。

なんで、来週あたり下期で導入するように押し売りってこようかな~と
思ったり、思わなかったり。。。

インストール方法をおしえてください

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2008年4月18日 21:11に書いたブログ記事です。

ひとつ前のブログ記事は「Movable TypeをMySQLで運用している際に文字コードShift_JISで発生する問題。」です。

次のブログ記事は「Movable Typeの不正ログイン対策。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.2.6