7月 14

MT3.31とプラグイン(Captcha, Transformer)追加

Tag: MovableTypeTOSHI @ 17:49:11

MTは何事もなく3.3>3.31へとアップデートしますた。…とおもったけど、
MT 3.31のMTEntryTagsの性能バグ – Ogawa::Memoranda
なんて話。あー確かにTag使い出してから重くなったかなーとは思ったけど、俺様ましんで資源はそれなりにあるし、こじんまりしたblogなのでエラー吐くまでは至ってなかったので放置してた。(o)さんパッチ当てて対処。まぁこれ以外にも、標準Tagは使える機能が少ないので物足りない。Tagwire Plugin位にできないものでせうか。

次はCaptcha Plugin導入。
こんなしがないblogにも余裕で500/日とか超えるくらいコメントspamが現れて、もちろんデフォルトのSpamLookup Pluginも優秀ではあるのだけど、やはり学習型なのでどうしても漏れてぬるーしてくるやつも極まれに発生する。そろそろ他の対策も入れてみるかと。
どうせ本気で読んでコメントする人はちゃんとコメントの注意部分読むだろうので、何も言わずにつけてみた。javascriptで表示する部分が私のてんぷれと微妙にあってないので、そこはcaptcha_js.cgiを手で書き換え。preview押した後の画面でcaptcha付け忘れて、しばらくpreviewからコメントできないことになってたけど、MTCommentFieldsタグの中身をいぢると後々まんどいだろうので、コメント部分をテンプレートモジュールでつくって終了。

最後は、MT3.3を入れた最大の動機である、Transformer Plugin。
The blog of H.Fujimoto:Transformerプラグインの作成方法
良い教材があったので、これを元に。後は追記へ。

試しにBigPAPI pluginを使用するものの中でも有名だろうと思われる、UpdateAuthoredOnを書き換えてみることにする。

— UpdateAuthoredOn.pl.orig Thu Dec  1 23:54:24 2005
+++ UpdateAuthoredOn.pl Fri Jun 30 12:41:11 2006
@@ -23,7 +23,7 @@
 });
 MT->add_plugin($plugin);
 
-MT->add_callback('bigpapi::template::edit_entry', 9, $plugin, \&_template);
+MT->add_callback('MT::App::CMS::AppTemplateSource.edit_entry', 9, $plugin, \&_template);
 
 sub _template {
  my ($cb, $app, $template) = @_;
@@ -50,7 +50,7 @@
 </script>
 <input type="button" onclick="update_authored_on();" value="<MT_TRANS phrase="Update">">
 HTML
- $$template =~ s/$old/$new/;
+ $$template =~ s/$old/$new/g;
 }
 
 1;

こんだけ。最初callbackだけ書き換えてみて反映されなくてどうしてだろうと幾分悩んだんだけど、ちゃんとedit_entryのテンプレみると、書き換えに使用するdateのhelp表示部分がMT-3.3では2箇所あるんだよね…。ということで安直に再帰。実際エントリー生成欄に生えた図。
UpdateAuthoredOn.jpg

こんな調子で、必要なテンプレcallbackして該当する部分を置換するようなルーチン作る。エントリー編集で使うボタンを増やしてみたり、
EditCustomButton.jpg
ファイルアップロードのディレクトリを予め指定しておいたり、
UploadFileDirectory.jpg
なんでもござれ。今までMTアップデートの度にテンプレのdiffとってを直書きしてたのが嘘のように素晴らしい。

ちなみに上で作ったプラグインとかは別に公開してもいいけど、超簡単なことしかやってないので僕が出さなくてもできると思う…

コメントをどうぞ