本文へジャンプ

PowerCMSでページ分割!

PowerCMS

こんにちは、スズキです。

今回は、Webサイト構築のプロジェクトで使用している「PowerCMS」を使ったページ分割の方法を解説してみたいと思います。

ちなみにPowerCMSとは、Movable Typeを高機能CMSにするプラグインセットです。
様々な機能がありますが、その中の一つとしてページ分割プラグイン「Pager」も標準で用意されています。

アーカイブテンプレートにて分割機能をONにする

アーカイブテンプレートにて分割機能をONにする

ページ分割をしたいアーカイブテンプレートの編集画面の「このアーカイブを分割する」にチェックを入れます。

<mt:Entries>を分割する

<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ライフを。

Recent Entries
MD EVENT REPORT
What's Hot?