Top > Movable Type > プラグイン > コールバック [全て開く]
2012年1月 6日

Movable Typeの再構築コストを下げる「RebuildIndexFilterプラグイン」バージョンアップ

Movable Typeのインデックステンプレートの再構築コストを削減する「RebuildIndexFilterプラグイン」をバージョンアップしました。

このプラグインは2008年に公開したものです。ということで、このプラグインをご存知ない方のために、改めて紹介も兼ねたいと思います。

1.インデックステンプレートの再構築について

プラグインの機能を説明する前に、Movable Typeのインデックステンプレートの再構築の振舞いについて解説します。

インデックステンプレートは、その公開設定が「スタティック」になっている場合、管理画面からの再構築を除き、次のいずれかのイベントが発生すると、すべて再構築されるようになっています。

  • ブログ記事の投稿・編集
  • ウェブページの作成・編集
  • コメント投稿
  • トラックバック受信

具体例を示します。「クラシックブログ」テーマでは次の6つのインデックステンプレートが登録されています。

  • アーカイブインデックス
  • スタイルシート
  • メインページ
  • JavaScript
  • RSD
  • 最新記事のフィード

この6つのテンプレートの「公開」設定が、次のように「スタティック」になっているとします。

「公開」設定
公開設定

そうすると、再構築時間に差はありますが、6つのインデックステンプレートがすべて再構築対象になります。ファイルの内容に変更がない場合、ファイル自体は出力されませんが、再構築データと出力ファイルの比較処理まで実施されると思います。

つまり、インデックステンプレート再構築の問題点は、「再構築の必要がないテンプレートまで再構築対象になってしまう」ことです。

もうひとつ例をあげると、コメント投稿では「メインページ」テンプレート以外のインデックステンプレートを再構築する必要はないのですが、MTのデフォルト機能ではそういった制御を行っていないので、再構築対象となってしまいます。公開設定を「手動」にすれば再構築対象外にできますが、そうすると必要なイベントで再構築できなくなります。

また、デフォルトで用意されているインデックステンプレート以外に、Googleサイトマップやサイドメニューなど、多くのページをインデックステンプレートで作っていると、さらに再構築対象のインデックステンプレートが増加し、イベントの応答時間に影響します。

ちなみに当サイトでは、図のように多くのインデックステンプレートを登録しており、ブログ記事投稿やコメント投稿でかなりの再構築コストがかかってました。以前、別のサーバを使っていたときは500エラーも発生することがありました。「最近のブログ記事」などのサイドメニュー類は、各ページで表示内容を統一させたいのでインデックステンプレートで生成し、Ajaxで表示させています。

当ブログのインデックステンプレート
インデックステンプレート

インデックステンプレートだけでなく、インデックステンプレートからインクルードしているテンプレートモジュールも当然再構築対象になります。

2.プラグインの機能

このプラグインを適用すれば、イベントごとに再構築対象のインデックステンプレートを指定できるようになります。

当ブログではこのプラグインを導入して、図のような設定を行いました。これによりイベントごとの再構築時間がかなり短縮されました。

インデックステンプレート

プラグインの具体的な機能ですが、インデックステンプレートの再構築トリガを、次の5種類のイベントから選択することができます。

  • ブログ記事の投稿
  • ウェブページの作成
  • コメント投稿
  • トラックバック受信
  • すべて

例えば、フィードなどは「ブログ記事の投稿」のみをトリガに再構築することで、コメント投稿などによる再構築から除外することができます。設定画面は3項をご覧ください。

3.変更点

今回のバージョンアップでMT5.1に対応できるようにしました。画面処理の変更のみです。インデックステンプレートのオプション設定部分に、次のように「再構築イベント」が表示されます。

インデックステンプレートのオプション設定部分
オプション設定部分

4.プラグインのダウンロード

RebuildIndexFilterプラグインは、以下のリンク先からダウンロードできます。

RebuildIndexFilterプラグイン
Comments [2] | Trackbacks [0]
2011年7月 8日

Movable Typeの投稿コメントのメールアドレスを半角に変換する「CommentEmailByteChangerプラグイン」

Movable Typeの投稿コメントのメールアドレスを半角に変換する「CommentEmailByteChangerプラグイン」を公開します。

1.機能

前提として、MTのコメント投稿機能で、認証なしのコメントを受けつけ、さらに名前とメールアドレスの入力を必須にしている状態にします(下)。

登録/認証画面

この状態でコメントのメールアドレスを全角文字で入力して投稿した場合、次のようなエラーになります。

全角入力して投稿した場合のエラー
エラー

メールアドレスを全角文字での入力(誤った入力)は次のような感じです。

メールアドレスを全角で入力

下は半角文字での入力(正しい入力)です。

メールアドレスを半角で入力

本プラグインを利用すれば、全角文字で入力したメールアドレスを半角文字に変換するので、冒頭のエラーが出なくなります。全角と半角が混在していても大丈夫です。

下は実際に全角で投稿したコメントの編集画面です。メールアドレスが半角で登録されているのが分かります。

コメント編集画面

本プラグインはMT5.0以上で動作します。

注:プラグインという位置づけですが、プラグインを実行させるために、MTのプログラムに1行書き加える必要があります。

2.価格

  • 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
  • 有償版での商用利用:1050円/1サーバ(事前に動作確認してください)

無償でご利用の場合も、プラグインのご利用についてご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

3.プラグインのダウンロード・インストール

下記のリンクをクリックして、プラグインアーカイブをダウンロードします。

CommentEmailByteChanger_0_01.zip

プラグインアーカイブを展開し、中にある CommentEmailByteChangerフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。

システム管理画面のプラグイン設定画面で、「CommentEmailByteChanger~」が表示されればインストール完了です。

プラグイン設定画面

4.プログラムの修正

lib/MT/App/Comments.pmを任意のエディタで開き、910行目付近に、青色で示す1行を追加します。ここではMT5.12現在のプログラムに手を加えていますが、他のバージョンでもこのあたりの処理は変わっていないと思います。ポイントは赤色で示した「_make_comment」で探して、その次の行に挿入することです。

変更前

…前略…
my ( $comment, $commenter ) = _make_comment( $app, $entry, $blog );
return $app->handle_error(
    $app->translate( "An error occurred: [_1]", $app->errstr() ) )
    unless $comment;
…後略…

変更後

…前略…
my ( $comment, $commenter ) = _make_comment( $app, $entry, $blog );
MT->run_callbacks( 'comment_pre_save', $app, $comment, $commenter );
return $app->handle_error(
    $app->translate( "An error occurred: [_1]", $app->errstr() ) )
    unless $comment;
…後略…
Comments [2] | Trackbacks [0]
2011年2月24日

ブログ記事保存時に別のブログ記事を再構築する「RebuildEntryByIdプラグイン」

ブログ記事保存時に別のブログ記事を再構築する「RebuildEntryByIdプラグイン」を公開します。このプラグインは「RebuildBlogByIDプラグイン」や「RebuildIndexByIdプラグイン」を参考にさせて頂いてます。

1.機能

ブログ記事・ウェブページのプライベートタグに再構築したい記事IDを指定しておけば、その記事を保存・更新した時に、指定した記事を同時に再構築します。指定する記事IDは別ブログでも構いません。これにより複数ブログによるサイト構築時、MultiBlogによるインデックスページ以外に、ブログ記事間での再構築の連携が行えるようになります。

文章では伝わりにくいのでイメージを下図に示します。

プラグイン実現イメージ

2.価格

  • 個人無償版/有償版での非商用利用/Movable Type Open Source:無償
  • 有償版での商用利用:1000円/1サーバ(事前に動作確認してください)

無償でご利用の場合も、プラグインのご利用についてご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

3.プラグインのダウンロード

以下のリンクよりプラグインアーカイブをダウンロードします。

RebuildEntryById_0_01.zip

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

プラグインアーカイブを展開し、中にある RebuildEntryByIdフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。

システム管理画面のプラグイン一覧で、「RebuildEntryById~」が表示されればインストール完了です。

