PostToTwitterでpostするしないを記事毎に設定する

| コメント(0) | トラックバック(0)
・・というタイトルどおりのことがやりたかったのサ。

PostToTwitterはMovableTypeのプラグインです。

改変したのは1.2.0ですが、1.3.0が今日みたら出てた。
MovableType用PostToTwitterプラグイン v1.2.0 (エムロジック放課後プロジェクト)

ブログ記事を投稿したときに、Twitterにそれをpostしてくれるのですが、これが、設定すると、全記事に対してやるようになってまして。
これを、チェックボックスをつけて、指定した記事だけやるようにしたいなぁ、というのが本意です。

他人様のものなんで権利関係調べたところ

http://labs.m-logic.jp/plugins/posttotwitter/docs/post_to_twitter.html
このプラグインの著作権はM-Logic, Inc.が所有しています。著作権者の許可なく本プラグインを使用、改変、再配布することはできません。

http://labs.m-logic.jp/2009/06/movabletypeposttotwitter_v120.html#comment-46641
ご使用いただくのはもちろん、改変についても、改変したプラグインを再配布せず、ご自身でのみ利用するのであれば、問題ありません。
ということなのでやらせてもらおーと。

最初は編集画面の右のらへんにReleaseDateプラグインみたくチェックボックスをつけて、そこにチェックいれたら、、、というようにしようかと思ってたんですが、こちとら筋金入りのMTプラグイン初心者なもんで、いろいろ難しかった。

で、あれこれ調べてみたらカスタムフィールドというものがあるそうで。
要はエントリに付加情報を付けれると。
しかも編集画面などで自動で表示される。
当然記事の付加情報ですから、後で参照もできる、と。
ということでこれが一番楽そう便利そうだったので、この路線で決定。

以下、手順。

このあたりを参考に、チェックボックスを1つ追加しました。
カスタムフィールドを使用する | Movable Type 4 ドキュメント

システムオブジェクト:ブログ記事
名前:twitenable
説明:twitterにpost_to_twitterプラグインを使用してブログ更新を通知するかどうか/通知したかどうか
必須:からっぽ
規定値:からっぽ
ベースネーム:そのままtwitenableが自動入力された
テンプレートタグ:そのままentrydatatwitenableが自動入(ry

これでブログ記事を新規作成した場合に自動でフィールドが出る・・・んですが、デフォではでません。
ブログ編集画面の右上の「表示オプション」を使って、表示するようにしてやる必要があります。

以上で、カスタムフィールドの追加は終了

次にプラグインを改変します。
インストールしてあるpost_to_twitter.plのpost_save_entryメソッドを開きます。
twitterのユーザ名とパスワードをプラグインから読み込んでチェックしてるところらへんに以下のコードを追加

require CustomFields::Util;
my $meta = CustomFields::Util::get_meta($obj);
return doLog("PostToTwitter: No CustomFields.") unless defined $meta;
return doLog("PostToTwitter: No CustomFields [twitenable].") unless defined $meta->{'twitenable'};
return doLog("PostToTwitter: CustomFields [twitenable] is false.") unless $meta->{'twitenable'};

こんだけ。
あとついでに下のほうでpostする文書を整形してるところもあるのでこのへんも好みで改変。

以上で、プラグインの改変は終了。

こんなかんじでブログ編集画面でチェックボックスにチェックをつけたときのみpostするようにできました。
カスタムフィールドなのであとでブログ一覧で検索するときにも閲覧・・・って一覧画面にこのフィールドどうやって出すんだよわかんなかったよ。
まぁ記事の付加情報になってるので見たければ見れるんではないかと。

以上、Perl読んだの久しぶりでした。

当然上記のように再配布はしません。

トラックバック(0)

トラックバックURL: http://polestar.eek.jp/mt/mt/mt-tb.cgi/733

コメントする