2004年12月20日

movabletypeでサイドバー

[ MT設定 ]

このblogではごらんのとおりmovable typeを使っています。デフォルトのテンプレートではメインページにサイドバーがありますが、個別エントリとかカテゴリ別エントリなどのアーカイブページにはサイドバーがありません。

メインページとアーカイブにまったく同じサイドバーを表示させようとしたらちょっと苦労したので、やりかたをメモしておきます(試行錯誤の経過は省いて今やってることだけ書いときます)。

  1. アーカイブテンプレートをすべてダイナミックページにする
  2. サイドバー部分のhtmlを"sidebar"という名のテンプレートモジュールにする
  3. テンプレート「メインページ」(index.htmlを生成するやつ)のsidebar部分を次のコードでおきかえる
    <$MTInclude module="sidebar"$>
    
  4. インデックステンプレートとして、sidebar.htmlを生成する「サイドバー」を新規作成する。このテンプレートは「インデックスと一緒に再構築」にチェックを入れる。
  5. テンプレート「サイドバー」の中身は次のようにする(メインページのサイドバー部分と同じ)。
    <$MTInclude module="sidebar"$>
    
  6. 各アーカイブのテンプレートではサイドバー部分を次のように書く
    <$MTInclude file="sidebar.html"$>
    

こうすることによって、sidebar.htmlは、コメントが投稿されるなどインデックステンプレートが再構築されるタイミングで同時につくられます。「インデックス」のコンテキストで生成されるので、メインページと同じ内容のhtmlが生成されることになります。

各アーカイブページはダイナミックページなので、常に最新のsidebar.htmlを読み込んで表示することができます。

「メインページ」でsidebar.htmlを使っていない理由は、メインページ再構築時、sidebar.htmlが先に構築されている保証がないからです。

また、各アーカイブページでテンプレートモジュールsidebarを使わないのは、アーカイブのコンテキストでテンプレートモジュールが解釈されるのを防ぐためです。

用語の使い方が不正確であればご指摘ください。また、もっといい方法があればご教授ください。

投稿者 こじま : 2004年12月20日 17:30 | このエントリーを含むはてなブックマーク

トラックバック

トラックバックURL: http://www.skoji.jp/mtbin/mt-tb.cgi/96

» MovableTypeスタイルを変更 from Suna's Note
ブログを左右サイドバー型に変更しました。 やり方はまた時間のあるときに書き込みします^^ 各アーカイブ毎にメニュー構成をいちいち変更するのが面倒だったので、なん... [続きを読む]

トラックバック時刻: 2005年1月 7日 05:46

コメント

コメントしてください



(メールアドレスは表示されません)


保存しますか?

(書式を変更するような一部のHTMLタグを使うことができます)