2003/10/10 金

複数のWeblogでテンプレートを共有する方法

ひとつの Movable Type で複数の Weblog を立ち上げている時に、Weblog 間でテンプレートを共有する方法です。

当サイトは全てのページを MT で出力しています。MT を CMS 的に使ってみようと思ってそうしているんですが、実は全部で4つの Weblog から成り立っています。内容の割には豪勢なんです(^^; 機会があったらどうやってそれぞれのページを作っているか説明しますが、簡単に言うと、コンテンツ=Weblog、分類=カテゴリー、段落=エントリー という感じになっています。

で、そうなってくると各 Weblog を同じデザインで統一する必要がでてきます。MT では「テンプレート・モジュール」というテンプレートの部品みたいなものを作ることができ、共通デザインをパーツ化して使い回すことができます。しかし、通常それを使いまわせるのは同じ Weblog 内だけです。

そこでちょっとイレギュラーっぽい方法を使って、違う Weblog からも同じテンプレートを使えるようにしています。

すでにあるテンプレートでも新規作成してもいいので、テンプレートの編集画面を開いてみましょう。そこには「このテンプレートにリンクするファイル(日本語メニュー)」という項目があります。これは、外部エディタを使ってテンプレートを編集できるように、ファイルとして書き出す機能です。これでファイルを書き出しておくと、そのファイルをいじるだけで変更内容が自動的に Weblog のテンプレートに反映される仕組みになっています。

この機能を使って、Weblog 間でテンプレートの共有が実現できます。

まずは、現在見ている共有したいテンプレートを、この機能を使ってファイルに書き出します。「このテンプレートにリンクするファイル」に Weblog のトップディレクトリからの相対パスか、サーバ上の絶対パスを書きます。他の Weblog からも見やすいように共通のディレクトリを作って、そこの置いたほうがいいでしょう。

次に、共有させたい Weblog の管理画面にいきます。その Weblog のテンプレート管理画面へいき、共有テンプレートと内容を同じものにしたいテンプレートの編集画面を開きます。そこで同様に「このテンプレートにリンクするファイル」に先ほど書き出したファイルまでのパスを書いてあげます。

ここで注意なんですが、すでに内容が記述してあるテンプレートの場合は、テキストエリアに出力されている内容をすべて消去した上で、「保存」をしなくてはいけません。なぜなら、共有テンプレートの内容が、現在見ている内容に置き換わってしまうからです。新規作成の場合は最初から空なので、そのまま「保存」して問題ありません。空の状態で保存すると、自動的に参照しているファイルの内容に置き換わってくれます。心配な方は、共有テンプレートの内容またはファイルをコピーしてから実行するのがいいと思います。

こうすることで、同じファイルを違うテンプレートが参照していることになります。ファイル書き出しの機能により、片方の Weblog でテンプレートの内容を変更した場合、ファイル経由で他のテンプレートにも反映される仕組みになっています(もちろん外部エディタで編集してもOKです)。これにより、テンプレートの共有化・一元管理が実現できます。

当サイトでは、ヘッダーやフッター、メニューなど5つのテンプレート・モジュールを4つの Weblog で共有しています。テンプレートと CSS を共有することによって、デザイン統一が非常に楽に実現できています。逆にこういうことができなかったら、MT 使ってなかったかもしれません(^^;

明日は、テンプレート・モジュールをもっと汎用的に使う方法をエントリーしたいと思います。

Posted by ooba at 00:25 | Comments (4) | TrackBacks (6) | このエントリーを含むはてなブックマーク
Trackbacks
TrackBack URL: http://www.bricklife.com/mt/mt-tb.cgi/24
MTSetVar と MTGetVar を使う
Excerpt: おそらく Movable Type ユーザのほとんどが使ってないだろうと思われる不運なタグ(笑)、MTSetVar と MTGetVar を使って、より快適なテンプレート活用を送る方法の紹介です。 各ページのヘッダーやフッターは、なるべくパーツ化(テンプレート・モジュール化)して使い回...
Weblog: bricklife.*
Tracked: 2003年10月11日 02:18
テンプレートの共有
Excerpt:  当サイトでは、この「徒然不定期」と「文月のパソコン部屋」を、 Movable type (MT) を使って構成しています。 MTでは「テンプレート・モジュール」というひな型を作ることができ、共通デザインをパーツ化して使い回すことができるのですが、 共通化できるのは、通常、...
Weblog: 徒然不定記
Tracked: 2003年11月29日 03:55
各種テンプレートのバックアップ
Excerpt: (--略--)まぁ,そんなこんなで,バックアップも兼ねて TeraPad で名前を付けて保存し続けてきたんですが,今頃になってテンプレートのバックアップの方法を見つけましたー。それは「bricklife.weblog.*」というサイト(プラグインでも御世話になりました)の...
Weblog: でるふぃたうん::でるろぐ
Tracked: 2003年12月 3日 10:41
MovableType テンプレートの共有
Excerpt: MTSetVar と MTGetVar を使う 複数のWeblogでテンプレートを共有する方法 ここら辺を参考にしてグモブロガー全員のテンプレを共有してみた。 修正作業が圧倒的に効率的にできる様になりました。もっと早い段階で知っていれば・・・ 詳細はリンク先参照。面倒なのでここで†...
Weblog: gumoblog : futch
Tracked: 2003年12月24日 07:17
MTテンプレートをバックアップ
Excerpt: ブログを始めてからというもの連日のように記事を投稿していますが、本当はこんなつも...
Weblog: blog.millemiglia.to
Tracked: 2004年8月25日 08:16
MTテンプレートをバックアップ
Excerpt: ブログを始めてからというもの連日のように記事を投稿していますが、本当はこんなつも...
Weblog: blog.millemiglia.to
Tracked: 2004年8月25日 09:30
Comments
1 : name: hi date: 2004/07/01 03:03 [RES]

参考になりました。僕もコンテンツの分類方法をどうしようか考えていました。従来からある無限階層方式ではそのうち行き詰まるだろうなぁと思っていましたので、複数のウェブログをうまく使えないかと。それこそCMSとして。

コンテンツ=Weblog、分類=カテゴリー、段落=エントリー という使い方は、比較的長い文章を書く場合や、エントリー(記事)ごとにスタイルを変更したい場合などに有効だろうなー、と僕も考えていました。

ところが、どうしたら実現できるのかよくわからず、、(合掌)まだまだMTの勉強不足です、、、

そこで質問なのですが、複数のウェブログで記事を吐き出しつつ、それらのまとめページ(たとえば、index.html)で新着順に表示させる方法ってあるのでしょうか?を複数のウェブログ全体のなかから新着順に表示させると言った方がいいでしょうか。

2 : name: hi date: 2004/07/01 03:11 [RES]

HTMLタグを使ってしまいました、、確認ミスごめんなさい。

↓↓↓先程の質問
そこで質問なのですが、複数のウェブログで記事を吐き出しつつ、それらのまとめページ(たとえば、index.html)で「新着順」に表示させる方法ってあるのでしょうか?<MTEntries lastn="n">を複数のウェブログ"全体のなかから新着順"に表示させると言った方がいいでしょうか。

3 : name: ooba date: 2004/07/01 15:03 [RES]

>>2 hi さん
うちの例でいいますと、lego、library、links がそれぞれ別のblogになってます。
legoとlibraryは、それぞれのトップがカテゴリ一覧、各記事がカテゴリーアーカイブ、段落がエントリーに相当します。
共通部分は上記のやり方+MTSet/GetVarで共有しています。
これでどうやって構成しているか想像つくでしょうか。

その他のページはメインページのテンプレートで作っています。

複数blogから一括でデータを持ってるのは、試していませんが GlobalListings というプラグインでできると思います。
http://www.nonplus.net/software/mt/GlobalListings.htm

4 : name: ななしさん date: 2005/02/08 00:17 [RES]

>>2 hi さん

Post a comment




Powered by Movable Type 4.0