プラグイン一覧

5.プライベートタグの設定と動作について

ブログ記事またはウェブページのタグに「@rebuild_x」というプライベートタグを設定してください。「x」の部分には、再構築したい記事のIDを設定します。

このプライベートタグを設定したブログ記事またはウェブページを保存・更新したとき、設定したプライベートタグに含まれる記事IDの記事を再構築します。

複数の記事を再構築したい場合は、「@rebuild_x」というプライベートタグを必要な分だけ設定してください。

6.接頭辞の変更

プライベートタグのデフォルトの設定形式は4項の通り「「@rebuild_x」となっていますが、接頭辞にあたる「rebuild_」を、他の文字列に変更することができます。

変更するには、プラグインを利用したいブログ管理画面のプラグイン一覧で、「RebuildEntryById~」→「設定」をクリックし、「プライベートタグの接頭辞」を書き換えてください。

プラグイン設定画面

7.制約事項

現在、このプラグインで再構築する対象は「ブログ記事アーカイブ」のみです。

Comments [0] | Trackbacks [0]
2010年12月21日

ReplyCommenterAddressChangerプラグイン

Movable Type 5で返信形式でのコメント投稿時のメールアドレスを変更するReplyCommenterAddressChangerプラグインを公開します。

1.機能

Movable Typeでは、返信形式でコメント投稿すると、返信元のコメント投稿者にコメント投稿の通知を行う仕様になっています。例えば、コミュニティ掲示板で、yujiroのコメントに対し、testが次のような返信コメントを行ったとします。

返信コメント

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

返信コメント通知メール

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

返信コメント通知メール

2.プラグインのダウンロード

GithubのReplyCommenterAddressChangerプラグインのページにある「ダウンロード」をクリックして、プラグインアーカイブをダウンロードします。

プラグインのページ

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

プラグインアーカイブを展開し、中にある ReplyCommenterAddressChangerフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。

システム管理画面のプラグイン一覧で、「ReplyCommenterAddressChanger~」が表示されればインストール完了です。

プラグイン一覧

4.プラグインの設定

ブログ(またはウェブサイト)管理画面のプラグイン一覧で、「ReplyCommenterAddressChanger~」→「設定」をクリックし、「From: に表示するメールアドレス」に任意のメールアドレスを設定し、「変更を保存」をクリックします。

プラグインの設定

これで返信コメントを投稿すると、元コメント投稿者には1項の最後に示したメールが送信されます。

Comments [0] | Trackbacks [0]
2010年12月 1日

TwitCommentプラグイン v0.04

December 1,2010 1:55 AM
Tag:[, , ]
Permalink

Movable Typeで、TwitterのOAuth認証によるコメント投稿を実現する「TwitComment」プラグインをバージョンアップしました。

TwitCommentプラグイン

セキュリティアップデートを含んでますので、現在TwitCommentプラグインをご利用の方は、MT5/MT4のいずれのバージョンについてもアップグレード願います。

1.修正内容

プラグインの動作をOAuth Core 1.0からOAuth Core 1.0 Revision Aに準拠するよう変更しました。OAuth Core 1.0では、認証をリクエストしたユーザーとコールバックで戻ってきたユーザーの同一性が判断できず、OAuth Core 1.0 Revision Aでこの問題が解消されているようです。

この改修はmacminiosxさんによるものです。この場をお借りしてお礼申し上げます。冗長な処理も改修していただきました。

また、同一ユーザーからの一定期間内のコメント投稿で、画像ファイルを冗長にアップロードする不具合がありましたので、併せて修正致しました。

2.プラグインのダウンロード

バージョンアップしたプラグインは、「TwitCommentプラグイン」のページからダウンロードできます。

TwitterのOAuth認証でMovable Typeにコメント投稿できる「TwitComment」プラグイン
Comments [0] | Trackbacks [0]
2010年11月25日

TwitCommentプラグイン v.0.22

November 25,2010 12:03 AM
Tag:[, , ]
Permalink

Movable Typeで、TwitterのOAuth認証によるコメント投稿を実現する「TwitComment」プラグイン(MT4.x対応版)をバージョンアップしました。

1.プラグインの機能

TwitterのOAuth認証を使ってMovable Type 4.xにコメント投稿ができます。サインイン時の画面は次の通りです。

サインイン時の画面

動作確認バージョンはMovable Type 4.27です。5.0x対応版も配布しています。

2.修正内容

Movable Type 4.x対応版でプロフィール画像が表示できない不具合を修正しました。

修正前
修正前

修正後
修正後

3.プラグインのダウンロード

バージョンアップしたプラグインは、「TwitCommentプラグイン」のページからダウンロードできます。

TwitterのOAuth認証でMovable Typeにコメント投稿できる「TwitComment」プラグイン
Comments [1] | Trackbacks [0]
2010年11月 8日

TwitCommentプラグイン(Movable Type 4.x対応)

November 8,2010 12:55 AM
Tag:[, , ]
Permalink

先日公開した、Movable TypeでTwitterのOAuth認証によるコメント投稿を実現する「TwitCommentプラグイン」のMovable Type 4対応版を作成しました。

「TwitCommentプラグイン」Movable Type 4対応版

1.機能

機能はMovable Type 5版と同様です。次のように、サインイン時の画面をMT4に対応させています。

サインイン時の画面

動作確認バージョンはMovable Type 4.27です。

注:現在、Twitterのユーザーアイコンが取得できていない事象を確認しているので、別途確認し、対応可能であればバージョンアップします。v0.22で解消しています。

2.プラグインのダウンロード

最新版のプラグインは下記のページよりMovable Type 4対応版をダウンロードしてください。設定方法もMovable Type 5版と同様です。

TwitterのOAuth認証でMovable Typeにコメント投稿できる「TwitComment」プラグイン
Comments [0] | Trackbacks [0]
2010年11月 3日

ArchivePathSelector プラグイン v0.10

Movable Type のブログ管理画面の「設定」→「公開」で「アーカイブパス」を設定している場合でも、特定のアーカイブテンプレートの出力先にサイトパスを選択できる「ArchivePathSelector」プラグインをバージョンアップしました。

1.プラグインの機能

このプラグインは、iPhone 用のテンプレートを併用する際、iPhone 用のアーカイブテンプレートに対し、アーカイブURLやアーカイブパスを適用しないことが目的です。以下に具体例を挙げます。

既存のブログに、次のようなサイトURL・アーカイブURLを設定していると仮定します。

  • サイトURL:http://user-domain/
  • アーカイブURL:http://user-domain/archives/

この状態で、iPhone用のサイトURL・アーカイブURLを次のように設定したいとします。URLの末尾の「i/」というパスは、インデックステンプレートのファイル名、またはアーカイブテンプレートのパスに直接記述します。

  • iPhone用ページのURL:http://user-domain/i/
  • iPhone用アーカイブページのURL:http://user-domain/i/

アーカイブテンプレートのパスに「i」を設定した例
テンプレート編集画面1

ところが、ブログのアーカイブURL・アーカイブパスを設定していると、iPhone用のアーカイブページURLは、どう頑張っても「i」というパスの前にアーカイブパス(赤色部分)が挿入されてしまいます。

  • iPhone用アーカイブページのURL:http://user-domain/archives/i/

ArchivePathSelectorプラグインを利用すれば、アーカイブURL・アーカイブパスを設定していても、iPhone用に公開するページで次のような URL が実現できます。

  • iPhone用ページのURL:http://user-domain/i/
  • iPhone用アーカイブページのURL:http://user-domain/i/

プラグインの利用方法の詳細は「ArchivePathSelectorプラグイン」をご覧ください。

2.修正内容

Windowsで利用できなかった不具合を修正しました。この修正はoscarさんによるものです。ありがとうございました!

また、Movable Type 5でのテンプレート編集画面の表示を改善しました。修正後は、テンプレート編集画面のオプション項目の一番下に、次のように表示されます。

テンプレート編集画面2

その他、インデックステンプレートやテンプレートモジュールなどの編集画面を開くとシステムログにエラーが出力される不具合があったので、これも修正しました。

