2009年11月 3日

PageButeプラグインでページを分割

1000エントリー近くあるこのブログの過去エントリーにアクセスする目的もかねてページ分割しました。
以前は、MTPaginateプラグインというものを使っていましたが、Pagebuteプラグインは、PHP化せずにページ分割が出来る事や、MTPaginateはMT4ではうまく動かない時があるようなので、こちらのプラグインを使いました。

参考記事;

静的ページ用ページ分割プラグイン:PageBute

ページナビのリンク数を変更できる:PageBute

PageBute プラグインによるページ分割
ここでの記事数設定は、Pagebuteよりも優先されるため、ここの数字を調整しないとPagebuteは期待通りの動作をしません。ここで5と設定されている場合、いくらPagebuteで10件ごとにページ送りを指定しても、効力を発揮しないのです。0や9999に設定することによって、Pagebuteの設定件数が有効になります。


ココで問題発生。
記事数設定を0とか9999にすると再構築時にエラーが出てきます。どうもデータベースがSQLiteの場合に発生する可能性があるようです。
という事で今度はデータベースをMySQLに変えなくてはと思っています。

再構築時にエラーが表示される不具合 ←リンク切れです。


【追記】2011年10月8日
上記のエラーは、記事数の分割処理によって解決しました。
MT 全記事表示の再構築時のエラー


とはいえ、カスタマイズなどは結構やりやすかったです。


【当サイトの関連エントリー】
Topページの分割表示

続きは導入の為のカスタマイズ用メモです。




PagebuteプラグインファイルをPluginフォルダーにアップロードした後、
以下のテンプレートを変更。赤色の部分を追加、変更します。

メインページテンプレート:

<div id="content"> <div class="blog">

<mt:pageContents count="20" navi_count="9">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<mt:pageSeparator />
</mt:entries>

</mt:pageContents>
<div class="pagebute">
<MTIfPageFirst>
<span><$MTPageFirst delim="FIRST"$></span>
</MTIfPageFirst>
<mt:ifPageBefore>
<span><$MTPageBefore delim="PREV"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
<span><mt:pageNext delim="NEXT" /></span>
</mt:ifPageNext>
<MTIfPageLast>
<span><$MTPageLast delim="LAST"$></span>
</MTIfPageLast>
</div>

</div>
</div>


ブログ記事リスト:


<div class="content-nav">
<mt:archivePrevious>
<a href="<mt:ArchiveLink />">&laquo; <mt:archiveTitle /></a> |
</mt:archivePrevious>
<a href="<mt:Link template="main_index" />">Main</a>
<mt:archiveNext>
| <a href="<mt:ArchiveLink />"><mt:archiveTitle /> &raquo;</a>
</mt:archiveNext>
</div>

<mt:if name="datebased_archive">
<mt:pageContents count="20" navi_count="9">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<mt:pageSeparator />
</mt:entries>
</mt:pageContents>
<mt:else>
<mt:pageContents count="20" navi_count="9">
<mt:entries  limit="auto">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<mt:pageSeparator />
</mt:entries>
</mt:pageContents>
</mt:if>

</mt:pageContents>
<div class="pagebute">
<MTIfPageFirst>
<span><$MTPageFirst delim="FIRST"$></span>
</MTIfPageFirst>
<mt:ifPageBefore>
<span><$MTPageBefore delim="PREV"$></span>
</mt:ifPageBefore>
<mt:pageLists />
<mt:ifPageNext>
<span><mt:pageNext delim="NEXT" /></span>
</mt:ifPageNext>
<MTIfPageLast>
<span><$MTPageLast delim="LAST"$></span>
</MTIfPageLast>
</div>

</div>
</div>


スタイルシートに以下を追加。

/* PageBute */
.pagebute{
margin: 10px;
text-align: center;
font-size: 83.3%;
}
.pagebute a {
padding: 2px 2px;
color: #fff;
background: #337700;
}
.pagebute hover {
padding: 2px 2px;
color: #fff;
text-decoration: none;
background: #000;
}




当サイトの関連記事

Bookmarks

  はてなブックマーク - PageButeプラグインでページを分割   

トラックバックURL

このエントリーのトラックバックURL:
http://herethere.cressel.com/mt4/mt-tb.cgi/1165

コメントする


お詫び:コメント投稿後に反映まで時間がかかったり、
エラーが表示される事がありますが殆どの場合正常に投稿されます。
暫く待って、INTERNAL SERVER ERROR等が表示された場合、
そのままブラウザーの「戻る」ボタンで前の画面に戻ってください。
コメントは正常に投稿されているはずです。