読者です 読者をやめる 読者になる 読者になる

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 な構造を目指している方なんかは最初からテンプレート書き換えた方が良いなぁ。ここまでやっといて最終的な結論としてはなんだけど。