タグ「Movable Type」が付けられているもの

PostToTwitter(再チャレンジ)

先ほどエントリしたMovableTypeからTwitterに投稿するPostToTwitterというプラグイン。Windows Live Writerからの投稿でうまくいかなかったのでよくよく調べたら新しいバージョンが出ていた。

http://labs.m-logic.jp/2009/06/movabletypeposttotwitter_v120.html

いくつかオプションが追加されているし、ectoというツールからの投稿がうんたらかんたらと書いてるのできっとWindows Live Writerからでも投稿できるようになったのだろうということでもう一度チャレンジ。

PostToTwitter

めっきりTwitterが面白くなってきたのでPostToTwitterというMovableTypeのプラグインを入れてみた。

http://labs.m-logic.jp/2007/04/movabletypeposttotwitter_v100.html

これだと、前に書いたTwitterfeedと違ってタイムラグなくTwitterに最新情報をポストできる。

設置も簡単。プラグインをダウンロードして展開し、サーバーにアップロードするだけ。設定もTwitterのアカウントとパスワードを設定するだけ。

というわけでこれが初ポスト。どうかな?

mixiSyncForMT4でmixiとブログを共通化してみてしばらくたつが、以外に面倒。なぜならmixiはイメージに対するリンクに制限があったりいろいろするから。

なので、本家ブログにリンクを張りたいのだが、デフォルトだとブログの中身しかコピーしてくれない。で、ちょっと調べてたらコピーするテンプレートをカスタマイズできるというのでやってみた。

やり方は詳しくはこちら。http://proglab.homelinux.net/software/mixiSyncForMT4/

「mixiSyncForMT4 Entry Template」というのをテンプレートモジュールで作成し、テンプレートを書くだけ。下のような感じ。

20080826214030

これでOK。

で、私はいつも追記とか書かないので、ブログの本体を文字数で切れないものかと考えた。JavaScriptなら、ここで「"<Body>".substring(0,100)」みたいな感じでできないかと。でも甘かった。「<Body>」の置換はJavaScriptの中でやっていた。。。。

で、プラグインのコードを読んでみた。200行目近くで、次のようなコードで置換してた。

(e = E('editor-input-content')) && (val = val.replace (/<\\\$?Body\\\$?>/ig, e.value));

なのでここを、

(e = E('editor-input-content')) && (val = val.replace (/<\\\$?Body\\\$?>/ig, e.value.substring(0,100)));

としてみた。見事カットすることに成功。

が、冷静に考えてみた。

どうせmixiの画面でボタン押さなきゃいけないし、カットしたい場所は記事によって違ったりするし、じゃあブログへのリンクだけはいってりゃあとは手で消した方がいいんじゃない?というわけで元に戻した。

嗚呼。

ちなみに、上の置換のところ、ちょっと効率悪げな気がする。ループの外でE()呼んだ方がいいんじゃない?って思ったけど、ループもほとんど回らないしまぁいいのか。

でも、なんとなくこのプラグインは分かった。これ、実はレビューとか対応することもできるんじゃない?時間があるとき試してみよう。

mixiSync for MT4 for 4.1

以前からmixiでは外部ブログとしてこのブログを登録してたけど、やっぱり外部ブログにしてるってのはmixiからだと「外部のURLですなんちゃらかんちゃら」と出て、自分が見てもちょっと嫌な感じはする。

ってので、ちょっと検索したらmixiSyncっていうMTのプラグインがあることを知った。もともとはVersion3系なんだけど、それを4用に修正した人がいて、さらに4.1用にパッチを作った人がここに。

http://www.sfc.wide.ad.jp/~irino/blog/2008/02/mixisync-for-mt441.php

さっそく入れてみたけど結構簡単。pluginフォルダにコピーして、mixiのIDを設定するとこんな感じでボタンが出てくるようになる。

20080721203553 

で、記事を書いてこのボタンをクリックすると、mixiの日記登録画面がブラウザで表示されて、MTの記事の内容がコピーされるので、そこで必要な修正して登録するとmixiの日記が書けるってわけだ。

こうすると、mixiの日記とブログと同じ記事が簡単に書ける。写真とかたくさん貼ってるのはURL書いておけばいいし、mixiだけ、ブログだけに書きたい場合も簡単。結構融通が利いていいかも。

