MT タグの拡張を簡単にする Movable Type プラグイン - EasyMTML

Movablet Type では、プラグインを作って自由に MT タグを拡張することができます。しかし、ちょっとした MT タグを追加するにしても、MT プラグインのお作法にのっとって、config.yaml を書き、決まったディレクトリ構造で色々なファイルを作り、と少々面倒です。 そんな時は、アルファサードさんの Github で公開されている EasyMTML というプラグインを使う...

Movablet Type では、プラグインを作って自由に MT タグを拡張することができます。しかし、ちょっとした MT タグを追加するにしても、MT プラグインのお作法にのっとって、config.yaml を書き、決まったディレクトリ構造で色々なファイルを作り、と少々面倒です。

そんな時は、アルファサードさんの Github で公開されている EasyMTML というプラグインを使うと、新規の MT タグの登録が少し便利になります。

プラグインのインストール

まずは EasyMTML プラグインを Github からダウンロードします。上記リンクの「zip」からダウンロードできます。

ダウンロードしたら zip ファイルを解凍します。

解凍したフォルダの中に plugins フォルダがあるので、その中の EasyMTML フォルダを、Movable Type のインストールディレクトリ直下の plugins ディレクトリにアップロードすれば OK です。

使い方

まず、インストールした EasyMTML プラグインのディレクトリ構造を見ておきましょう。

EasyMTML02

この EasyMTML ディレクトリの下にある「perl」にスタティックパブリッシング用の MT タグのファイルを、「php」にダイナミックパブリッシング用の MT タグのファイルを、決まった規則のファイル名で入れれば、それぞれ MT タグとして認識されるようになっています。

命名規則

命名規則は、次表のようになっています。これは、もともと MT のダイナミックパブリッシング用のタグを登録する方法と同様で、拡張子が違うだけです。なお、以下の表では、次のような MT タグを追加するという想定です。

  • 「MTGreeting」ブロックタグ
  • 「MTIfMorning」条件タグ
  • 「MTHello」ファンクションタグ
  • 「ikurachan」モディファイア
スタティック用ダイナミック用
ブロックタグ block.mtgreeting.pl block.mtgreeting.php
条件タグ block.mtifmorning.pl block.mtifmorning.php
ファンクションタグ function.mthello.pl function.mthello.php
モディファイア modifier.ikurachan.pl modifier.ikurachan.php

ファイルの中身

さて、肝心のファイルの中身ですが、スタティック用のファイルについては、無名サブルーチン(sub { } )でOKです。

ダイナミック用については、関数名に命名規則があります。その命名規則にそって上記のタグを作るとすると、次のような関数名になります。

  • smarty_block_mtgreeting
  • smarty_block_mtifmorning
  • smarty_function_mthello
  • smarty_modifier_ikurachan

サンプル

試しに上の表にある MT タグを作ってみました。タグの説明は割愛します。

このサンプルをインストールすると、次のようなテンプレートが書けてしまいます。

<p>かつお「いくらちゃん、<$mt:Hello$>!」</p>
<p>いくら「<$mt:Hello ikurachan="1"$>」</p>
<p>かつお「父さん、<mt:Greeting>いい天気だね!<$mt:Hello$>!</mt:Greeting>」</p>
<p>波平「<mt:IfMorning>今は午前中だから”おはよう”だろ!<mt:Else>宿題やりなさい</mt:IfMorning>」</p>

以上です。

Published 2012-07-27
Updated 2019-06-25

「プラグイン」カテゴリの記事一覧