「このテンプレートにリンクするファイル」または「ファイルへのリンク」の使い方 for Movable Type

「このテンプレートにリンクするファイル」または「ファイルへのリンク」の使い方 for Movable Type

Posted at May 8,2007 1:50 AM
Tag:[Backup, Link, MovableType]

Movable Type のテンプレート編集画面を開くと、MT3.x の場合、下に示すスクリーンショット赤枠の「このテンプレートにリンクするファイル」、MT4,x の場合、「ファイルへのリンク」がありますが、このフィールドについての利用方法をご存知ない方が少なくないのではないでしょうか。

Movable Type 3.x
「このテンプレートにリンクするファイル」

Movable Type 4.x
「このテンプレートにリンクするファイル」

このフィールドはオーサリング・ツールを利用する方、あるいはテンプレートをカスタマイズする方にとってはかなり役に立つ機能を有しています。
ということで、本エントリーではこの「このテンプレートにリンクするファイル」および「ファイルへのリンク」の使い方を紹介します。説明に使用しているスクリーンショットは Movable Type 3.x のものですが、Movable Type 4.x の動作も同じです。

1.外部ファイルを Movable Type と同期させる

このフィールドの本来的な使い方は、Dreamweaver、GoLive等のオーサリング・ツールで作成したテンプレートを Movable Type の再構築あるいはテンプレート編集と同期させることです。オーサリング・ツールで作成したテンプレートは編集画面のテキストエリアにペーストするのではなく、このフィールドに外部ファイル名として指定するだけで自動的に読み込ませることができます。
以下、「このテンプレートにリンクするファイル」を設定されたファイルを、便宜上「リンクファイル」と記します。

例えば、作成したテンプレートを下記のようにリンクファイルとして指定します。指定する時にファイルの実体はなくても構いませんが、後で「リンクファイル」となるファイルは指定したパスにアップロードします。

ファイルを同期させる

この状態で、Movable Type の管理画面から(いきなり)再構築を実行すると、リンクファイルの内容をHTMLページやCSSに反映することができます。

またテンプレート編集画面を開くと、リンクファイルの内容がテキストエリアに反映された状態で表示されます。もちろんデータベースにも反映されます(編集画面を表示した時にデータベースに設定されるようです)。

上記をまとめると、次のような振る舞いになります。

リンクファイル操作時に優先されるデータ
再構築編集画面
ありリンクファイルリンクファイル
あり(空)*1データベースデータベース
なしデータベースデータベース

*1:リンクファイルの実体があり、その内容が空(0 バイト)のファイル

つまり、データベースの内容とリンクファイルに差分がある場合は、リンクファイルの内容が空でない限り、リンクファイルが優先されます。

改めて図で示します。
リンクファイルがない場合のテンプレート編集や再構築時の動作は次の通りです。

リンクファイルがない場合

上図のように、テンプレート編集や再構築を実行すると、Movable Type のテンプレート情報は基本的にデータベースから取得し、そのデータを元に HTML や CSS ファイルを出力します。

これと異なり、リンクファイルが存在する場合は、リンクファイルの情報を先に取得してページを生成し、同時にリンクファイルの内容をデータベースに反映する、という訳です(下図)。

リンクファイルがある場合

リンクファイルは、インデックス/アーカイブ/システム/モジュール、すべてのテンプレートに設定することができます。またこのフィールドにはファイル名だけでなく、パスを設定することができます。Movable Type 配布元の Six Apart は、絶対パス("/"から開始)による指定を推奨しています。

この仕組みを理解しておけば、テンプレート編集画面を利用せずに、テンプレートの内容を効率的にHTMLやCSSの内容に反映させることができます。
オーサリング・ツールとの具体的な連携方法例については下記のサイトが参考になるでしょう。

2.テンプレートをバックアップする

本来の利用方法ではありませんが、このフィールドを利用してテンプレートをバックアップする方法がかなり有名です。他のサイトでこのフィールドをそのように利用する方法が多く紹介されてますし、私自身、当初はそういう使い方をするフィールドと思い込んでました。