3.プラグインのダウンロード

バージョンアップしたプラグインは、「ArchivePathSelectorプラグイン」のページからダウンロードできます。

ArchivePathSelectorプラグイン
Comments [0] | Trackbacks [0]
2010年10月26日

PageButeプラグインで分割したページの文字コードを変更する方法

Movable Typeで人気の静的ページ分割プラグイン「PageBute」で、分割したページの文字コードを変更する方法を紹介します。

次の画面は、PageButeプラグインでページ分割したページ(左下にページ送りのナビゲーションあり)の文字エンコーディングが「Shift_JIS」になっていることを示したものです。

PageButeプラグインでページ分割したページ

文字コードを変更する方法は次の通りです。文字コードはブログ(ウェブサイト)またはテンプレート単位に変更することができます。

  • 当サイトで配布中のCharsetEncoderプラグインと組み合わせる
  • PageButeプラグインとCharsetEncoderプラグインを連携させるために、PageButeプラグインファイルに1行だけコードを追加する

ページ分割しないテンプレートもCharsetEncoderプラグインの動作にしたがって文字コードを変更することができます。

修正を行った後、両プラグインの依存関係はないので、いずれかのプラグインを後で無効にしても問題なく動作します。

1.PageButeプラグインの修正

PageBute.pl を任意のエディタで開き、_page_buteという関数の最後の方に、青色で示す1行を追加します。

sub _page_bute {
    my ($cb, %opt) = @_;
    my $ctx = $opt{Context};
    my $pb = $ctx->stash('PageBute');
    return 1 unless($pb);
    …中略…
    for (my $i=0; $i < $#entries; $i++) {
        $output_page_contents .= $entries[$i];
 
        if( ($i + 1) % $split_count == 0 || $i == $#entries - 1) {
        …中略…
            #replace page lists
            if (!$next && !$before && $pb->{show_always} == 0) {
                $output =~ s/\Q$garbage{PageLists}\E//g;
            }
            else {
                $output =~ s/\Q$garbage{PageLists}\E/$page_lists/g;
            }
            MT->run_callbacks('page_bute', \$output, %opt);
            $fmgr->put_data($output,"${file}.new");
            $fmgr->rename("${file}.new",$file);
 
            if($page_count == 1) {
                $ctx->stash('FirstContents', $output);
                $ctx->stash('FirstFileName', $file);
            }
 
            $output_page_contents = '';
            $page_count++;
        }
    }
    $ctx->stash('PageBute', 0);
    1;
}

PageButeのバージョンが3.4.2であれば259行目あたりです。他のバージョンでも赤色で示した「put_data」という行の直前に追加すれば対応できます。

なお、「put_data」という行は_repage_buteという関数の中(バージョン3.4.2であれば287行目付近)にありますが、こちらには修正を加えないでください。

2.CharsetEncoderプラグインのインストール

CharsetEncoderプラグイン」のページからCharsetEncoderプラグインv0.11以降のバージョンをダウンロード・インストールしてください。

これでCharsetEncoderプラグインのプラグイン設定画面、またはテンプレート設定画面に表示された文字コードを指定して再構築を行えば、指定した文字コードでページが出力されます。

3.PageButeとCharsetEncoderの連携イメージ

参考までに、PageButeとCharsetEncoderの連携イメージを掲載しておきます。PageBute.plに独自のフックポイントを追加して、CharsetEncoderからそのフックポイントを利用するようにしています。

PageButeとCharsetEncoderの連携イメージ

Comments [2] | Trackbacks [0]
2010年10月23日

CharsetEncoder プラグイン v0.10

Movable Typeで、任意の文字エンコーディング(文字コード)のページを出力する「CharsetEncoder プラグイン」をバージョンアップしました。

1.変更点

CharsetEncoder プラグイン v0.05」で「テンプレート単位に文字コードの変更が可能になりました」と書きましたが、アーカイブテンプレートに対応していなかったので、対応できるようにしました。

インデックステンプレートの設定画面
インデックステンプレートの設定画面

アーカイブテンプレートの設定画面
アーカイブテンプレートの設定画面

また、プラグイン設定画面およびテンプレート編集画面の選択時のユーザビリティを見直しました。選択が不要な項目はdisableになるようにしています(若干見直しが必要ですがなんとなくということで)。

2.プラグインのダウンロード

最新版のプラグインは下記のページよりダウンロードしてください。

CharsetEncoder プラグイン
Comments [3] | Trackbacks [0]
2010年10月21日

CharsetEncoder プラグイン v0.05

Movable Typeで、任意の文字エンコーディング(文字コード)のページを出力する「CharsetEncoder プラグイン」をバージョンアップしました。

1.変更点

oscarさんからgithub上でpull requestを頂いたので、マージしました。これにより、テンプレート単位に文字コードの変更が可能になりました。ありがとうございました。

この機能追加で、プラグイン設定画面が次のように変更になりました。例えば、テンプレート単位に文字エンコーディングを指定したい場合は、「 テンプレート毎の文字エンコーディング指定を可能にする」から「テンプレート毎に指定する」を選択します。

この設定を行ったあと、テンプレート編集画面に次のような文字コード選択項目が表示されるので、出力したい文字エンコーディングを選択してください。

ブログ/ウェブサイト全体の文字エンコーディング指定も可能です。

2.プラグインのダウンロード

最新版のプラグインは下記のページよりダウンロードできます(操作ミスでgithubにpushできていないため、とりあえずブログのサーバからのダウンロードになっています)。

CharsetEncoder プラグイン
Comments [0] | Trackbacks [0]
2010年7月 8日

CharsetEncoder プラグイン v0.04

July 8,2010 1:55 AM
Tag:[, , ]
Permalink

Movable Typeで指定した文字エンコーディング(文字コード)のページを出力する「CharsetEncoder プラグイン」をバージョンアップしました。

1.変更点

form要素にaccept-charset属性を記述している場合、本来設定すべき属性値「UTF-8」が、プラグインで指定する文字エンコーディングに書き換わる不具合を対処しました。

例えば、プラグインで文字エンコーディングを「EUC-JP」を指定している場合、対処前のaccept-charset属性は、次のようになります。

<form accept-charset="EUC-JP" …中略…>

対処後のaccept-charset属性は、最初に指定した内容が保持されます。

<form accept-charset="UTF-8" …中略…>

2.プラグインのダウンロード

最新版のプラグインは下記のページよりダウンロードできます。

CharsetEncoder プラグイン
Comments [0] | Trackbacks [0]
2010年6月25日

PagePublishControllerプラグイン v0.02

先日公開した、Movable Typeのウェブページの出力を制御する「PagePublishController プラグイン」をバージョンアップしました。

1.変更点

ブログ記事編集画面のカテゴリエリアに「ページを出力しない」のチェックボックスが表示される不具合を対処しました(ボケボケですいません・・・)。

適用前のカテゴリエリア
適用前のカテゴリエリア

適用後のカテゴリエリア
適用後のカテゴリエリア

なお、ブログ記事編集画面に表示されたチェックボックスは機能自体は無効なので、チェックしてもブログ記事では何も制御は行われません。

2.プラグインのダウンロード

最新版のプラグインは下記のページよりダウンロードできます。

PagePublishControllerプラグイン
Comments [0] | Trackbacks [0]
2010年6月23日

PagePublishControllerプラグイン

Movable Type(MT)でウェブページの出力を抑止する「PagePublishControllerプラグイン」を公開します。

MTQでの、CSS HappyLifeの平澤さんのコメントが発端です。

MT5 要望:ページ(html)を生成しないオプション

ウェブページ(エントリーでも良いですが)を使ってサイトのトップページに「特別なお知らせ」として表示させたりするような場合に、ウェブページのテンプレートを別で普通に使っていると、本来ならばページとして不要な「特別なお知らせ」のページも生成されてしまいます。 そのページに特にリンクさせる訳ではないので、あまり閲覧される訳では有りませんが、状況によっては検索時にヒットしてしまったり、不要なhtml が生成されるのは美しくないので、htmlファイル自体を生成しないオプションみたいなモノが有ると嬉しいなーと思っています。

