こんにちは、スズキです。
今回は、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ライフを。