2010年作成のMovable Type(MT)プラグイン一覧

2010年作成のMovable Type(MT)プラグイン一覧

Posted at January 4,2011 8:30 AM
Tag:[MovableType, Plugin]

2010年に当ブログで公開したMovable Typeプラグイン一覧です。用途別+アルファベット順に並べています。2010年に作成したプラグインは合計24と、過去最多です。

よければ2009年のプラグイン一覧もご覧ください。

1.苦労したプラグイン

紹介の前に、作成したプラグインの中で開発に苦労したトップ3を挙げておきます。

第3位:AssetExporter プラグイン

理由:このプラグインはMTDDCに講師として招待されたときのサンプルとして作成したものです。そもそもプラグインによるテーマフレームワークの拡張は初めてだったので(インポータの作成経験はありましたがエクスポータを含めたものは初めて)、その理解から始まり、テーマのエクスポート時にアイテムの実体(ファイル)のダウンロードやレジストリとの対応に苦労しました。

結局、当日まですべてを実装することはできなかったので、アップロード時に元のディレクトリを復元する機能についてはかなり後になって追加しました。

全体で延べ5日ほどかかりました。

第2位:TwitCommentプラグイン

理由:OAuth認証が分かっていなかった+OAuth認証の実装がまったく分かっていなかった+サインイン部分のレジストリの実装が分かっていなかった+OAuth認証後に元のブログ記事ページを表示する方法が全く分かっていなかった、という全く素の状態で着手したため、どこから手をつけてよいのかさっぱり分からず気が狂いそうでした(笑)。そういうわけで、サインイン後にブログ記事ページが表示されたときは本当に感無量でした。

また、Twitterのプロフィール画像をMTのプロフィール画像として収集する処理の実装にも時間がかかりました。

全体で延べ1週間ほどかかりました。

第1位:PreviewTargetChangerプラグイン

理由:2位のTwitCommentプラグインも結構時間がかかったのですが、一番悩んだのはこのPreviewTargetChangerプラグインです。公開する数ヶ月に一度着手したのですが何回作り直しても期待通りの動作にならず、「これはMTの管理画面に何か問題がある!」と勝手に決めつけて(笑)、一度作るのを諦めました。

その後、フォーム送信に関するスキルを身につけ、「フォームから別ウィンドウを開く方法のまとめ」のデータを元に再チャレンジし、ある程度まともな動きになりましたが、プレビュー後に公開ボタンが正常に動作しない(プレビュー画面で再構築が実行されてしまう)ところでつまづき、さんざん悩んだ挙句、ふと「プレビュー時に設定したform要素のtarget属性の値を上書きすればCGI実行画面が切り替わるのでは?」とひらめき、ようやく期待した動作に仕上がりました。自分で使っていて一番気に入っているプラグインのひとつです。

全体で延べ1週間ほどかかりました。

2.管理画面関連

AddAccesskey プラグイン

記事作成画面のフォームボタンに次のaccesskey属性を付与します。Windowsであれば、「Alt+アクセスキー」や「Shift+Alt+アクセスキー」で動作を実行できるようになります。キーの組み合わせはブラウザによって異なります。

  • 下書き保存:d
  • プレビュー:v(デフォルトのまま)
  • プレビューから作成画面に戻る:e(デフォルトのまま)
  • 公開:p
  • 更新:p
  • 公開取り消し:d

AuthorInformationEditControllerプラグイン

システム権限のないMTユーザーについて、ユーザー情報変更画面で「ユーザー名」の入力フィールドを disabled にします。オプションによって「表示名」「電子メール」「ウェブサイトURL」の入力フィールドを disabled にすることができます。

適用後

また、各管理画面右上にあるユーザー情報へのリンク自体を無効にすることもできます。

AvailableWidgetSorter プラグイン

ウィジェットセット編集画面にある右側の「利用可能」に表示されたウィジェットを、ウィジェット名できれいに並べ替えます。

適用前

適用後

CharsetEncoder プラグイン

ウェブサイトまたはブログで出力するページの文字エンコーディングを変更します。

プラグイン設定

文字エンコーディングはテンプレート別の指定も可能です。

インデックステンプレート編集画面

CMSHead プラグイン

管理画面のhead要素に任意の内容を入力することができます。管理画面に独自CSSやscript要素を追加したい場合に便利です。

ExpandCategoryAreaCSS プラグイン

ブログ記事投稿画面のカテゴリ選択エリアを広げます。前述のCMSHead プラグインはここからヒントを得て作成したものです。

変更前

変更後

IncludeTemplateViewer プラグイン

テンプレートモジュールおよびウィジェット編集画面で、インクルード元のテンプレート一覧を出力します。インクルード関係を簡単に把握することができます。