1.機能

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

ウェブページのスタティックパブリッシングをページ単位に抑止

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

このプラグインは、Movable Type 4.x / 5.x で動作します。

2.プラグインのダウンロード

下記の PagePublishController_0_01.zip をクリックして、プラグインアーカイブをダウンロードします。

2010.06.23 初版
2010.06.25 v0.02 ブログ記事編集画面に表示される不具合を対処
PagePublishController_0_02.zip

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

プラグインアーカイブを展開し、中にある PagePublishController フォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロードします。

管理画面にアクセスするとアップグレードが開始するので、「アップグレード開始」をクリックします。

アップグレード1

サインインします。

アップグレード2

これでアップグレード完了です。「Movable Typeに戻る」をクリックすれば管理画面に戻ります。

アップグレード3

システム管理画面のプラグイン一覧で、「PagePublishController~」が表示されればインストール完了です。

プラグイン一覧

4.利用方法

冒頭の画面のように、ウェブページ作成・編集画面の右側に「ページを出力しない」というチェックボックスが表示されます。チェックすればウェブページは出力されません。

5.注意事項

複数のウェブページアーカイブがある場合、一律出力されません。ダイナミックパブリッシングには対応していません。一度出力したウェブページを削除する機能はないため、誤って出力した場合は一旦下書きに戻して、チェックボックスをチェックした状態で再度公開してください。

ウェブページへのリンクを生成しない機能は用意していません。したがって、MTPagesタグなどでウェブページへのリンクを作成したくない場合は、プライベートタグなどを用いてリンクを生成しないようにしてください。

Comments [2] | Trackbacks [0]
2010年6月22日

CharsetEncoder プラグイン v0.03

June 22,2010 1:55 AM
Tag:[, , ]
Permalink

先日公開した「CharsetEncoder プラグイン」をバージョンアップしました。

1.変更点

デフォルの文字トエンコーディング(UTF-8)で本プラグインをインストールしている場合、システムログにプラグインエラーが出力されてしまう不具合を対処しました。

適用前のシステムログに表示されるプラグインのエラー
適用前のシステムログ

バージョンアップ後、UTF-8で運用しているブログに対してエラーログが出力されなくなります。プラグインの設定を行う必要はありません。

2.プラグインのダウンロード

最新版のプラグインは下記のページよりダウンロードできます。

CharsetEncoder プラグイン
Comments [0] | Trackbacks [0]
2010年5月28日

CharsetEncoder プラグイン v0.02

May 28,2010 2:55 AM
Tag:[, , ]
Permalink

先日公開した「CharsetEncoder プラグイン」をバージョンアップしました。

1.変更点

ページにXML宣言が存在する場合、encoding属性の値を指定の文字エンコーディングに変更します(前バージョンでは、ページの文字エンコーディングと、meta要素のcontent属性に含まれる文字エンコーディング指定を変換)。

適用前の(X)HTMLソースのヘッダ部分
適用前の(X)HTMLソースのヘッダ部分

適用後の(X)HTMLソースのヘッダ部分
適用前の(X)HTMLソースのヘッダ部分

最新版のプラグインは下記のページよりダウンロードできます。

CharsetEncoder プラグイン
Comments [0] | Trackbacks [0]
2010年3月19日

RebuildIndexFilter プラグイン v0.10

配布中の「RebuildIndexFilter プラグイン」を、Movable Type 5 対応にしました。このプラグインは、インデックステンプレートの再構築イベントを絞り込むことで、再構築の負荷を軽減するものです。

修正内容は、Movable Type 5 のUIにあわせたのみで、機能的な変更はありません。インデックステンプレートのテンプレート設定画面の一番下に、RebuildIndexFilter プラグインの設定項目が表示されます。

テンプレート設定画面

また、勉強をかねて、プラグイン定義をPerlからYAMLに変更しました。

プラグインは下記のページよりダウンロードしてください。

RebuildIndexFilter プラグイン
Comments [2] | Trackbacks [0]
2009年7月 4日

PostToTwitter プラグイン

July 4,2009 3:55 PM
Tag:[, , ]
Permalink

Movable Type のブログ記事タイトルとパーマリンクのTinyURLを、最近流行の
Twitter にポストする、PostToTwitter プラグインを紹介します。
5日ほど前から Twitter を本格的に始め、Twitterfeed を使ってポストしてます
が、PostToTwitter プラグインを使ってポストすれば、ポストまでの動作が減るの
でおすすめです。プラグインは v1.2.0 から Movable Type 4.0 以上で動作す
るよう変更されています。なお、ブログ記事を編集・保存すると、Twitter には次の
ように表示されます。

プラグイン一覧

以下、設定方法です。

1.PostToTwitter プラグインのダウンロード

エムロジック放課後プロジェクト - PostToTwitter のページに進み、最新バージョンの「ダウンロード」にある、zip形式または tar.gz 形式をクリックします。

2.PostToTwitter プラグインのアップロード・インストール

プラグインアーカイブを展開し、PostToTwitter/plugins 配下にある PostToTwitterフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。

システム管理画面のプラグイン一覧で、「PostToTwitter~」が表示されればインストール完了です。

プラグイン一覧

3.プラグインの設定

ブログ管理画面(注:システム管理画面ではありません)の「ツール」→「プラグイン」→「PostToTwitter」→「設定」をクリックして、下記の項目を設定します。

  • ユーザ名:Twitter で利用しているユーザー名
  • パスワード:Twitter で利用しているユーザーのパスワード
  • エントリーの投稿:ブログ記事を未公開(下書き)から公開に変更した場合に投稿する場合にチェック
  • 実験的なオプション:XML-RPC newPostメソッドを無視する場合にチェック(注:ectoから投稿した際に、異なるURLが連続投稿されるのを回避するための設定です)
  • URL短縮サービス:TinyURLまたはbit.ly を選択

プラグイン設定

Comments [1] | Trackbacks [0]
2009年5月18日

Email2AddressBook プラグイン

May 18,2009 1:55 AM
Tag:[, , ]
Permalink

空メールを送信することで Movable Type のアドレス帳にメールアドレスが登録できるプラグインを公開します。

1.動作概要

以下に、空メールを送信してから、Movable Type のアドレス帳にメールアドレスが登録されるまでの動作概要を示します。

  • アドレス帳に自分のメールアドレスを登録してほしいユーザーは、パソコンや携帯などから空メールを、特定のメールアドレスに送信します(①)。空メールで送信するメールタイトルはプラグインで予め決めておき、それを送信ユーザーに伝えておきます。
  • スケジュールタスクから周期的に MailAdressSubscriber プラグインを起動し、メールをチェックします(②)
  • プラグインで設定したタイトルと同じタイトルが見つかった場合、該当のメールを処理します(③)
  • 処理したメールのメールアドレスに、アドレス帳登録確認メールを返送します(④)
  • 確認メールを受信したユーザーは、確認メールに表示されているリンクをクリックすることで登録が完了します(既存動作)(⑤)

以前、「Movable Type でメールマガジンを作る」というエントリーで、メールマガジン方式で自分のメールアドレスを送信してアドレス帳に登録する方法を紹介しましたが、「自分のメールアドレスが分からない人が多いので」という要望で、このような動作を行うプラグインを開発しました。

2.動作環境

動作環境として、スケジュールタスクの起動が必要です。また、下記の Perl モジュールが必要です。

Net::POP3
MIME::Base64
Email::Address

MT のメール系のプラグインやメール処理では、MIME::Parser がよく使われるので、最初はそれを利用しようと思いましたが、サーバ環境によって正常に動作しないケースが多いため、今回は利用しないことにしました。

Email::Address はレンタルサーバではインストールされていない可能性が高いので、CPAN でインストールするか、インストールが分からない場合は、「Source」を右クリックして、「名前を付けてリンク先を保存」を選択し、Address.pm という名前で保存します。あとはそのファイルを、Movable Type の extlib ディレクトリの下に Email ディレクトリを作ってその下に置けば動くと思います。

