亜細亜ノ蛾 - Weblog

[SiteSearch Google]

November 01, 2006

MTのInclude問題は「MTIncludePlus」で解決

[ad]

テンプレいじりの必須知識

どのブログツールでも大差ないかと思いますが、MTでデザインを変更する場合、それぞれのページの「テンプレート」を変更することになります。少しテンプレート変更に慣れてくると、複数のテンプレートで同じ部分が繰り返されていることに気がつくでしょう。例えば「カテゴリィ一覧」や「月別アーカイブ」、「最近の記事一覧」などが代表かと思います。

さて、MTといえば再構築、というのが有名ですが(?)、できれば再構築時間を短くしたい。ちょっと記事を変更しただけで何時間も待たされる(おおげさ)のは厭だ、という人が大半でしょう。そんなときには、それぞれのテンプレートの共通部分を、何とかして使い回したいものです。

幸いにして、MTには<MTInclude>というピッタリの専用タグがあるので、これを使うのが解決の糸口です。インターネッツ上に、いくらでも有益な情報があります。真琴さんのところがまとまっていていいですね。

hxxk.jp - カテゴリアーカイブとナビゲーションリスト

MTIncludeの仕様

いよいよ本題ですが、<MTInclude>には「<MTInclude>タグの中にはMTタグを記述できない」という仕様があります(MT3.2で確認)。

例えば、年ごとに作成された何らかのファイルを取り出すために

<MTInclude file="<MTArchiveDate format="%Y">.php">

と書いてもダメな訳です。どうしても読み込みたい場合は

<?php readfile('<MTArchiveDate format="%Y">.php'); ?>

という具合に、PHPの力にすがることになります。──でも、毎回ページが読み込まれるたびにPHPスクリプトが実行されるので、サーバに負担がかかる──と思います(どの程度かは知らない)(レンタルサーバ者の悲しさ)。

──では、どうするか?

MTIncludePlus

そこで、MT内で完結させるためのプラグインがあります。

MT Extensions: MTIncludePlus 1.1

上記のプラグインはMTIncludeの拡張版のような動きをします。例えば先ほどの例の場合、

<MTIncludeFile><MTBlogSitePath>archives/<MTArchiveDate format="%Y">.php</MTIncludeFile>

という記述でファイルを読み込めます。

ちなみに、

<MTIncludeFile><MTArchiveDate format="%Y">.php</MTIncludeFile>

だとエラーになります。<MTIncludeFile>は「サーバ内の絶対パス」か「MTのあるディレクトリ」にあるファイルしか読み込めないようです。

──というか、MTIncludePlusのコードを見てみると判るように、実は、MT標準のInclude機能を使っているだけという。

応用例

MTIncludePlusプラグイン:2-mix Laboratoryではカテゴリィ毎に「カテゴリィ説明文」を読み出す例が書いてあります。なるほど。

<MTIncludeModule><MTCategoryDescription></MTIncludeModule>

MTFastInclude

MT Extensions: MTFastInclude 1.1

よく解ってないまま、こちらも導入。MTIncludeを使うときにキャッシュしてくれる、のかな?

「Perl版ダイナミック・パブリッシング」でも動作

The blog of H.Fujimoto:再構築不要化カスタマイズ(全SQL対応・その1)で紹介されている「Perl版ダイナミック・パブリッシング」でも問題なく動くのがうれしいところ。

「動的生成したページ」から読み込むことはもちろん、「動的生成したページ」読み込むこともできました。

まとめ

上記の2つのプラグインは、日本語サイトであまり解説されていないので、これから流行るといいな。

あと、MTIncludePlusには<MTIncludeURL>というタグがあります。これは「任意のURLを読み込む」ことができる、何とも恐ろしいタグ。ということは……ゆめがひろがりんぐ。

この記事のタグ(偽)

[3.3だとプラグインなしでできたりして]

Google Adsense

コメント

コメントを投稿

"MTのInclude問題は「MTIncludePlus」で解決" にコメントを投稿することができます(別ウィンドウが開きます)。

トラックバック

このエントリーのトラックバックURL:

"MTのInclude問題は「MTIncludePlus」で解決"へのトラックバックはまだありません。

過去の記事

カテゴリィ一覧
  1. Movable Type
  2. その他
    1. アイデア
  3. ウェブ
    1. Weblog
    2. Webデザイン
    3. ちょっとイイ話
    4. へぇー(トリビア・雑学)
    5. オモロ
      1. オモロテキスト
      2. オモロニュース
      3. オモロ動画
      4. オモロ画像
    6. ニュース
  4. コンピュータ・エレクトロニクス
    1. PC
      1. Firefox
  5. マンガ・アニメ・ゲーム
    1. アニメ
      1. 新世紀エヴァンゲリオン
    2. オタク
    3. ゲーム
    4. マンガ
      1. 週刊少年ジャンプ
        1. DEATH NOTE
        2. HUNTER×HUNTER
        3. SKET DANCE
        4. バクマン。
  6. 本・音楽・映画・TV
    1. TV・芸能
    2. 映画
  7. 食・健康・生活
    1. ファッション
    2. 食べ物