サンプル

InvalidateBlogNameCSS プラグイン

Movable Type 5の管理画面で、長いブログ名を全て表示します。

適用前

適用後

PreviewTargetChangerプラグイン

ブログ記事編集画面で「プレビュー」をクリックすると、プレビューを別ウィンドウに表示し、編集作業を効率よく行うことができます。

PreviewTargetChangerプラグイン

PublishButtonChangerプラグイン

ブログ記事・ウェブページ作成画面で次の動作を行う場合、確認のダイアログを表示します。「OK」をクリックすればクリックしたボタンの動作を継続し、「キャンセル」をクリックすれば中止します。

  • 新規作成→「公開」をクリックしたとき
  • 未公開(原稿)状態→「公開」をクリックしたとき
  • 公開状態→「公開」をクリックしたとき
  • 公開状態→「公開取り消し」をクリックしたとき

また、デフォルトで青色になっている「公開」ボタンの配色をグレーに変更し、「下書き保存」を青色に変更することで、誤って「公開」ボタンをクリックする行為を防止します。

PagePublishControllerプラグイン

ウェブページのスタティックパブリッシングをページ単位に抑止します。下の画面のチェックボックスをチェックしておけば、ウェブページの保存時やアーカイブの再構築時に出力を抑止します。

「お知らせ」などで、ウェブページの本文のみをメインページなどに表示するために利用し、ウェブページ自体を出力したくない場合に便利です。

ThemeConfirmerプラグイン

テーマの「適用」をクリックしたときに、確認のダイアログを表示します。ダイアログにはテーマ名を表示します。

確認のダイアログを表示

3.コメント

ReplyCommenterAddressChangerプラグイン

Movable Typeでは、返信形式でコメント投稿すると、返信元のコメント投稿者にコメント投稿の通知を行う仕様になっています。testのコメント投稿後、yujiroには、次のようにコメントへの返信があったことを通知するメールが届きます。モザイクをかけている部分には返信コメント投稿者のメールアドレスが表示されます。

適用前
適用前

このプラグインを適用すれば、返信元のコメント投稿者に送信される通知メールのFromヘッダのメールアドレスを、次のように任意のアドレスに変更することができます。

適用後
適用後

TwitCommentプラグイン

Movable Typeで、TwitterのOAuth認証によるコメント投稿を実現します。

  • TwitterのOAuth認証でのコメント投稿が可能です
  • TwitterのOAuth認証で投稿されたコメントに対応するコメンター画像が表示可能です

4.テーマ拡張

AssetExporter プラグイン

ウェブサイトまたはブログのアイテムをテーマにエクスポートします。

AssetExporter プラグイン

EntryImporter プラグイン

ブログ記事のインポータを提供します。

PageExporter プラグイン

ウェブサイトまたはブログのウェブページをテーマにエクスポートします。

PageExporter プラグイン

SettingExporter プラグイン

ウェブサイト/ブログの設定をテーマにエクスポートします。

SettingExporter プラグイン

5.拡張テンプレートタグ

AssetDateModified プラグイン

アイテムの更新日を出力するMTAssetDateModifiedタグを提供します。

Crypt プラグイン

文字列の暗号化 (ハッシュ化) を行うcrypt モディファイアを提供します。インデックステンプレートを利用して .htpasswd を出力する場合に便利です。

CustomFieldExtensionTags プラグイン

CustomField用の次のファンクションタグを提供します。これらのタグはMTXXCustomFieldsタグブロック内で有効です。

  • MTCustomFieldTag:カスタムフィールドのテンプレートタグ
  • MTCustomFieldOptions:カスタムフィールドのオプション
  • MTCustomFieldID:カスタムフィールドID
  • MTCustomFieldDefault:カスタムフィールドのデフォルト値
  • MTCustomFieldType:カスタムフィールドの種類
  • MTCustomFieldObjectType:カスタムフィールドのシステムオブジェクト
  • MTCustomFieldBlogID:カスタムフィールドのブログID

EntryRevision プラグイン

ブログ記事のリビジョン番号を出力するMTEntryRevisionファンクションタグを提供します。

IndexFileNameプラグイン

再構築中のインデックステンプレートのファイル名を出力するMTIndexFileNameファンクションタグを提供します。

Object プラグイン

Movable Typeのオブジェクトデータを取得するためのMTObjectsブロックタグとMTObjectファンクションタグを提供します。

6.その他

現在、第1位のプラグインの大変さをはるかに上回るプラグインを2つ開発中です。ひとつはプラグインの動作があまりに複雑過ぎて設計書まで書いてます(笑)。いずれ公開できると思います。

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


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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