2005-10-25 アーカイブ

http://hxxk.jp/2005/10/25/

Movable Type のテンプレートと「メニュー部分」

記事データ

投稿者

望月真琴

投稿日時

2005-10-25T23:40+09:00

タグ
概要

メニュー部分があるテンプレートは「メインページ」と「アーカイブページ」、メニュー部分がないテンプレートはそれ以外となっています。何故そのような区別がなされているのでしょうか。また、「メインページ」と「アーカイブページ」以外のテンプレートでメニュー部分を配置したい場合の注意点は ?

リプライ

リプライはまだありません。

記事本文

ここで言う「メニュー部分」とは

Movable Type のテンプレートにおいて、メニュー部分とは、大抵の場合検索フォームや各カテゴリアーカイブ・月別アーカイブへのリンク、最近の記事へのリンクなど、本文部分以外の各種メニュー的なリンクを指すと思います。 明確な定義がされているわけではありませんが、ここでの説明では以下「メニュー部分」と表す場合は、そういったリンクの羅列を指します。

Web Standards with MT ver.3.2 Strict をダウンロード された方は、 index_templates\main_index.txt または index_templates\archives.txt をご覧ください。 ダウンロードされていない方は、ご自分の Movable Type の管理画面から、「メインページ」または「アーカイブページ」のテンプレートをご覧ください。

Web Standards with MT ver.3.2 Strict テンプレートをご覧になっている場合は <dl id="menu"></dl> という部分、 Movable Type の管理画面をご覧になっている場合は <div id="beta"></div> という部分 ( Movable Type 3.2x より前のバージョンである場合や、テンプレートをカスタマイズしている場合、あるいはどこかの配布テンプレートを適用している場合はこの限りではありません ) がメニュー部分ということになります。

「メニュー部分」があるのはインデックステンプレートのみ

さてこのメニュー部分ですが、 Movable Type を使用したことがある方は、テンプレートによってその部分があったりなかったりすることにお気付きだと思います。 メニュー部分があるテンプレートは「メインページ」と「アーカイブページ」、メニュー部分がないテンプレートはそれ以外となっています。 さて、こういった部分の有無を決める基準は何でしょうか。

もちろん、「エントリアーカイブや日別アーカイブやカテゴリアーカイブには不要である」という理由があるかもしれません。 しかし、そのような想像のレベルでなく、現実的な部分で推測できる理由があります。

アーカイブテンプレートにメニュー部分を配置すると、記事を追加するごとに再構築しなければならない

記事を追加すると、最近の記事へのリンクやカテゴリアーカイブ・月別アーカイブの記事数も変わります。 「メインページ」と「アーカイブページ」は記事が追加される際に同時に再構築されるようになっているため問題はありませんが、アーカイブテンプレートは全てが再構築されるわけではありません。 ( 追加された記事のエントリアーカイブやその前後のエントリアーカイブ、関係するカテゴリアーカイブ・月別は再構築されますが、それ以外のアーカイブ――例えば、 10 月 25 日付けで記事を書いても、 9 月の月別アーカイブは再構築されません。 )

記事を書くたびに手動でサイト全体を再構築するなら問題はありませんが、サーバ負荷や手間などの関係で難しいでしょう。 アーカイブテンプレートにメニュー部分を配置する場合、そのアーカイブによってはメニュー部分が常に最新の状態となるわけではない可能性があるのです。 なお、この問題はダイナミック・パブリッシングでは発生しないかもしれません。 ( 私はダイナミック・パブリッシングを利用していないため、あくまで想像ですが。 )

カテゴリアーカイブテンプレートにメニュー部分を配置すると、そのカテゴリ以下でのカテゴリ一覧や最新の記事を抽出する

以前カテゴリアーカイブとナビゲーションリスト - カテゴリアーカイブの特徴でも説明しましたが、カテゴリアーカイブ内では MTEntries コンテナタグや MTCategories コンテナタグなどの働きが他のテンプレートと異なります。

カテゴリアーカイブテンプレートにメニュー部分を配置する場合、メニュー部分の一部がそのカテゴリ以下の記事のみを対象としてしまう可能性があるのです。

これらの可能性は回避策があるにはあるのですが、テンプレートに対するより高度な理解が必要になったり、またサーバなどの環境に左右されたりするため、それを適用してまでアーカイブテンプレートにメニュー部分を配置する必要があるのか、ということで配置していないのではと私は考えています。