あと、Movable Type 4.2 以降の場合、環境変数で EnableAddressBook を有効にしてください。

3.Email2AddressBook プラグインのダウンロード

下記の Email2AddressBook.zip をクリックして、プラグインアーカイブをダウンロード。

2009.05.18 初版(α版です)
Email2AddressBook.zip

プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

4.Email2AddressBook プラグインのアップロード・インストール

プラグインアーカイブを展開し、中にある Email2AddressBook フォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。

システム管理画面のプラグイン一覧で、「Email2AddressBook~」が表示されればインストール完了です。

プラグイン一覧

5.プラグインの設定

システム管理画面の「ツール」→「プラグイン」→「Email2AddressBook」→「設定」をクリックして、下記の項目を設定します。

  • ブログのID番号:アドレス帳を追加したいブログのID番号
  • POPサーバー:プラグインからアクセスするPOPサーバ
  • プロトコル(デフォルトはpop3):プロトコル
  • アカウント:メールのアカウント
  • パスワード:メールのパスワード
  • 登録検出用受信メールタイトル:空メールに設定するタイトル(注:半角英数のみ)
  • メールの削除:空メールを検出する処理でメールをどのように削除するかを選択。「選択されたメールのみ削除」を推奨。「すべてのメールを削除」を選択すると、空メールの有無にかかわらずスケジュールタスクで処理したPOPサーバ上のメールを削除します。「削除しない」を選択すると、POPサーバのメールは削除しませんが、手動で空メールを削除しておかないと次のスケジュールタスクで空メールが重複処理されます

プラグイン設定

とりあえず、設定したタイトルのメールを検出したら次のようなログを出すようにしています。

プラグイン設定

一応、手持ちの環境を使って、携帯からの空メール送信によって携帯のメールアドレスをアドレス帳に登録できることは確認しましたが、すべての環境で動作することを保障するものではありません。

Comments [9] | Trackbacks [0]
2009年3月27日

EntryNotifier プラグイン

March 27,2009 10:52 PM
Tag:[, , ]
Permalink

ブログ記事保存後に、アドレス帳に登録されたメールアドレスに更新通知を送信するプラグインを公開します。

実験中ですので、α版ということでご了承ください。

1.EntryNotifier プラグインのダウンロード

下記の EntryNotifier.zip をクリックして、プラグインアーカイブをダウンロード。

2009.03.27 初版
EntryNotifier.zip

プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

2.EntryNotifier プラグインのアップロード・インストール

プラグインアーカイブを展開し、中にある EntryNotifierフォルダごと、Movable Type のアプリケーションディレクトリの plugins ディレクトリにアップロード。

システム管理画面のプラグイン一覧で、「EntryNotifier~」が表示されればインストール完了です。

プラグイン一覧

3.使用方法

Movable Type 4.2 でアドレス帳機能を利用する」を参考に、アドレス帳に通知したいメールアドレスを追加してください。

追加後、ブログ記事を保存すれば、追加したメールアドレスに更新通知が送信されます。

現在は単に保存動作と連動してメール送信するという基本機能しかありません。オプションやきめ細かい動作についてはこれから追加していきたいと思います。

Comments [2] | Trackbacks [0]
2008年11月10日

asciiCommentfilter プラグイン

「スパムコメントを Movable Type の Junk フォルダに溜めたくない。MT BanASCII も動作しません」という質問を頂いたので、プラグインの勉強をかねて「asciiTBPingfilter」を流用した asciiCommentfilter プラグインを作成しました。

1.プラグインの概要

Mobavle Type では 3.2 以降、Junk Filter を利用して、スパムとみなされたコメントは Junk フォルダに入るようになっています。また誤ってフィルタリングしたコメントを探索・公開できるよう、指定した一定期間、保存できる仕組みになっています。

このプラグインはASCII文字のみのコメントが投稿された場合、Junk フォルダにも入れず、次のようなコメントエラーにします。

コメントエラー

プラグインの主な機能は次の通りです。

  • テキストエリアにASCII文字のみのコメントが投稿された場合、コメント投稿エラーにします(デフォルト:オン)。スパムとして Movable Type のデータベースに保存しません。
  • 設定はブログ単位に可能です。
  • 動作を確認するためのログ出力が可能です(デフォルト:オフ)。

2.動作条件

Perl 5.8 以上であることが必要です(Encode.pm を利用するため)。誤って 5.6.x の環境で利用しても処理異常にならないようにしています。

3.ダウンロード・インストール

下記リンクより asciiTBPingfilter.zip または asciiTBPingfilter.lzh をダウンロードし、アーカイブを解凍してください。

解凍すると中に asciiCommentfilter フォルダがありますので、フォルダごと Movable Type の plugins ディレクトリにアップロードしてください。

MT4 /MT5版の場合、ブログ別管理画面の「システムメニュー」→「プラグイン」で、ASCII Comment Filter Plugin 0.02 が表示されていればOKです。インストール直後から動作が有効になります。

プラグイン画面

プラグインを無効にしたい場合は、ブログ管理画面の「ツール」→「プラグイン」→「ASCII Trackback Ping Filter Plugin」の右側にある「設定」をクリックして、「ASCII 文字のみのコメントをフィルタリング(スパムとしても保存しない)」のチェックボックスをチェックを外し、「変更を保存」をクリックしてください。

プラグイン設定画面

4.ログを出力する

3項のプラグイン設定画面の「フィルタリングされたコメントをログに出力する」のチェックボックスをチェックし、「変更を保存」をクリックしてください。

コメントのフィルタリング状況を、システムログまたはブログ別のログに出力します。

システムログ画面

5.注意事項

サインインして投稿したコメントもフィルタリングの対象になります。

Movable Type 4.2 以降では SpamLookup 以外にもスパムコメント対策が行われているので、コメントフォームから直接投稿しないスパムは、このプラグイン以前に弾かれる可能性があります。

Comments [3] | Trackbacks [0]
2008年9月19日

RebuildIndexFilter プラグイン v0.06

先日公開した「RebuildIndexFilter プラグイン」をさらにバージョンアップしました。

改善点は次の通りです。

  • 日時指定投稿に対応
  • チェックロジックの見直し

プラグインは下記のページよりダウンロードしてください。

RebuildIndexFilter プラグイン

現時点で(多分)確認できている動作は次の通りです。

再構築イベント処理
ブログ記事の投稿/編集 ブログ記事の新規投稿
ブログ記事の日時指定投稿
ブログ記事の編集
プログ記事編集画面からの公開
プログ記事編集画面からの未公開
プログ記事一覧画面からの公開
プログ記事一覧画面からの公開取り消し
プログ記事一覧画面からの削除
ウェブページの作成/編集 ウェブページ新規作成
ウェブページの日時指定作成
ウェブページ編集
ウェブページ編集画面からの公開
ウェブページ編集画面からの未公開
ウェブページ一覧画面からの公開
ウェブページ一覧画面からの公開取り消し
注:「削除」では再構築処理が行われないため、プラグインは動作しません
コメント投稿/編集 コメント投稿
コメントの編集
コメント編集画面からの公開
コメント編集画面からの公開取り消し
コメント一覧画面からの公開
コメント一覧画面からの公開取り消し
コメント一覧画面からのスパム
コメント一覧画面からのスパム解除
トラックバック投稿/編集 トラックバック受信
トラックバックの編集
トラックバック編集画面からの公開
トラックバック編集画面からの公開取り消し
トラックバック一覧画面からの公開
トラックバック一覧画面からの公開取り消し
トラックバック一覧画面からのスパム
トラックバック一覧画面からのスパム解除

インデックステンプレート編集画面からの「保存と再構築」、および再構築画面からの再構築については、プラグインの設定とは関係なく、無条件に再構築します。

日時指定投稿は、ローカルPC環境で run-periodic-tasks をコマンド起動で確認したものですので、レンタルサーバでうまく動作しない場合はご連絡ください。

これで主要なトリガはほぼ網羅したと思いますが、コメント一覧画面からのコメント返信には対応できておりません。

