【PowerCMS】【MTPager】全〇件中〇~〇件表示のページング

【PowerCMS】【MTPager】全〇件中〇~〇件表示のページング

こんにちわ。

kyamashitaです。

PowerCMSのMTPagerを使ってページングを実装したのでご紹介します。

出来上がりのイメージ

今回のイメージは以下のようなもの。

全件数と表示中のFromToの件数を表示させて、5行ごとにページングさせてます。

kyamahsita_20201030_01.png

テンプレート

<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>

記事の表示数やページングの表示数は適宜変えて頂ければ。

ご参考までに。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