SplitPage プラグインは、静的出力ページを分割する機能を提供する別売りのプラグインです。
元々用意されている記事モデル・ページモデルだけでなく、自作したモデルのオブジェクト一覧ページの分割出力ができます。
また、Abs2Relプラグインのようなパブリッシュの過程でHTMLのソースを書き換えるプラグインとの併用にも対応しています。
静的出力だけでなく静的(遅延)・オンデマンド・キューにも対応しています。
またPowerCMS Xのパブリッシュ仕様に準拠しており、分割出力したページについてもURLオブジェクトを生成・管理するのでゴミファイルが残りません。
といったカスタマイズも自由自在に行えます。
_split="1"
を記述します。(例:<mt:entries _split="1"></mt:entries>
)前後のページに移動するページャーリンクは以下のようなテンプレートになります。mt:pager
に nums="5"
のように nums
属性を指定すると、数字のリンクが指定の数だけ表⽰されます。( nums
属性値は3,5,7などの奇数にしてください。)
<mt:pager>
<mt:if name="__first__">
<ul>
<mt:ifpagerprev>
<li><a href="<mt:pagerprevlink escape />">‹ 前のページ</a></li>
</mt:ifpagerprev>
</mt:if>
<li>
<mt:ifpagercurrent>
<em><mt:pagercounter></em>
<mt:else>
<a href="<mt:pagerlink escape />"><mt:pagercounter /></a>
</mt:ifpagercurrent>
</li>
<mt:if name="__last__">
<mt:ifpagernext>
<li><a href="<mt:pagernextlink escape />">› 次のページ</a></li>
</mt:ifpagernext>
</ul>
</mt:if>
</mt:pager>
Yahoo! JAPANのような⾼度なページャーリンクも作成できます。
<mt:pager nums="5">
<mt:if name="__first__">
<ul>
<mt:ifpagerprev>
<li><a href="<mt:pagerprevlink escape />">‹ 前のページ</a></li>
</mt:ifpagerprev>
<mt:ifpagerfirst>
<li><a href="<mt:pagerfirstlink escape />">1</a></li>
<mt:pagercounter decrement="1" setvar="__prev_page__" />
<mt:if name="__prev_page__" ne="1">
<li>...</li>
</mt:if>
</mt:ifpagerfirst>
</mt:if>
<li>
<mt:ifpagercurrent>
<em><mt:pagercounter></em>
<mt:else>
<a href="<mt:pagerlink escape />"><mt:pagercounter /></a>
</mt:ifpagercurrent>
</li>
<mt:if name="__last__">
<mt:ifpagerlast>
<mt:pagercounter increment="1" setvar="__next_page__" />
<mt:pagerlastnumber setvar="__last_page__" />
<mt:if name="__next_page__" ne="$__last_page__">
<li>...</li>
</mt:if>
<li><a href="<mt:pagerlastlink escape />"><mt:pagerlastnumber /></a></li>
</mt:ifpagerlast>
<mt:ifpagernext>
<li><a href="<mt:pagernextlink escape />">› 次のページ</a></li>
</mt:ifpagernext>
</ul>
</mt:if>
</mt:pager>
setcontext
や referencedobjects
タグには _split="1"
を付けることができません。
setcontext
タグの場合は、 setcontext
タグの中に記述する entries
や pages
のようなオブジェクトを⼀覧表⽰するタグに _split="1"
を付与します。referencedobjects
タグの場合は⼀旦オブジェクトのIDを変数に格納し、それを entries
や pages
のようなオブジェクトを⼀覧表⽰するタグに渡しつつ _split="1"
を付与します。タグ | 種別 | 解説 |
---|---|---|
mt:pager | ブロック | ページャーリンクを出⼒します。 |
mt:ifpagerfirst | ブロック | 1ページ⽬の時にブロックが評価されます。 |
mt:ifpagercurrent | ブロック | 現在のページの時にブロックが評価されます。 |
mt:ifpagerlast | ブロック | 最後のページの時にブロックが評価されます。 |
mt:ifpagerprev | ブロック | 前のページが存在する時にブロックが評価されます。 |
mt:ifpagernext | ブロック | 次のページが存在する時にブロックが評価されます。 |
mt:pagerfirstlink | ファンクション | 1ページ⽬のURLを出⼒します。 |
mt:pagerlastlink | ファンクション | 最後のページのURLを出⼒します。 |
mt:pagerprevlink | ファンクション | 前のページのURLを出⼒します。 |
mt:pagernextlink | ファンクション | 次のページのURLを出⼒します。 |
mt:pagercounter | ファンクション | ページ数を出⼒します。 |
mt:pagerlink | ファンクション | ページへのリンクを出⼒します。 |
mt:pagerlastnumber | ファンクション | 最後のページ数を出⼒します。 |
変数 | 解説 |
---|---|
total_pages | 総ページ数 |
object_count | オブジェクトの総数 |
current_page | 現在のページ数 |
pagination_limit | 1ページのオブジェクト数 |
split_start_count | 現在のページの最初のオブジェクトが全体の何番⽬のオブジェクトか |
split_end_count | 現在のページの最後のオブジェクトが全体の何番⽬のオブジェクトか |
・このプラグインは環境変数 publish_callbacks
を⾃動で true
に設定するようになっています。