リアルタイム再構築を利用したMT4.1用ページ分割(その2)

昨日に引き続いて、リアルタイム再構築プラグインを利用して、MT4.1標準テンプレートでページ分割を行う方法を紹介します。
今日は、メインページを分割する手順を解説します。

1.「メインページ」テンプレートのリアルタイム再構築を許可する

まず、「メインページ」のインデックステンプレートをリアルタイム再構築できるようにします。

ブログのメニューで「設定」→「プラグイン」を選び、プラグインの設定のページを開きます。
そして、RealtimeRebuildプラグインの設定を開き、「再構築を許可するテンプレート」の欄で「メインページ」を選びます。

なお、すでにリアルタイム再構築プラグインを使っていて、「メインページ」以外のテンプレートの再構築を許可している場合、Ctrlキーを押しながら「メインページ」テンプレートを選択し、既存の選択が外れないようにします。

↓「メインページ」テンプレートのリアルタイム再構築を許可する
divpage2_1.png

2.「ページ選択」テンプレートモジュールの作成

次に、「ページ選択」というテンプレートモジュールを作成します。
このテンプレートモジュールは、分割後の個々のページへのリンクを出力するものです。

テンプレートモジュールを新規作成し、名前を「ページ選択」にします。
そして、テンプレートの内容として、以下を入力します。

<MTDivPagesIfMulti>
<form id="page_sel" name="page_sel" action="get">
<div>
<MTDivPagesIfPrevPage><a href="<$MTVar name="page_link"$>">先頭ページ</a>|<a href="<MTIf tag="DivPagesPrevPageNumber" eq="1"><$MTVar name="page_link"$><MTElse><$MTRealtimeRebuildPHPLink tmpl_name="$tmpl_name" tmpl_type="$tmpl_type" context="$context" expire_modified="1"$>&page=<$MTDivPagesPrevPageNumber$></MTIf>">前のページ</a>|</MTDivPagesIfPrevPage>
<select name="page_num" onchange="if (this.value == 1) { location.href = '<$MTVar name="page_link"$>'; } else { location.href = '<$MTRealtimeRebuildPHPLink tmpl_name="$tmpl_name" tmpl_type="$tmpl_type" context="$context" expire_modified="1"$>&page=' + this.value; } return false;">
<MTDivPagesLoop all="1">
  <option value="<$MTDivPagesNumber$>"<MTDivPagesIfCurPage> selected="selected"</MTDivPagesIfCurPage>><$MTDivPagesNumber$></option>
</MTDivPagesLoop>
</select>ページ/<$MTDivPagesCount$>ページ

<MTDivPagesIfNextPage>|<a href="<$MTRealtimeRebuildPHPLink tmpl_name="$tmpl_name" tmpl_type="$tmpl_type" context="$context" expire_modified="1"$>&page=<$MTDivPagesNextPageNumber$>">次のページ</a>|<a href="<$MTRealtimeRebuildPHPLink tmpl_name="$tmpl_name" tmpl_type="$tmpl_type" context="$context" expire_modified="1"$>&page=<$MTDivPagesLastPageNumber$>">最終ページ</a></MTDivPagesIfNextPage>
</div>
</form>
</MTDivPagesIfMulti>

3.「メインページ」テンプレートの書き換え

次に、「メインページ」のインデックステンプレートを書き換え、ページ分割できるようにします。

デフォルトのメインページのテンプレートには、以下のような部分があります。

<MTEntries>
    <$MTEntryTrackbackData$>
    <$MTInclude module="ブログ記事の概要"$>
</MTEntries>

この部分を以下のように書き換えます。
なお、MTDivPagesInitタグの「per_page="10"」は、1ページあたり記事を10件ずつ出力することを意味します。
このモディファイアを書き換えることで、1ページあたりの記事数を変えることができます。

<MTSetVarBlock name="page_link"><$MTBlogURL$></MTSetVarBlock>
<MTSetVar name="tmpl_name" value="メインページ">
<MTSetVar name="tmpl_type" value="index">
<MTSetVar name="context" value="0">
<MTDivPagesInit per_page="10" sort_order="descend">
<MTEntriesDivPages>
    <$MTEntryTrackbackData$>
    <$MTInclude module="ブログ記事の概要"$>
</MTEntriesDivPages>

<$MTInclude module="ページ選択"$>

書き換えが終わったら、「メインページ」テンプレートを保存して再構築します。
これでページ分割ができる状態になります。

MT Cloud Starter Kit
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください