こんにちは、スズキです。
今回は、Webサイト構築のプロジェクトで使用している「PowerCMS」を使ったページ分割の方法を解説してみたいと思います。
ちなみにPowerCMSとは、Movable Typeを高機能CMSにするプラグインセットです。
様々な機能がありますが、その中の一つとしてページ分割プラグイン「Pager」も標準で用意されています。
ページ分割をしたいアーカイブテンプレートの編集画面の「このアーカイブを分割する」にチェックを入れます。
<mt:Entries>タグにlimitとoffsetモディファイアを指定します。
「limit」には1ページ内に表示したい数を、「offset」には0を指定してください。
※<mt:Entries>タグに付けた絞り込み系のモディファイアは無視されます。
<mt:Entries limit="10" offset="0"> <$mt:Include module="エントリーユニット"$> </mt:Entries>
プラグインのオリジナルタグである<mt:Pager>を使って、ページナビゲーションを作ります。
<mt:Pager> <mt:IfPagerHeader> <div class="pagingNav"> <ul> <mt:IfPagerPrev><li class="prev"><a href="<$mt:PagerPrevLink$>">前のページへ</a></li></mt:IfPagerPrev> </mt:IfPagerHeader> <$mt:PagerCurrent setvar="CurrentNum"$> <$mt:PagerCounter setvar="CountNum"$> <mt:If name="CurrentNum" eq="$CountNum"> <li><span class="current"><$mt:Var name="CountNum"$></span></li> <mt:Else><li><a href="<$mt:PagerLink$>"><$mt:Var name="CountNum"$></a></li></mt:Else> </mt:If> <mt:IfPagerFooter> <mt:IfPagerNext><li class="next"><a href="<$mt:PagerNextLink$>">次のページへ</a></li></mt:IfPagerNext> </ul> <!-- //.pagingNav --></div> </mt:IfPagerFooter> </mt:Pager>
テンプレートにある一番最初の<mt:Entries>を対象として処理します。
<mt:Entries>タグや、<mt:Pager>タグがインクルード先に記述されていると正常に動きません。
ページナビゲーションを共通化したいのですが、ココはぜひ改善して欲しいですね...。
今表示中のページを判別するタグが用意されていないので、自作します。
<$mt:PagerCurrent$>で現在のページ数、<$mt:PagerCounter$>でページ分割総数を、それぞれ変数に格納して比較します。
<$mt:PagerCurrent setvar="CurrentNum"$> <$mt:PagerCounter setvar="CountNum"$> <mt:If name="CurrentNum" eq="$CountNum"> <li><span class="current"><$mt:Var name="CountNum"$></span></li> <mt:Else><li><a href="<$mt:PagerLink$>"><$mt:Var name="CountNum"$></a></li></mt:Else> </mt:If>
それでは、ステキなMTライフを。