【PowerCMS】【MTPager】全〇件中〇~〇件表示のページング
こんにちわ。
kyamashitaです。
PowerCMSのMTPagerを使ってページングを実装したのでご紹介します。
出来上がりのイメージ
今回のイメージは以下のようなもの。
全件数と表示中のFromToの件数を表示させて、5行ごとにページングさせてます。
テンプレート
<MTPager>
<MTIfPagerHeader>
<$MTPagerCurrent setvar="current_page_count"$>
<MTPagerLink setvar="pager_first">
</MTIfPagerHeader>
<MTIfPagerFooter>
<MTPagerLink setvar="pager_last">
<mt:var name="__counter__" setvar="pager_count">
</MTIfPagerFooter>
</MTPager>
<mt:ignore>全件数取得</mt:ignore>
<mt:Entries lastn="0">
<mt:SetVarBlock name="entries_count"><$mt:EntriesCount$></mt:SetVarBlock>
</mt:Entries>
<mt:ignore>表示件数取得</mt:ignore>
<mt:Entries limit="5" offset="0">
<mt:SetVarBlock name="entries_disp_count"><$mt:EntriesCount$></mt:SetVarBlock>
</mt:Entries>
<mt:ignore>件数のFrom To</mt:ignore>
<mt:Unless name="current_page_count">
<mt:SetVarBlock name="page_count_from">1</mt:SetVarBlock>
<mt:SetVarBlock name="page_count_to"><mt:Var name="entries_disp_count"></mt:SetVarBlock>
<mt:Else>
<mt:If name="current_page_count" eq="1">
<mt:SetVarBlock name="page_count_from">1</mt:SetVarBlock>
<mt:SetVarBlock name="page_count_to"><mt:Var name="entries_disp_count"></mt:SetVarBlock>
<mt:Else>
<mt:SetVarBlock name="pre_page_count"><mt:Var name="current_page_count" value="1" op="-"></mt:SetVarBlock>
<mt:SetVarBlock name="page_count_from"><mt:Var name="pre_page_count" value="5" op="*"></mt:SetVarBlock>
<mt:SetVarBlock name="page_count_to"><mt:Var name="page_count_from" value="$entries_disp_count" op="+"></mt:SetVarBlock>
<mt:SetVarBlock name="page_count_from"><mt:Var name="page_count_from" value="1" op="+"></mt:SetVarBlock>
</mt:If>
</mt:Unless>
<mt:ignore>ページャー部品</mt:ignore>
<mt:SetVarBlock name="pager">
<div class="pager">
<MTPager>
<MTIfPagerHeader>
<$MTPagerCurrent setvar="currnet"$>
<mt:If name="currnet" le="3">
<mt:Var name="lower" value="1">
<mt:Var name="upper" value="5">
<mt:Else>
<$MTGetvar name="currnet" op="-" value="2" setvar="lower"$>
<$MTGetvar name="currnet" op="+" value="2" setvar="upper"$>
</mt:If>
<MTIfPagerCurrent>
<MTElse>
<a href="<mt:var name="pager_first">">最初へ</a>
</MTIfPagerCurrent>
<MTIfPagerPrev>
<a href="<MTPagerPrevLink>" class="prev">前へ</a>
</MTIfPagerPrev>
<ul class="pageList">
</MTIfPagerHeader>
<MTIf ge="$lower" tag="PagerCounter">
<MTIf le="$upper" tag="PagerCounter">
<MTIfPagerCurrent>
<li class="current"><$MTPagerCounter$></li>
<MTElse>
<li><a href="<MTPagerLink>"><$MTPagerCounter$></a></li>
</MTIfPagerCurrent>
</MTIf>
</MTIf>
<MTIfPagerFooter>
</ul>
<MTIfPagerNext>
<a href="<MTPagerNextLink>">次へ</a>
</MTIfPagerNext>
<MTIfPagerCurrent>
<MTElse>
<a href="<mt:var name="pager_last">">最後へ</a>
</MTIfPagerCurrent>
</MTIfPagerFooter>
</MTPager>
</div>
</mt:SetVarBlock>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>pager sample</title>
</head>
<body>
<div class="result">
<p><mt:Var name="entries_count">件 <mt:Var name="page_count_from">~<mt:Var name="page_count_to">件を表示</p>
</div>
<mt:Var name="pager">
<ul class="articles">
<mt:Entries limit="5" offset="0">
<li>
<time datetime="<$mt:EntryDate format="%Y.%m.%d" $>"><$mt:EntryDate format="%Y.%m.%d" $></time>
<br>
<a href="<$MTEntryPermalink$>"><$mt:EntryTitle$></a>
</li>
</mt:Entries>
</ul>
<mt:Var name="pager">
</body>
</html>
記事の表示数やページングの表示数は適宜変えて頂ければ。
ご参考までに。