Movable Type4(ムーバブルタイプ4)の新機能であるウェブページなんだけど、情報が少なくてなかなか進まない・・・
今準備しているサイトではMT4のウェブページを利用してテーマに沿った内容をまとめたいと思っている。まあ、半分は自分の覚書きを作りたいだけなのだが。
MT4でのウェブページはほぼブログの記事と同じ機能を持ち、カテゴリで分類する代わりにフォルダで管理する。このフォルダはMT上で作成したもので実体はサーバー上に作られたディレクトリそのものである。(ブログ記事とウェブページの違いについては前回のMT4奮闘記-その2に書いてあるので参照して欲しい)
ウェブページ自体は別にフォルダを作成しなくても保存することができる。しかし、作成したウェブページを読者に利用してもらうには当然なんらかの形でリンクを作成しないとブログから利用できない。生成したウェブページへのリンクのリストは簡単に作成できるが、分類しなければ単なるリストになってしまうため分かりづらい。
そこで分類とナビゲーションのためにフォルダを利用すればウェブページを作成したときに目的のフォルダに放り込み、再構築を行うだけでリンクの作成が不要となるお手軽ホームページを実現できそうなのだ。もちろんMTのテンプレートにはそのためのお膳立てが必要だ。
フォルダについて
MT4のフォルダは管理画面で作成する。フォルダにはトップレベルフォルダとサブフォルダがある。
トップレベルフォルダはルートの直下に作成したフォルダを示す。このトップレベルフォルダの実体はサーバー上のブログディレクトリ直下に作成される。この位置は移動することができないようだ。また、トップレベルフォルダは複数作成することもでき、例えば覚書用フォルダとか、写真用フォルダとか大分類に利用できる。
サブフォルダはトップレベルフォルダの下に作成したフォルダのことで、サブフォルダの下にまたサブフォルダを作成する階層構造も可能である。
トップレベル、サブフォルダ共に表示名、ディレクトリ名、フォルダの説明を管理画面で登録することができ、テンプレート内でMTタグによって構築されたHTMLファイルにこれらの情報を表示することもできる。
各ページへのナビゲーション
MT4にはフォルダとのフォルダに含まれるウェブページを階層付きでリスト表示するウィジットが標準で入っている(表示例図1-A部)。ただし、すべてのフォルダ毎にウェブページを表示するため、フォルダやウェブページが増えてくると見難くなる。また、表示するトップレベルフォルダを限定できないので関連性が無いフォルダも表示されてしまう。表示例では本来グローバルなナビゲーションとしたいギャラリーやリンクなども表示されている。これらのウェブページ自体は作成していないのでページ名はここに表示されていないが実際に使用する時にはリストに表示されてしまう。
できればエクスプローラのようにフォルダ名をクリックするとフォルダ内のウェブページを表示する、みたいな方が良いがJavaScriptでも使わなければできそうにないので別の方法を模索している。
ひとつ方法としてフォルダとページのリストを分ける方法を検討してみた(図1-B,C部)。この方法では相当ページが増えてもすっきり表示できそう。また、現在表示しているウェブページが存在するトップレベルフォルダから下層に向かってリストを展開しているので余計なトップレベルフォルダとそのサブフォルダーは表示されない。
ただ現在のところ、この方法では図1-B部にあるフォルダのリストに自動でリンクを設定することができない。つまり、フォルダ名をクリックしても別のフォルダに移動できないのでナビゲーションの意味がない。
解決策としては何らかの方法でリンク先を取得する必要があるが、現在MTタグでなんとかならないか調査中。なお、フォルダに固定のファイル名を持つファイル、例えばindex.htmlなどを各フォルダ毎に入れておき、リンク先としてそのファイルを指定するような運用方法を用いればこの問題は無くなる。
お目汚しになるかも知れないが、参考までにフォルダとページの一覧を表示するウィジットのコードを掲載しておく。
【リスト1-フォルダの一覧表示】
<div class="widget-folders widget"> <h3 class="widget-header">覚書きフォルダ一覧</h3> <div class="widget-content"> <MTTopLevelFolder> <MTSubFolders> <MTFolderHeader><ul class="widget-list"></MTFolderHeader> <li class="widget-list-item"><$MTFolderLabel$> (<$MTFolderCount$>)</li> <MTFolderFooter></ul></MTFolderFooter> <$MTSubFolderRecurse$><!-- サブフォルダを含む場合必要 --> </MTSubFolders> </MTTopLevelFolder> </div> </div>
【リスト2-ページの一覧表示】
<div class="widget-pages widget"> <h3 class="widget-header">覚書きページ一覧</h3> <div class="widget-content"> <!-- このウィジットはウェブページのみ使用可能 --> <!-- 現在のフォルダ名を表示 --> <MTPageFolder> <p>フォルダ:<$MTFolderLabel$></p> </MTPageFolder> <!-- 現在のフォルダに含まれるウェブページ名を表示 --> <MTPageFolder> <MTPages> <MTPagesHeader><ul class="widget-list"></MTPagesHeader> <li class="widget-list-item"><a href="<$MTPagePermalink$>" ><$MTPageTitle$></a></li> <MTPagesFooter></ul></MTPagesFooter> </MTPages> </MTPageFolder> </div> </div> ※この記事は旧ブログ-レンズの向こう(@ブログ人)にて公開していたものです。