Movable Typeのページ(エントリー、またはウェブページ)を本文中の任意の箇所で複数ページに分割するプラグインのMT6対応版です。 過去に Movable Type4対応版 として開発したものをベースに、MT6対応版として復活させました。
<$MTSplitPageLists$> A-Member と DynamicMTML との併用で、1ページ目は公開ページとし、2ページ目以降は会員限定(要ログイン)ページとすることが可能です。
※ただし、 現在 DynamicMTML が 最新版 Movable Type 6.3.2に未対応(将来対応予定あり)のため、今回の記事では使い方に触れません。
zipファイルを解凍してできる [SplitPage] ディレクトリーを MTの pluginsディレクトリーにアップロードします。
「記事」または「ウェブページ」テンプレートの <$mt:EntryBody$>、<$mt:PageBody$> タグに split="1" というモディファイアーを指定します。
※EntryMoreやPageBodyには非対応です。
例) <mt:EntryBody split="1"> <mt:PageBody split="1">
記事本文、またはウェブページの本文中でページ分割したい箇所に
[[SplitPage]]と記述するだけです。
本文1 [[SplitPage]] 本文2 [[SplitPage]] 本文3
とすれば、3ページに分割されてページが生成されます。
split処理時に、コンテキスト変数「splitpageheader」「splitpagefooter」が存在していれば、分割したコンテンツの前後にその値が埋め込まれます。
「split」モディファイアーが呼ばれるより前に、変数「splitpageheader」「splitpagefooter」をテンプレートなどでセットしてください。
splitpage_header この変数値は、Split分割後のコンテンツ冒頭に出力されます。 なお、1ページ目には出力されません。
splitpage_footer この変数値は、Split分割後のコンテンツ末尾に出力されます。 なお、1ページ目には出力されません。
テンプレート記述例
<mt:SetVarBlock name="splitpage_header"> この行はSplitPageヘッダーです。EntryTitle=「<$mt:EntryTitle$>」 </mt:SetVarBlock> <mt:SetVarBlock name="splitpage_footer"> この行はSplitPageフッターです。EntryID=「<$mt:EntryID$>」 </mt:SetVarBlock> <$mt:EntryBody split="1"$>
このようにテンプレートを記述すると、
記事本文が以下の場合、
こんにちは [[SplitPage]] ここは2ページ目です [[SplitPage]] ここは3ページ目です
ファイルに出力される内容は以下の通りになります。
【1ページ目】 こんにちは 【2ページ目】 この行はSplitPageヘッダーです。EntryTitle=「記事のタイトル」 ここは2ページ目です この行はSplitPageフッターです。EntryID=「記事のID」 【3ページ目】 この行はSplitPageヘッダーです。EntryTitle=「記事のタイトル」 ここは3ページ目です この行はSplitPageフッターです。EntryID=「記事のID」
ページングリンクはファンクションタグ で生成されます。
MTSplitPageListsには二つのモディファイアーが提供されています。
link_start
各ページングリンクの前につけるHTMLタグなどを指定します
link_end
各ページングリンクの後につけるHTMLタグなどを指定します
たとえば、
<$mt:SplitPageLists link_start="<span class='page'>" link_end="</span>"$>
のように指定すると、仮に分割によって3ページある場合は、
<span class="page">1</span> <!-- 自ページへのリンクはなし --> <span class="page_num_bg"> <a href="2ページ目へのURL">2</a> </span> <span class="page"> <a href="3ページ目へのURL">3</a> </span>
となります。
なお、現在ページにはリンクがはられません(上の例は1ページ目のページングリンクの出力例です。そのため、1ページ目にはリンクがはられていません。)
分割した2ページ目以降の内容を、記事概要などで表に出したくない場合があります(indexページやRSSなど)。グローバルモディファイアー「splitpage_cut」を指定すると、2ページ目以降を削除した本文を取り出せるようになります。
splitpage_cut="1 | 0"
="1"を指定すると、 [[SplitPage] 以降の本文がカットされます。
記述例 <mt:EntryBody splitpage_cut="1">
例えば「ブログ記事概要」テンプレートの mt:EntryBody に splitpage_cut="1" と書いておけば、2ページ目以降をカットした本文が出力されます。