回避策その 1 - PHPSSI の include またはダイナミックパブリッシングを用いる

カテゴリアーカイブとナビゲーションリスト - カテゴリアーカイブ内でも全記事の新着記事リストを作る (2) で一度説明していますので、詳しい説明は省きます。 アーカイブテンプレートとは全く別個にメニュー部分を作り、ブラウザからリクエストがある度に呼び出すようにすれば、「メインページ」や「アーカイブページ」との同期もきちんと行うことができ、「アーカイブテンプレートにメニュー部分を配置すると、記事を追加するごとに再構築しなければならない」という問題を回避することができます。

MTInclude とダイナミックパブリッシング - MovableType Tips by Sonots によると、ダイナミックパブリッシングを用いても同様の回避策が取れるようです。

回避策その 2 - MTTopLevelCategories を用いる

これもカテゴリアーカイブとナビゲーションリスト - カテゴリアーカイブ内でも全カテゴリのリストを作る で一度説明していますので、詳しい説明は省きます。 MTTopLevelCategories を用いることで、カテゴリアーカイブ内でも他のテンプレートと同様に全てのカテゴリを扱うことができ、「カテゴリアーカイブテンプレートにメニュー部分を配置すると、そのカテゴリ以下でのカテゴリ一覧や最新の記事を抽出する」という問題を回避することができます。

なお、 PHPSSI の include を用いてカテゴリアーカイブとは別個にメニュー部分を作る場合は、自動的にこの問題は回避されます。

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

Web Standards with MT ver.3.2 Strict テンプレート ver.1.00 リリース

記事データ

投稿者

望月真琴

投稿日時

2005-10-25T03:55+09:00

タグ
概要

Web Standards with MT ver.3.2 Strict のテンプレートの ver.1.00 をリリースしました。ただし、少し予定を前倒ししたため、まだ解説等は全くありません。

リプライ

2 件のリプライがあります。

記事本文

テンプレートを公開しました

Web Standards with MT ver.3.2 Strict のテンプレートの ver.1.00 をリリースしました。 Web Standards with MT ver.3.2 Strict : ダウンロードページからダウンロードすることができます。 ただし、少し予定を前倒ししたため、まだ解説等は全くありません。 リファレンスを準備しました。 随時このページに追加していきます。

前倒しの理由

テンプレート公開するかもって段階でうーたん ( BAZOOKA ) と色々水面下で話をしていたんですが、 Blogサイトで見かける変なHTML のコメントでうーたんもテンプレート公開する宣言をしたので、一応先に言い出した身としては先に公開したいな、という。 あまり前倒しの理由になってないかもしれないソレ。

あと、 Movable Type のデフォルトテンプレートに照らし合わせて考えると、やはりアーカイブテンプレートには、配布時点ではメニュー部分は付けない方が良いだろうと思って取っ払いました。 後から付け足すのと、最初から付いてるものを取り外すのってだいぶ重みが違う気がするので。

リプライ

2 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2005-10-25T07:15+09:00 - wu

うわーなんだかごめんなさい。 こういうしっかり作られたMTのテンプレをダウンロードできる場所が増える事はいいことだなーって思ふ。 今回ハテナに取り上げられた記事の反応を見てみても、みんな自分のBlogのソースを少なからず気にしているようですね。記事を読んで気にしだした人も多いかもしれない。

2005-10-26T00:53+09:00 - 真琴

ダボロボ ( 謎 ) 経由でもお話したけど、何だかんだで個別ページは本文だけの表示になりました。方向性が似たようなものになった以上、先に公開しちゃえっていうちょっとズルい考えもあったり。 うーたんが CSS の装飾に使えるようなテンプレートなら、こっちは色々な拡張性や豊富な解説を売りにしようかなーと思っています。 Movable Type を使う人は、他のレンタル系 weblog を使う人と違ってある程度ソースについて気にしている度が高いんじゃないかなあと思います。 そういう人たちがテンプレートを積極的にいじってくれるように、既に Movable Type できちんとした HTML を実現できている人はどんどんテンプレートを公開してくれるといいなあ。後発とかそんなの関係なく選択肢の充実というか。( さっき「先に公開しちゃえ」って言ってませんでしたか真琴さん )

補足情報

著作、講演、制作実績など