Movable Typeのプラグイン作成方法の基礎です。Movable Typeを利用している方だったら「こんな機能があればいいのにな...。」というところに関して、自作して実装してしまえばよいという非常に便利なプラグインです。
Movable Typeはオープンソースでしてソースの中身は誰でも自由に勝手に見たり読んだり書き換えたりすることが可能です。ですので、実際のところは「できないことはない」わけですが、よっぽどのハッカーではない限り中身をいじったりするのは中身を破壊しかねないのでプラグインを利用した方が無難です。そのようなわけでプラグインを導入するにあたって主な機能の追加は以下のような部分で行われるのが常です。
テンプレートタグにはいくつかの種類がありますが、そのどの種類でもタグを追加することが可能です。
Movable Typeの管理画面は実はパブリッシングされたブログと同様にテンプレートで出来ています。不思議なことにテンプレートを作成する画面がテンプレートでもって表示されているわけです。管理画面のカスタマイズはこの管理画面のテンプレートをいろいろといじって作成します。
管理画面に機能を追加する際にはMovable Type全体の機能にどのような種類があってどのような構成になっているのかをある程度知る必要があります。ちょっと敷居が高いかもわかりません。
Movable Type Pluginの概要
Movable TypeはCMSとしてすでに多機能な性能を十分に発揮しています。一般的なサイト構築の機能、ブログとして、または、データベースとしての機能は既に実装されていますし、カスタマイズに関しても殆ど何不自由なく操作が可能です。しかしながら、それにプラスアルファという機能がどうしても必要だったりします。そのような場合にはプラグインを利用して機能を追加することが可能なのです。Movable Typeはオープンソースでしてソースの中身は誰でも自由に勝手に見たり読んだり書き換えたりすることが可能です。ですので、実際のところは「できないことはない」わけですが、よっぽどのハッカーではない限り中身をいじったりするのは中身を破壊しかねないのでプラグインを利用した方が無難です。そのようなわけでプラグインを導入するにあたって主な機能の追加は以下のような部分で行われるのが常です。
テンプレートタグの追加
Movable Typeはすでに多くのテンプレートタグが存在します。これらのテンプレートタグは非常にすぐれてすべてのページのある部分を一気に書き換えたりデータベース情報をフォーマットにしたがって綺麗に表示させたりしてくれます。既存のテンプレートタグの他にカスタムフィールドから独自のテンプレートタグを作成したりすることも可能です。しかし、プラグインを使うともっと複雑で高機能なオリジナルのテンプレートタグを作成することが可能です。テンプレートタグにはいくつかの種類がありますが、そのどの種類でもタグを追加することが可能です。
ファンクションタグ
いわゆるスカラー変数的な単独のタグです。ある一つの事柄を表示するために一つのタグ(変数)を使うというような感じです。<$mt:EntryTitle$>などがファンクションタグです。このタグはコンテクストに依存しているものが多いので注意が必要です。<$mt:EntryTitle$>は<mt:Entries>...</mt:Entries>という後述のブロックタグ内で使用することができます。これらのブロックタグのコンテクスト内でないと機能しません。ブロックタグ
スクリプトでの「ループ」や「ブロック」に相当する機能をもったタグです。開始タグと終了タグを持ちそのネストされたコンテクストの中で様々な処理をします。ループに似た動作をして複数のオブジェクト(記事や内容)を列挙するこができます。例えば前述の<mt:Entries>...</mt:Entries>タグは、データベースに収められたブログの内容をすべて表示するためのブロックタグです。コンディショナルタグ
形式としてはブロックタグとよく似ていますが、ここでは主に条件制御を行います。<mt:IfCommentsActive></mt:IfCommentsActive>はコメント機能が有効になっている場合にその中身を実行します。コメント機能を禁止している場合には表示をしません。条件によって様々な表示を切り替えたりすることができます。グローバルモディファイア
出力情報のフィルタリングする機能を追加します。これはタグ自体ではなくタグに取り付ける一種の付属品です。主にファンクションタグに機能を追加して出力結果をいろいろと変化させることができます。先のファンクションタグの例での<$mt:EntryTitle$>は、通常すべてのタイトルを出力しますが、<$mt:EntryTitle trim_to="10"$>でタイトルの最初の10文字を取り出します。管理画面の機能拡張
管理画面にデフォルトの管理以外の機能を追加することができます。Movable Typeの以前のバージョンではテーマを一括して保存することができなかったので、そういう機能などはプラグインで機能を追加し管理画面からテンプレートセットをテーマとして保存できるようになっていました。今現在は必要なくなってしまいましたが...。Movable Typeの管理画面は実はパブリッシングされたブログと同様にテンプレートで出来ています。不思議なことにテンプレートを作成する画面がテンプレートでもって表示されているわけです。管理画面のカスタマイズはこの管理画面のテンプレートをいろいろといじって作成します。
管理画面に機能を追加する際にはMovable Type全体の機能にどのような種類があってどのような構成になっているのかをある程度知る必要があります。ちょっと敷居が高いかもわかりません。


