MovableType のサイドバーとかをモジュール化してみる
MovableType にはテンプレート・モジュールと云う機能があり設定画面のテンプレート編集でモジュールを新規作成して
< $MTInclude module="Header"$>
とやれば簡単にページに埋め込めるのですが折角 PHP 化したので include で埋め込むコトにする。こうするコトによってファイルサイズを軽量化したり再構築(リビルド)の時間を短縮化できる。らしいよ。
さて。基本的に我がブログはシンプルなデザイン(つーか。現段階ではデフォルトのまんま)なのでモジュール化するパーツはヘッダとフッタとサイドバーぐらい。テンプレート編集でインデックスを選択。同じ階層に作っても良いですがモジュールファイルは別にしたいので出力ファイル名を module/banner.php などとします(先に module と云う名前のフォルダを作っておきましょう)。
まずはバナー部分。つまるところヘッダにあたる部分。メインページから以下の部分をごっそりコピー。
<div id="banner-inner" class="pkg"> <h1 id="banner-header"><a href="<$MTBlogURL$>" accesskey="1">< $MTBlogName encode_html="1"$></a></h1> <h2 id="banner-description">< $MTBlogDescription$></h2> </div>
で。メインページ・アーカイブページ・各アーカイブページのバナー部分に
<div id="banner"> < ?php include("/home/$HOME/www/module/banner.php"); ?> </div>
こんな感じで include。カテゴリの作り方に依っては module までの相対パスが違う場合があるので相対パスで書く時は注意(上記の例はさくらインターネットで絶対パスで書いた場合)。こんな調子でサイドバーもやってしまおう。id="beta" 部分をごっそりコピーしてテンプレ作成。
なんつーか。MT のデフォテンプレは div 要素が多過ぎ。3.2 になってマークアップとか改善されたと聞くけどこれは酷いかも…。後で構造から見直してしまおう。
あと。エントリーページなどの各アーカイブテンプレートはデフォルトでサイドバーがないレイアウトになっている。そのままサイドバーを include しても表示がずれてしまうので body タグの
<body class="layout-one-column"></body>
の部分を
<body class="layout-two-column-right"></body>
にしましょう。
ちなみに余談ですが。ここまでデフォルトのテンプレートをなるべく弄らない様にしているのは StyleCatcher のプラグインを使いたいがため。使い方が良く分からんが。まぁ。あれだなぁ。Strict な構造を目指している方なんかは最初からテンプレート書き換えた方が良いなぁ。ここまでやっといて最終的な結論としてはなんだけど。