[ Jpn | Eng ]

Main Menu



Recent

最近の記事

Search

サイト内検索:

Archive

Powered by
MTOS 5.2.2


g200kg > MovableType Tips > 6.ページナビゲーション

MovableType Tips

2008/04/05

6.ページナビゲーション



このページの上の方についている Prev< | 01 | 02 | 03 | >Next みたいな奴だ。
例えばウェブページで同じフォルダ内に 01.html 02.html ...みたいなファイル名でドキュメントを作っていくと、上のような表示になる。 "|" で区切られて各ファイル名がならんだナビゲーションリンクが作られるので番号以外でファイル名を付ける使い方もできる。 ソートされる順序は編集日時にしてある。 ウェブページの一覧画面から一括編集で全体の並ぶ順序を編集できるのが便利。 このコードはこのままテンプレートモジュールにして適当な場所に埋め込むと、勝手にフォルダ内のページをスキャンしてナビゲーションを作る。ソートの順番はタイトル名にするのもありかも知れない。変える場合はソートしている<MTPages>が2ヶ所あるので注意。

それから各ページに貼り付ける事になるので、ページを追加した時とか、追加した後で全体を再構築しないと他のページに反映されない所にも注意。

たかだかこんだけの事をやるのに随分面倒な事になってるようにも見えるが、Prev / Next (特にPrev) の飛び先を決定するのにどうしても2回ループしなきゃいけない。

<div>
 <MTSetVarBlock name="folder"><$MTFolderLabel$></MTSetVarBlock>
 <MTSetVarBlock name="basepage"><$MTPageBasename$></MTSetVarBlock>
 <MTSetVar name="curpage" value="">
 <MTSetVar name="endpage" value="">
 <MTSetVar name="prevpage" value="">
 <MTSetVar name="nextpage" value="">
 <MTSetVar name="m1page" value="">
 <MTPages folder="$folder" sort_by="modified_on" sort_order="ascend">
  <$MTSetVar name="m1page" value="$curpage"$>
  <MTSetVarBlock name="curpage"><$MTPageBasename$></MTSetVarBlock>
  <MTIf name="curpage" eq="$basepage">
    <$MTSetVar name="prevpage" value="$m1page"$>
  </MTIf>
  <MTIf name="m1page" eq="$basepage">
    <$MTSetVar name="nextpage" value="$curpage"$>
  </MTIf>
 </MTPages>
<MTIf name="prevpage" eq="">Prev <<MTElse><a href="<$MTGetVar name="prevpage"$>.html">Prev <</a></MTElse></MTIf> | <MTPages folder="$folder" sort_by="modified_on" sort_order="ascend"><MTPagesFooter><MTSetVarBlock name="endpage"><$MTPageBasename$></MTSetVarBlock></MTPagesFooter><MTSetVarBlock name="curpage"><$MTPageBasename$></MTSetVarBlock><MTIf name="curpage" eq="$basepage"><b><$MTPageBasename$></b><MTElse><a href="<$MTPageBasename$>.html"><$MTPageBasename$></a></MTElse></MTIf> | </MTPages> <MTIf name="basepage" eq="$endpage">> Next<MTElse><a href="<$MTGetVar name="nextpage"$>.html">> Next</a></MTElse></MTIf>
</div>



g200kg