設定方法は1項と同様、「このテンプレートにリンクするファイル」に任意のパスを設定するだけです。ファイル名はテンプレートと対応がとれるよう、分かりやすい名称にしておくと良いでしょう。まバックアップ用のパス(tmpl 等)を作っておき、そこに出力するようにしておくとサーバ上にファイルが煩雑にならずにすみます。

テンプレートをバックアップする

この設定をしておくことで、テンプレート編集画面上での修正内容がデータベース以外に、リンクファイル、つまり物理的なファイルをサーバ上に保存しておくことができます。
リンクファイルはテンプレート編集画面の「保存」または「保存および再構築」をクリックした時に更新されます。MTタグも変換されず、そのまま出力されます。

万が一、データベースが壊れて、Movable Type にアクセスできなくなってしまっても、テンプレートはファイルに残ってますので、Movable Type を改めてインストールした時に、リンクファイルの内容をテキストエリアにペーストするか、「このテンプレートにリンクするファイル」に保存されているリンクファイルのパスとして設定すれば、簡単に復活させることができます。

2009.05.02
Movable Type 4.x の説明を追加しました。

関連記事
トラックバックURL


トラックバック

Movable Typeのテンプレートを確認・保存する方法 from Ys DESIGN
WordpressからMovable Typeに移行した際に、「テンプレートのファイルはどこに保存されているんだろう?」「テンプレートのソースをエディタで... [続きを読む]

Tracked on May 1, 2009 10:49 PM
コメント

複数のBlogを作って、それらの間でテンプレートを共用したいときにも、「このテンプレートにリンクするファイル」を使うと便利です。

[1] Posted by : May 8, 2007 1:57 PM

>壱さん
こんにちは。
なるほど、そういう使い方もありますね!

[2] Posted by yujiro : May 9, 2007 1:00 AM

はじめまして。

突然の質問で恐縮ですが、

テンプレートをリンクしたところリンクファイルのコメントアウト部分(<!--)から
MT管理画面のブラウザで表示されない現象がおきてます。

リンクファイルにコメントはつけられないのでしょうか?・・・

何か解決策などがございましたらご教授願いたいのですが・・・
よろしくお願いします。

[3] Posted by おぉ : November 5, 2008 8:10 PM

>おぉさん
はじめまして。
ご質問の件ですが、リンクファイルにHTMLコメントを記述しても、ブログ管理画面でテンプレート編集画面が正常に表示されることを確認しました。
「ブラウザで表示されない」というのは、リンクファイルの内容が(管理画面のHTMLに)干渉して管理画面が正常に表示されなくなってしまった、と理解しましたが、どのような内容のリンクファイルでしょうか?

[4] Posted by yujiro logo : November 5, 2008 9:15 PM

すみません、単純な問題で解決いたしました。

リンクファイルがs-jisの文字コードだったのですが、
それをUTF-8に置換したところ正常にすべてのソースが管理画面のブラウザから
確認できました。


MTがUTF-8だったのでもしかしたらと思ったら・・・・です。

早速レスしていただいて申し訳ないです(_ _)

[5] Posted by おぉ : November 5, 2008 9:30 PM

はじめまして。
いつも勉強させていただいてます。

Dreamweaverでテンプレートをデザインしたいのですが、
リンクファイルになるhtmlにはテンプレートタグも挿入していないとだめなのでしょうか?

テンプレートのサンプルhtml等をご存知であれば紹介していただけますか?

既出の質問でしたら申し訳ないです。

[6] Posted by めぐ : January 13, 2009 5:48 PM

>めぐさん
こんにちは。
ご質問の件につきまして、私はDreamweaverを使ったことがないので、推測での回答ですが、リンクファイルはMovable Typeがテンプレートとして読み込むためのファイルで、読み込むと同時にテンプレートに記述されたテンプレートタグを評価して、実際のデータに置き換えるので、テンプレートタグの挿入は必要だと思います。
それではよろしくお願い致します。

[7] Posted by yujiro logo : January 14, 2009 2:50 PM

yujiroさん。

こんにちは。
なるほど、もうちょっとテンプレートタグの勉強が必要なようです。
回答ありがとうございましたm(^^)m

[8] Posted by めぐ : January 15, 2009 10:54 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)