Comments [29] | Trackbacks [1]
2008年9月15日

RebuildIndexFilter プラグイン v0.03

先日公開した「RebuildIndexFilter プラグイン」をバージョンアップしました。

改善点は次の通りです。

  • コメント・トラックバック一覧画面の公開・公開の取り消し・スパム・スパム解除による再構築に対応
  • ブログ記事・ウェブページの新規作成時に動作しない不具合に対応
  • ウェブページ関連の制御の不具合を修正

プラグインは下記のページよりダウンロードしてください。

RebuildIndexFilter プラグイン

なお、スケジュールタスクによる再構築(日時指定投稿)には現在対応しておりません。

Comments [16] | Trackbacks [0]
2008年9月12日

RebuildIndexFilter プラグイン v0.02

先日公開した「RebuildIndexFilter プラグイン」をバージョンアップしました。

改善点は次の通りです。

  • 本格版で複数のイベントを指定できるようにしました
  • スクリプトファイルの変更に対応できるようにしました(本格版・簡易版)
  • 簡易版のプラグイン名を RebuildIndexFilter Lite に変更しました

プラグインは下記のページよりダウンロードしてください。

RebuildIndexFilter プラグイン

アドバイスくださった壱さん、およびご要望くださった bzbell さん、ありがとうございました。

本格版のイベント複数指定は次のように変更しました。

変更前
再構築イベントの種類(変更前)

変更後
再構築イベントの種類(変更後)

簡易版は、MTIgnore タグを複数設定すれば同じ効果があります(多分)。

Comments [9] | Trackbacks [0]
2008年9月10日

RebuildIndexFilter プラグイン

Movable Type のインデックステンプレートの再構築をフィルタリングする RebuildIndexFilter プラグインを作ってみました。MT4.2x/MT5.0x/MT5.1xで動作を確認しています。

1.主な機能

このプラグインは、インデックステンプレートの再構築トリガを、次の5種類のイベントから選択することができます。

  • ブログ記事の投稿
  • ウェブページの作成
  • コメント投稿
  • トラックバック受信
  • すべて

例えば、フィードなどは「ブログ記事の投稿」のみをトリガに再構築することで、コメント投稿やトラックバック受信による再構築から除外することができます。

2.プラグイン作成の経緯

そもそも、Movable Type のインデックステンプレートの再構築のトリガは、再構築画面からの再構築以外に、ブログ記事の投稿やコメント投稿・トラックバック受信も含まれます。

私のブログでは、Google サイトマップや 全エントリータイトルを表示するアーカイブインデックス、タグクラウドといった、再構築に時間のかかるページに加え、サイドバーのパーツ(最近のエントリー・最近のコメント・最近のトラックバックなど)について、インデックステンプレートを使って数多くのモジュール化を行っています。

このため、インデックステンプレート全体を再構築してしまうとサーバにかなりの負荷がかかるのですが、コメント投稿では、コメントとは関係のないインデックステンプレートまですべて再構築してしまいます(内容に変化がなければファイルとしては出力されません)。

このため、現在使用中のサーバ(CORESERVER-A)に移転した直後のインデックステンプレートの再構築関係は次のようになっており、コメント投稿から完了までに30秒ほどかかり、500エラーが多発していました。

改善前の再構築

その後、自ブログに本プラグインを導入し、下の図のように、イベント別に再構築するインデックステンプレートを絞り込んだところ、コメント投稿時間が10秒前後で完了するようになり、劇的に改善しました。

改善後の再構築

ということで、本プラグインを適用し、インデックステンプレートの再構築イベントをフィルタリングすることで、コメント投稿処理やトラックバック受信処理の短縮を図ることができます。また、イベントと関係のないインデックステンプレートの再構築を避けたい、という場合にもお勧めです。

再構築画面からの再構築には影響ありません。

2.価格

  • 非商用利用:無償
  • 商用利用:1050円/1サーバ(購入前に必ず動作確認してください)

非商用利用でご利用の場合も、プラグインのご利用および質問に対する回答等について、ご支援・ご賛同くださる方からの寄付をお待ち申し上げます。

3.プラグインのダウンロード

下記のリンクからプラグインアーカイブをダウンロードし、任意のフォルダに保存してください。今回はデータベースを利用する本格版と、データベースを使用しない簡易版の2種類を用意しました。フィルタリングの動作はどちらも同じですが、設定方法が異なります(詳細は後述)。

変更履歴
2008.09.10 初版
2008.09.12 スクリプト名の変更に対応。本格版について複数イベント指定に対応。
2008.09.15 本格版について、コメント・トラックバックの承認およびスパムに対応。いくつかの不具合を修正
2008.09.16 本格版について、XREA で動作しない不具合を修正
2008.09.16 本格版について、再構築画面からの動作を修正
2008.09.19 本格版について、日時指定投稿に対応。チェックロジックの見直し
2008.09.25 本格版について、日時指定投稿の不具合修正
2008.09.27 本格版について、通知メールからの承認に対応
2008.10.07 本格版について、Can't locate object method "properties" via package "MT::Template" at lib/MT/Object.pm line 195. となるエラーの対処
2010.03.19 v0.10 本格版について、Movable Type 5.0のUIに対応
2012.01.06 v0.11 本格版について、Movable Type 5.1のUIに対応
RebuildIndexFilter_0_09.zip(本格版:MT4.2x用)
RebuildIndexFilter_0_10.zip(本格版:MT5.0x用)
RebuildIndexFilter_0_11.zip(本格版:MT5.1x用)
RebuildIndexFilter.zip(簡易版)

4.インストール

プラグインアーカイブを解凍し、中にある RebuildIndexFilter フォルダを plugins ディレクトリにアップロードしてください。

本格版はアップロードした後に管理画面にアクセスすると、次のようなアップグレード画面になりますので、「アップグレード開始」をクリックし、画面にしたがって操作を進めてください。簡易版はこの画面は表示されません。

MT4の画面(MT5以降も同じです)
プラグイン一覧

ブログ管理画面より「システム」→「プラグイン」でプラグイン一覧を表示し、次のように表示されればOKです。

プラグイン一覧

5.使用方法(本格版)

インデックステンプレートのオプションに「再構築イベント」という項目が表示されるので、そこから再構築を実施したいイベントを選択します。デフォルトはすべてのイベントで無条件に再構築します。

MT4の画面
再構築イベントの種類

MT5.1の画面
再構築イベントの種類

データベースは、Movable Type のアップグレードによる不具合を避けるため、独立したテーブルを作成しています。

現在確認できている動作は次の通りです。

再構築イベント処理
ブログ記事の投稿/編集 ブログ記事の新規投稿
ブログ記事の編集
プログ記事編集画面からの公開
プログ記事編集画面からの未公開
プログ記事一覧画面からの公開
プログ記事一覧画面からの公開取り消し
プログ記事一覧画面からの削除
ウェブページの作成/編集 ウェブページ新規作成
ウェブページ編集
ウェブページ編集画面からの公開
ウェブページ編集画面からの未公開
ウェブページ一覧画面からの公開
ウェブページ一覧画面からの公開取り消し
注:「削除」では再構築処理が行われないため、プラグインは動作しません
コメント投稿/編集 コメント投稿
コメントの編集
コメント編集画面からの公開
コメント編集画面からの公開取り消し
コメント一覧画面からの公開
コメント一覧画面からの公開取り消し
コメント一覧画面からのスパム
コメント一覧画面からのスパム解除
通知メールからの承認
通知メールからのスパム指定
トラックバック投稿/編集 トラックバック受信
トラックバックの編集
トラックバック編集画面からの公開
トラックバック編集画面からの公開取り消し
トラックバック一覧画面からの公開
トラックバック一覧画面からの公開取り消し
トラックバック一覧画面からのスパム
トラックバック一覧画面からのスパム解除
通知メールからの承認
通知メールからのスパム指定

インデックステンプレート編集画面からの「保存と再構築」、および再構築画面からの再構築については、プラグインの設定とは関係なく、無条件に再構築します。