あと、ブログにくらべるとmixiの日記だとコメント書きやすいしね。

ってことで、こんな感じでしばらくはmixiとブログ両方書いていきますです。改めてよろしく。

Windows Live Writer で Movable Type に投稿すると時刻がずれるらしい
Windows Live Writerで時間が9時間ずれる件について(続編)
Windows Live Writerで時間が9時間ずれる件について(続々編)
Windows Live Writerで投稿すると9時間ずれる件について(恥編)

とお送りしてきたMovable Typeと格闘シリーズ。紆余曲折ありましたが、とうとう原因を突き止めました。もうこうなったらプロの意地というか、原因突き止めるまでは諦めへんで!って感じで、ここんとこ、夜も朝もMovable Typeのスクリプトと格闘。結局、最初はWindows Live Writerをかなり疑ってたけど、Movable Typeが悪かったっつーことで。

で、原因はココ。addons/Commercial.pack/lib/CustomFields/XMLRPCServer.pmの中、15行目。

sub APIPostSave_entry {
    my $plugin = shift;
    my ($cb, $mt, $entry, $original) = @_;

ここをコメントアウトするだけ。こんな感じ。

sub APIPostSave_entry {
#    my $plugin = shift;
    my ($cb, $mt, $entry, $original) = @_;

結局、ここ、コールバック関数になってるようなんですが、引数をshiftしてしまってなんだかよくわからなくしてるんです。実体としては、その下の行に渡ってくるものだけなので、shiftが余計。$pluginも使ってないし、どこかからコピペしてきたのだろうか。。。これが原因で、下の方で$entryをsaveするんだけど、実体としては$originalをsaveしてしまって、そこにはblog_idがついてなくて、ブログの時差設定を読み込めずにmt-congif.cgiのTimeOffsetを使っていたというわけ。TimeOffsetを設定すればうまくいくってのも間違ってはなかったわけだが、根本原因はこちらでした。ちなみに、これはMT4.1のお話。他のバージョンではわかりません。

ちなみに、これ、Commercial.packってのに入ってるんですが、MTOSの4.2には入ってませんでした。なので起きなかった。あと、MySQLを使った場合は、今回のように投稿時にいきなりずれるのですが、SQLiteを使った場合には、投稿時はOKで、次を投稿すると前のが9時間ずれるなんてことになってました。これもよくわからないですが、上の修正で直りました。DBによって何か動作が違うんでしょうか。

再現条件をまとめるとこんな感じになるのかな。

  • MT4.1(or それに近いバージョンで)
  • Commercial.packのCustomFieldsが入っていて
  • XMLRPCのAPI、つまりWindows Live Writerなどを使っている

場合に、時間がずれることがある。対策は上の通り、1行コメントアウトするだけ。もしくはTimeOffsetを指定。

ちなみに、ダブル投稿で解決してた理由はよくわからないし、調べる気もないです。^^;

あー、今日はゆっくり眠れる。

と、この投稿がうまくいけばだけど。^^

(追記) やったぜ!成功!

あー、今朝はボーっとしてたみたい。

MovableTypeのバグみたいに書いたけど、ぜんぜん違うじゃん。。Perl忘れすぎ。

sub offset_time_list { gmtime offset_time(@_) }

って書き方、別にgmtimeをoffset_timeに渡すってだけかな。offset_timeにgmtimeと@_を渡すわけじゃないんじゃん。なんかかなり勘違いしてた模様。

で、WindowsにApacheとPerlとMT入れてみてみたけど、ちゃんとしてるね。。

しかも、なんとこの環境だとずれない。。。。まったくずれない。。。。

DBD::mysqlがうまく入んなくてSQLiteにしたせい?それともMTがMTOS4.2のベータなせい?ますますわからん。。。。むぅぅぅぅ

とりあえず4.2の正式版が出るまで待つしかなかろう。。。。さすがに今アップデートはやだ。

(追記) 解決編はこちらへ。

どうも昨日書いたTimeOffsetの件が気になって朝からまたいろいろ調べてみたらバグらしきものを見つけた。Util.pmのiso2tsって関数でoffset_time_listって関数を呼んでるんだけど引数が違う。。。。実は、offset_timeってのがあって、こちらは時刻とブログのIDと時差補正の方向をもらってるんだけど、offset_time_listは時刻は自分で補完してoffset_timeに渡してる。。つまり、時刻データが2重に渡されてるようだ。ガックリ。時刻が二つ渡されれば、当然一つずつ引数がずれてくるわけで、すると下のMT::Blog->loadが失敗して、$offsetは0になる。。。はず。

....

## Now apply the offset for this weblog.
($s, $m, $h, $d, $mo, $y) = offset_time_list($time, $blog);

....

sub offset_time_list { gmtime offset_time(@_) }

sub offset_time {
    my($ts, $blog, $dir) = @_;
    my $offset;
    if (defined $blog) {
        if (!ref($blog)) {
            require MT::Blog;
            $blog = MT::Blog->load($blog);
        }
        $offset = $blog && $blog->server_offset ? $blog->server_offset : 0;
    } else {
        $offset = MT->config->TimeOffset;
    }
    $offset += 1 if (localtime $ts)[8];
    $offset *= -1 if $dir && $dir eq '-';
    $ts += $offset * 3600;
    $ts;
}

で、この呼び出しのところの関数名をoffset_time_listからoffset_timeに変えてみた。が、しかし状況変わらず。。。ソースをgrepしてみると、同じように時刻データをoffset_time_listに渡してるところがたくさんある。。。ここだけじゃないのね。

というわけで、一度ローカルに環境を作って試してみないといまいち確信が持てないし、修正量が多すぎるのでひとまずTimeOffsetでの回避策に戻す。4.2で直ってないのかな?今日の夜にでも試してみよう。

(追記) 解決編はこちらへ。

以前、「Windows Live Writer で Movable Type に投稿すると時刻がずれるらしい」ってんでエントリを書いたら、少数ながら同じ悩みを抱えている方々がいるようでして。。。んで、結局解決策は見つからないようなので、もう少しじっくり調べてみた。

まずは新しくテスト用にブログを作って。。。とやってみると、いつものダブル投稿の技が効かない!なんで???仕方ないのでMySQLに入ってるデータを見てみるものの、新しく作ったブログと以前からのブログでは別段変わりはない。。。元のブログはバージョン3から使い続けてるデータだからか?移行時に何か変わったのだろうか。にしても、新しく作ったブログの方が痛々しい結果である。

で、プロキシ使ってやり取りしてる内容を見てみるも、中身のPerlもいろいろ見てみるも、どうにもこうにもPerlは久し振りなのでよくわからん。。ただ、XMLRPCServerってファイルでぐにょぐにょしているようだけど、サーバーから帰ってきてる時刻に「Z」がついてない。。。おそらくこれが怪しい。。。UTCなら「Z」がつくはず。

で、怪しいあたりでごにょごにょPerlをいじってみるも、まったく見当違いなのか、値を変えることもできない様子。

で、さらにIgnoreISOTimezonesなんて環境設定の値を参照してるので、設定してみたりしても効果はなし。まぁ、効果はないはずなんだけど。

で、さらにさらにMTの環境変数をいろいろ見てたらTimeOffsetというのが。ダメもとで+9を設定してみると、なんと成功!とりあえずテストブログでは1発で正しい時刻に。MTのインターフェースからも問題なし。日本時刻でしかもちろん書かないのでとりあえずこのまま様子を見てみることにする。

いろいろやってみたものの、結局mt-config.cgiに次の1行を追加するだけ。

TimeOffset +9

さてさて、このエントリははたして正しい時刻で投稿されるのか?

(追記) 時刻はバッチリ!

(追記) 解決編はこちらへ。

Not Japanese Lookup Plugin

Movable Typeを4.1にバージョンアップして、バージョン3のときに修正していた英語のみコメントをはじくのがなくなって、スパムコメントが結構増えていた。

久々にMovable Typeのプラグインをいろいろ眺めてると、Not Japanese Lookupという日本語が入ってないコメント、トラックバックをスパム扱いにするプラグインを見つけた。

http://www.h-fj.com/blog/archives/2005/10/08-110622.php

詳しくは上のリンク先を見てほしいけど、これ、実は3.2の頃からあるみたいですね。気付かなかった。とりあえず導入したので、英語コメントはスパム扱いになったが、CGI自体は動くので負荷がかかってなんだか癪だ。。。。

ちょっと前にスパムコメントがあまりにひどくて、下のようなメールが飛んできた。

[Humming of Lunatics] 螟ァ驥上さ繝。繝ウ繝医↓繧医kIP遖∵ュ「: =?ISO-2022-JP?B??=

Humming of Lunaticsを禁止しました。200秒の間に許可された以上のコメントが
送信されました。

これは悪意のスクリプトがブログをコメントで飽和させるのを阻止するための措
置です。以下のIPアドレスを禁止しました。

xxx.xxx.xxx.xxx

これが間違いである場合は、Movable Typeにログインして、ブログの設定画面に
進み、IP禁止リストからIPアドレスを削除してください。

とりあえずシカトしてたんですがなんとなく気になってコメントをテストしてみると動かなくなってた。ガーン。

仕方がないのでいろいろ調べてると、Movable TypeでComment ThrottleとかTrackback Throttleとか、要はダダダダーってコメントとかトラックバック受けるとブラックリストに乗っけるらしい。

で、これが悪さしてるのか何かわからないけど、コメントしたときに「短い期間にコメントを大量に送りすぎです」みたいなメッセージが出るんだな。

mt-config.cgiに設定書くといいみたいなことが書いてあったけど、メッセージが消えるような気がしなかったのでソース見てみた。どうも条件に引っかかった時にはipbanってのにsave()してるようなので、MySQLの中を見るとmt_ipbanlistってテーブルに上のメールにあるIPアドレスが書かれたレコードが一つ。時刻も大体そのへん。ってことでダメ元でレコード削除。エイッ。

コメントうまくいった。しかし、公開保留。そう、コメント「test」しか書かなかったのでスパム扱いになってました。よく見ると、前にテストしたのもスパムで入ってた。ということは、きちんとしたコメントすればこのメッセージは出なかったのか。という結論。

うーむ。ナゾ。

最近Movable Typeを4.1にして、また結構ブログを書くようになった。いつもWindows Live Writerを使ってるんですが、投稿後にどうも変な所に記事が挿入される。なんどか投稿してるときちんと一番新しいところになるんだけど。。ってな話を嫁にもしたら同じだと。

で、ちょっと調べてみた。原因は不明だが、いまのところ減少はこんな感じ。

  • 最初の投稿のときにどうも時刻がずれる。
  • ずれるというか、UTCの時刻になるらしい。つまり、-9時間。
  • Movable Typeの設定はUTC+9になっていて正しい。
  • Movable Typeの「投稿日時の設定」を設定してもやっぱり-9時間になる。
  • 2回送ると正しい時刻になるようだ。

こんな感じ。とりあえず2回投稿すると正しくなるので、これですすめよう。Movable TypeのUIよりだいぶ楽だから。

(追記) 解決編はこちらへ。

KeywordsAsTags

Windows Live Writerを使い始めて結構経つけど、依然面倒なのがタグ。MovableTypeがタグに対応したのに、そのタグをWLWでは入れられない。で、4.1にバージョンアップしたついでにいろいろ調べてたら出てきたKeywordsAsTagsというMTのプラグイン。WLWでないのがミソ。このプラグインをMTに入れると、キーワードとして登録した文字列がタグに設定される。キーワードならWLWから設定できるのだよ。ウホ。というわけで入れてみたけど便利便利。

http://www.sixapart.jp/movabletype/plugins/keywordsastags.html

Tag4Writer

最近、ブログはすべてWindows Live Writerで書いている。WISYWIGなのでとっても書きやすいんだけど、一つ難点が。Movable Typeが3.32になってタグ機能が標準になったんだけど、Windows Live Writerにはタグ付けの機能がない。つーわけで、投稿後にMovable Typeの管理ページ開いてもう一度シコシコタグを入力してるわけだ。

で、なんとなくいろいろいじってたらどうもプラグインが入れられるらしい。で、ググって見たらTag4Writerというのが見つかったのでインストールしてみた。

んで、この記事を書いてるわけだがうまくMovable Typeのタグに登録できるんだろうか???

ああ。だめだ。本文に入るだけらしい。。。まぁいいか。。

tags: , , ,

p.s. ↑のタグはWindows Live Writerで書いたタグ、↓はMovable Typeで書いたタグ

Movable Type Style Generator

MovableTypeのテンプレートいじるときってだいたい色を変えていくところから始めると思うんですが、このMovable Type Style Generatorというページはそんなときにとっても便利です。

JavaScriptでできていて、色を変えたいところとかスタイルを変えたいところをクリクリクリックしていくだけで簡単にスタイルシートを作ってくれます。

私もここで作ったスタイルシートを使いました。

が。どうもベースが少し古いバージョンのスタイルらしく、タグクラウドとかのモジュール設定がありません。なので、結局変えたところの差分を見ながら、デフォルトのスタイルシートから作り直しました。

ちなみに、同じところにMovable Type Random Style Generatorというのもあります。これはランダム(?)に選んでくれます。面倒な人はこれもいいかもしれません。

 

Google Analytics

着々とブログも成長しつつある。アクセス解析も導入。

今までは忍者ツールズというサイトのアクセス解析ツールとWebalizerというツールを使っていた。Webalizerはサーバー上でApacheログの解析をするものなので融通は利くんだけど、結構面倒なのと検索キーワードなんかの正規化は全部自前なので結構メンテナンスが大変でした。忍者ツールズは結構いい感じ。ただ、右上に「shinobi.jp」って出るのがちょっとだけ気になる。白ベース、黒ベースならいいけど、それ以外の色だとかなり目立つので。(それでも今回もつけてるけど)

今回はまずステップサーバーが提供しているアクセス解析スクリプトを導入。これがかなりしょぼい。自分のアクセス情報も除外できない&XGAなノートPCで見るにはかなりつらい。なのでとりあえず忍者ツールズを入れる。

で、もう少し探していたら、Google Analyticsが使えるのを思い出した。で、登録してスクリプト貼り付けて待つこと約2日。やっとデータが表示されました。しかし、すごいね。これだけの分析タダでやってくれるんだから、多少のタイムラグは許します。(笑)
複数サイトも対応しているようなので、今後予定しているWeenやSuperchunkのブログもこれで解析できそうだし、かなりいい感じですよ。

というわけで今うちのブログは、ステップサーバー、忍者ツールズ、Google Analyticsの3種類のアクセス解析使ってます。で、こういったツールを使う上で重宝しているのがWidget ManagerというMovableTypeのプラグイン。前のブログのときもモジュールたくさん作って管理を楽にしようとがんばってたけど、今度のWidget Managerはホントに便利。モジュールの組み換えがD&Dでできてすごく簡単で、

<$MTWidgetManager name="Widget Managerの名前"$>

って書くだけで簡単にWidgetを貼り付けることできるし。嫁さんに強引に教え込みました。つか、使わない手はないって。

MovableTypeを更新してスタイルシートが常に気になっていたが、ロフトワークという会社がStyleCatcherで利用可能なMovableTypeのテンプレートを公開したらしい。

http://stylecatcher.loftwork.com/

StyleCatcherというのはMovableType 3.3から標準のプラグインとして組み込まれた、MovableTypeに簡単にテンプレートが適用できるプラグイン。が、以前3.2にバージョンアップしたときに見つけていろいろ探したにもかかわらず、あまりいいテンプレートがない、というかそもそも公開されているサイトがないことからがっかりしていた。

今回公開されたのは「ブログデザイン・コンテスト」の優秀作品から選ばれたもの。正直、カッコいいかどうかは好みが分かれるところだと思うが、Livedoorなどのブログテンプレートと同じようなレベルではあるのでちょっと使うには便利。

今後もこのようなサイトがどんどん増えていって欲しいものです。

MTGoogleMaps & MTMapper

ブログがなくなったついでにMovableTypeも3.32-jaにバージョンアップ。いろいろ見てみている。で、前からちょっと気になっていたGoogle MapをMovableTypeにのっける方法。以前はGoogleMapsEditorを使っていたんだけど、インラインフレーム使わなきゃいけないし面倒なので何かいいプラグインはないかなぁと探してみた。

で、見つけたのがMTGoogleMapsというプラグイン。使えそうなのでちょっと使ってみた。が、Firefoxでは見れるけどIEで見れない。これではダメだともっと探す。

で見つけたのがMapper。これはいい。

[map:神奈川県大和市]

と書くと、下のように地図になる。

[map:神奈川県大和市]

これはとっても便利。

1

タグ

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.261