6.使用方法(簡易版)

インデックステンプレートの中に次のような MTIgnore タグを挿入します。挿入位置はどこでも構いません。プラグインは、この挿入された MTIgnore タグを検索して再構築をフィルタリングします。

再構築イベント

記述する内容は次の通りです。

ブログ記事投稿・編集で再構築を行う場合
<mt:ignore>EntryOnly</mt:ignore>
ウェブページ作成・編集で再構築を行う場合
<mt:ignore>PageOnly</mt:ignore>
コメント投稿で再構築を行う場合
<mt:ignore>CommentOnly</mt:ignore>
トラックバック受信で再構築を行う場合
<mt:ignore>PingOnly</mt:ignore>

何も挿入しない場合は無条件に再構築します。

7.その他

イベントの判定方法はあまりエレガントではないので、完璧に動作するかどうかは分かりません。基本的な動作については正常性を確認しています。

2008.09.10
5項の画面が間違っていたので差し替えました。

Comments [11] | Trackbacks [1]
2008年8月21日

mixi OpenID を利用してコメント投稿する for Movable Type 4.2

August 21,2008 2:11 AM
Tag:[, , ]
Permalink

mixi のアカウントで、Movable Type のコメント投稿時の認証が可能になりました。

実は、8月19日に開催された「Movable Type Developer Conference」で、ぴろりさんのLightning Talks 「こんな Movable Type はいやだ」の中で、「mixi アカウントでコメント認証できる」というジョークがあったのですが、8月20日に「mixi OpenID」サービスが開始され、その日にシックスアパートから mixi OpenID 対応のプラグインがリリースされました。偶然にしてはでき過ぎです。

シックス・アパートが、Movable Typeを「mixi OpenID」に対応

以下、mixiComment プラグインの設定方法とコメント投稿方法を紹介します。

なお、mixiComment プラグインが動作するには、Perl の Crypt::SSLeay モジュールがインストールされている必要があります。
早速インストールしてみました。CORESERVER-A は大丈夫です。

1.プラグインのダウンロード・インストール

mixiComment プラグインのページの右上にある「詳細・サポート・ダウンロード」をクリック。

ダウンロード

ダウンロードアーカイブを展開して、中にある plugins 配下にある mixiComment フォルダを、アプリケーションディレクトリの plugins フォルダに丸ごとアップロードしてください。

また、mt-static/plugins 配下にある mixiComment フォルダを、アプリケーションディレクトリの mt-static/plugins フォルダに丸ごとアップロードしてください。

「システムメニュー」→「プラグイン」でプラグインの一覧が表示されるので、「mixiComment 1.0」が表示されていればインストールOKです。

プラグインの一覧

2.設定

ブログ管理画面の「設定」→「登録/認証」を開いて、表示されている「mixi」のチェックボックスをチェックし、「変更を保存」をクリックします。再構築は不要です。

登録/認証

これで mixi アカウントによるコメント投稿が可能になります。

3.コメント投稿

当ブログを例に説明します。

コメント投稿の「サインイン」をクリック。

サインイン

認証方式から「mixi」を選択。

認証方式選択

表示された「mixiでログイン」をクリック。

サインイン画面

mixi のユーザー・パスワードでログインします。

mixi ログイン画面

openID 利用同意のページが表示されるので、「今回は同意する」または「この外部サイトの場合常に同意する」をクリック。

mixi ログイン画面

サインインできました。

コメント投稿画面

Comments [2] | Trackbacks [1]
2007年9月14日

asciiTBPingfilter プラグイン v2.0

September 14,2007 1:55 AM
Tag:[, ]
Permalink

海外からのトラックバックスパムに悩んでいる Movable Type 4 ユーザの皆様、ASCII 文字のみのトラックバックをフィルタリングし、スパムとしても保留しない asciiTBPingfilter プラグインを、MT4対応にバージョンアップしました。

プラグインをご利用になる場合は、下記よりダウンロードしてください。

asciiTBPingfilter プラグイン

今回のバージョンアップでは、ログ出力を管理画面から制御できるようにしました。また、コンフィグレーション画面を日本語対応にしました(下)。

asciiTBPingfilter プラグイン管理画面

ログ出力はプラグイン動作確認用ですので、常時ONにしないことを推奨します。

Comments [0] | Trackbacks [2]
2006年9月20日

重複トラックバック防止プラグイン(3.3版)

September 20,2006 1:11 AM
Tag:[, , ]
Permalink

同一エントリーへの重複トラックバックを抑止するプラグインです。

Movable Type は、バージョン 3.2 まで重複トラックバックに対する制御は行われていませんでしたが、3.3 以降、 重複トラックバック(送信元URL・タイトル・概要が同一のトラックバック)を受信した場合、その内容を過去に受信したトラックバックに上書きするよう、処理が変更されました。

追加された処理は、トラックバック送信後に送信元記事のタイトルあるいはトラックバックの概要を変更してトラックバックを再送信するようなケースを考えた場合、非常に有効です。

現在「重複トラックバック防止プラグイン」を公開しておりますが、上記の理由で 3.3 では重複トラックバック防止プラグインが不要となりました。

ただし、全く同一の内容が再送信された場合ー例えば初回のトラックバック送信がタイムアウトになり(送信が完結しないと Movable Type では「トラックバック送信先のURL」にデータが残ります)、エントリーを再保存(つまり再送信)してしまったケース等ーでも上書き処理が行われ、再構築が発生します。

本プラグインは、内容が全く同一のトラックバックのみをフィルタリングし、再構築を発生させないことを目的としたものです。 *1

1.プラグインのダウンロード

下記の duplicateTBPingThrottlefilter.zip または duplicateTBPingThrottlefilter.lzh をダウンロードしてください。

duplicateTBPingThrottlefilter.zip
duplicateTBPingThrottlefilter.lzh

2.プラグインのアップロード

ダウンロードしたアーカイブを解凍してください。解凍すると中に duplicateTBPingThrottlefilter フォルダがありますので、Movable Type の plugins ディレクトリにフォルダごとアップロードしてください。

アップロード後、管理画面の

メイン・メニュー > システム・メニュー > プラグイン

の画面に利用中のプラグイン一覧が表示されますので、その中に「Duplicate Trackback Ping Throttle Filter Plugin ?」が表示されていればOKです。

3.設定

特にありません。2項でプラグインが表示されていれば有効です。

4.ログ

トラックバックがフィルタリングされた場合、ログに

Filter duplicate trackback ping from the following URL:http://?

というメッセージを出力します。


*1:というのは建前で、「過去に作った重複トラック防止バックプラグインを無駄にしたくない」というのが本音。

Comments [2] | Trackbacks [3]
2006年7月25日

asciiTBPingfilter プラグイン

July 25,2006 1:33 AM
Tag:[, ]
Permalink

ASCII 文字のみのトラックバックをフィルタリングする Movable Type プラグインを作りました。

1.プラグインの概要

Mobavle Type では 3.2 以降、Junk Filter を利用して、スパムとみなされたトラックバックは Junk フォルダに入るようになっています。また誤ってフィルタリングしたトラックバックを探索・公開できるよう、指定した一定期間、保存できる仕組みになっています。

その流れに逆行して、このプラグインはASCII文字のみのトラックバックを受信した場合、Junk フォルダにも入れず、送信元に 403 を返却します。

本プラグインは下記の CommentFilter コールバックのプラグインのアイデアを元に、TBPingThrottleFilter コールバック に移植させて頂いたものです。

blog.bulknews.netMTBanASCII: コメントSPAM対策を MT3 に移植

上記のプラグインは 3.2 対応の Junk Filter を利用したものも配布されていますので、トラックバックスパムと判断されたものを Junk フォルダに入れる場合は、下記のプラグインをご利用になることをお勧めします。

blog.bulknews.netMT BanASCII 3.2 対応

Junk Filter API では Junk フォルダに入れない方法が存在しないと思い込んで TBPingThrottleFilter コールバックを利用しましたが、勘違いでしたらご指摘ください。

2.プラグインを作った理由

概ね下記のような理由です。

  1. 毎日大量のトラックバックスパムが Junk フォルダに入るが、その中に公開すべきトラックバックが時々紛れており、見つけるのに結構手間がかかる
  2. サーバの負荷をできるだけ軽減したい

1.の補足として、頻繁に迷惑トラックバックリストをチェックする訳ではないので、削除日数をやや長めにしており、それが逆にトラックバックスパムを山積みにする原因を引き起こしています。

現在1週間ほど使用していますが、Junk フォルダに入る ASCII 文字のみの迷惑トラックバックは0件。またスパムと誤認識された日本語を含むトラックバックだけが Junk フォルダに入っており、作業効率が格段に向上しました。

3.動作条件

Perl 5.8 以上であることが必要です(Encode.pm を利用するため)。誤って 5.6.x の環境で利用しても処理異常にならないようにしています。

4.ダウンロード・インストール

下記リンクより asciiTBPingfilter.zip または asciiTBPingfilter.lzh をダウンロードし、アーカイブを解凍してください。

asciiTBPingfilter.zip(MT4.x用)
asciiTBPingfilter.lzh(MT4.x用)

asciiTBPingfilter.zip(MT3.x用)
asciiTBPingfilter.lzh(MT3.x用)

解凍すると中に asciiTBPingfilter フォルダがありますので、フォルダごと Movable Type の plugins ディレクトリにアップロードしてください(下記は MT3.x 版の例)。

MTディレクトリ/plugins/asciiTBPingfilter/asciiTBPingfilter.pl
MTディレクトリ/plugins/asciiTBPingfilter/tmpl/config.tmpl

MT4 版の場合、ブログ別管理画面の [設定]→[プラグイン] で、ASCII Trackback Ping Filter Plugin 2.x が表示されていればOKです。インストール直後から動作が有効になります。

MT3 版の場合、管理画面のメイン・メニューの「利用可能なプラグインの設定」に「ASCII Trackback Ping Filter Plugin ?」が表示されればOKです。デフォルトではプラグインは無効になっています。有効にするには、ブログ別管理メニューの[設定]→[プラグイン]→[ASCII Trackback Ping Filter Plugin]の右側にある「設定を表示」をクリックして、左に表示されたチェックボックスをチェックし、「変更を保存」をクリックしてください。

5.フィルタリングの状況を把握したい場合

MT4.x 版はプラグイン管理画面より設定できます(下記)。

asciiTBPingfilter プラグイン管理画面

MT3.x版は、asciiTBPingfilter.pl を任意のエディタで開き、

# logging
our $log = 0;

の "0" を "1" に変更してアップロードすれば、ASCII文字のみのトラックバックを受信した時に

Filter ascii trackback ping. URL:http://hogehoge IP:xxx.xxx.xxx.xxx

という内容がシステムメニューのログに出力されます(ブログ別のログには出力されません)。

ログはプラグインの動作確認用です。スパムによってログが大量に出力される可能性がありますので、確認後はOFFにしてください。

2007.09.14
MT4対応を追加しました。

Comments [43] | Trackbacks [33]
2005年5月28日

重複トラックバック防止プラグイン

May 28,2005 11:59 PM
Tag:[, , , ]
Permalink

同一エントリーへの重複トラックバックを抑止するプラグインです。このプラグインは Movable Type 3.1/3.2 で有効です。3.3 以降は「重複トラックバック防止プラグイン(3.3版)」をご利用ください

duplicateTBPingfilter.zip (3.2x版)
duplicateTBPingfilter.zip (3.1x版) *1
2005.05.28 Ver 1.00
2005.05.30 Ver 1.01 ロジック修正(1.00と機能的な差分はありません)
2005.05.30 Ver 1.02 プラグイン名変更(〃) ←すいません…
2005.10.05 Ver 2.00 3.2x版対応(ブログ別設定機能追加)

本プラグインは下記の機能を有します。

  • 同一エントリーに対する、同一URLからのトラックバックを受け付けないようにすることができます。
  • チェック方法は、トラックバック受信時、同一エントリー内のトラックバック(の source_url )を新着順に取り出し、受信したトラックバックの source_url と比較、同一URLであればフィルタ対象とします。
  • 受信したトラックバックに含まれるタイトルまたは概要を含めたフィルタリングが可能です。デフォルトではタイトル・概要が全く同じトラックバックのみをフィルタリングしています(カスタマイズ方法は後述)。
  • チェックするトラックバック数を指定できます(カスタマイズ方法は後述)。
  • トラックバックがフィルタリングされた場合、ログを出力します。

1.使用方法

duplicateTBPingfilter.zipをダウンロードし、アーカイブを解凍してください。解凍すると中に duplicateTBPingfilter.pl がありますので Movable Type の plugins ディレクトリにアップロードしてください。3.2x の場合は duplicateTBPingfilter ディレクトリを含めてplugins ディレクトリにアップロードしてください。管理画面のメイン・メニューの「利用可能なプラグインの設定」に「Duplicate Trackback Ping Filter Plugin ?」が表示されればOKです。3.2xの場合は、管理メニューの[設定]→[プラグイン]→[Duplicate Trackback Ping Filter Plugin]の右側にある「設定を表示」をクリックして、左に表示されたチェックボックスをチェックし、「変更を保存」をクリックすることで有効になります。

フィルタされたURLについてはログに

Filter duplicate trackback ping from the following URL:http://?

というメッセージを出力します。

2.カスタマイズ

2.1 トラックバックのタイトルをフィルタ対象にする

エントリー内に同一URLからのトラックバックが検出された場合、新着トラックバックのタイトルと登録済トラックバックのタイトルを比較する/しないを設定します。比較する場合、タイトルの文字列が異なっていれば新たなトラックバックとして受け付けます。比較する場合は "1"、しない場合は "0" を赤色部分に設定します。デフォルトは "1" を設定しています。

our $title = 1;

2.2 トラックバックの概要をフィルタ対象にする

エントリー内に同一URLからのトラックバックが検出された場合、新着トラックバックの概要と登録済トラックバックの概要を比較する/しないを設定します。比較する場合、概要の文字列が異なっていれば新たなトラックバックとして受け付けます。比較する場合は "1"、しない場合は "0" を赤色部分に設定します。デフォルトは "1" を設定しています。

our $excerpt = 1;

2.3 チェックするトラックバック数を指定する

エントリーに登録されたトラックバックと最大いくつまでチェックするかを指定します。例えば3つまでチェックしたい場合は "3" を赤色部分に設定します。デフォルトは "0" で、これはエントリー内の全てのトラックバックがチェック対象であることを意味します(同一URLのトラックバックが見つかった時点で処理を終了します)。

our $counter = 0;

3.その他

このプラグインは TBPingFilter という Application Level Callback を使用しています。フィルタされた場合はトラックバックを登録しませんが相手サイトには 403 Forbidden が返却されます。これを正常に終了したかのようにするには、lib/MT/App/Trackback.pm の 280行目辺りを

$ping->blog_name($blog_name);
if (!MT->run_callbacks('TBPingFilter', $app, $ping)) {
    return $app->_response(Error => "", Code => 403);
    return 1;
}
 
$ping->save;

と変更します。この変更により、相手サイトにはトラックバックが正常終了したかのようにみえますので、さらに重複トラックバックが送信される可能性が低くなります。ただし他のプラグインと競合している場合はご注意ください。

なお、送信時間が極端に近いトラックバックについては重複してしまいます。また離れていても同一トラックバックとみなせないケースがあるようですので予めご容赦ください。

2005.05.30 変更
本文をプラグインの説明と入れ替えました。以前の内容は下記の追記に移動しました。

2005.07.06 変更
本文の最後に重複する可能性のあるケースを追加しました。

2005.10.05 追記
3.2x版をリリースしました。また本文に3.2x版の設定方法を追記しました。


*1:3.2xでも使用可能ですが、ブログ別の設定はできません。

Comments [31] | Trackbacks [48]
Now loading...
Introduction
List of "コールバック"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site
loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.12