2006年03月15日
Re^2: MovableType Mapperプラグインとlocationプラグインの融合キボンヌ
タイトル、メール状態。
おがわさんから返答いただいたので、もうちょっと考えてみました。
Re: MovableType Mapperプラグインとlocationプラグインの融合キボンヌ
この別プラグインでは、まずエントリーやエントリーに添付された画像ファイルに記述されたロケーション情報をエントリー保存(公開)時にextractして、中間ストレージに保存します。
トラックバックなどのNotification系のアクションは基本的に同じタイミングで行います。
中間ストレージに吐いておくのは、後で別用途でソートしたりする際にも軽くなるので、よいかなと思いました。
ただMovableTypeって、中間ストレージをプラグイン等で自由に作れる公式仕様ってあるんでしたでしょうか。
なかったので今までkeyword属性をいろんな用途に使いまわしたり、RightFieldsとかが画期的だったりしたのかなと思ったのです。
まあなかったとしても、別に勝手にファイルオープンすればよいだけなので、中間ストレージの作成先をプラグインの設定で指定してやればいいだけかもしれませんけど。
ところでAlps Clip!のMTプラグインは、グローバルフィルタ適用時、すなわち再構築時(≒ビューの生成時)にトラックバックを送信しますが、あまり良くないような気も。
再構築するたびにトラックバックを送信する、悪魔のプラグイン…。
Alps Baseの方ではURLでユニフィケーションしてトラックバックを捨てたりしているのでしょうか。
MT::Entry::post_save()などのフックを利用された方がよいでしょう。
これは以前むちゃくちゃ打ちまくってテストしてみたのですが、同じ位置で同じURLからのトラックバックに関しては、時刻は更新されますが重複はしないみたいですね。
でも、ネットワークリソース無駄にしまくりなのでやはり毎回打つのは止めた方がいいっすよね。
作成のフック利用でもいいと思うんですが、エントリ作成でなく更新時に新しい位置情報入れたりするケースもあると思うので、Entryオブジェクトのpinged_urlに突っ込んじゃってもいいと思います。
私がソース追った限りでは、pinged_urlはto_ping_urlの中から既に打ったものについては外す、というのに使っているだけなので、勝手なデータ入れてもMT全体には悪さしなさそうなんで、いいかと思ったんですけど。
テンプレートはエントリー保存時に参照されるものではなく、再構築時(≒ビュー生成時)に参照されるものです。
言い換えると、エントリー保存時のアクションをテンプレートに書くべきではありません。
えっと、[map_hogehoge]でmap_hogehogeテンプレートモジュールと置き換えられる、という部分の事であれば、これは置き換えるというよりも、たとえば[map_hogehoge]という記述があれば、保存時にそこをテンプレート内の記述と置き換えるのではなく、<$MTInclude module="map_hogehoge"$>に置き換えればすむのかなあと。
エントリの持つ位置情報配列の中から先頭何個分について処理するか、といった指定に関しても、SetVarタグあたりをうまく使ってやればできるのかなあと思っています。
そうではなくて、トラックバックは保存時の処理であって、エントリ再構築の中で行うべき処理ではないという意味の事であれば、個人的には所定の機能が得られればどちらでもよいのかなあと思います。
基本的にはエントリ生成/更新による保存と再構築は一連の処理ですし、アーカイブやインデックスページでの巻き添え再構築時に、先にも書いたpinged_urlあたりでping送付済かどうかをチェックするとか、そもそも個別エントリの再構築時にしか動作しない仕様にしておくとかで、トラックバック乱れ打ち!な仕様にさえなってなければいいんじゃないかなと思いました。
昼休み終わっちゃったのでこの位ですが。
Excerpt: 何となく予想できた方面から万艦飾なリクエストが来ました(笑)。 ここギコ!: MovableType Mapperプラグインとlocationプラグインの...
Weblog: Ogawa::Memoranda
Tracked: 2006年03月20日 13:56
![[ここギコ!]](http://kokogiko.net/logo.png)



・MovableType 3.2、MT::App::Trackback.pmの修正(Jak)
・MovableType 3.2、MT::App::Trackback.pmの修正(ambox.su)
・MovableType 3.2、MT::App::Trackback.pmの修正(ambox.su)
・わしズムを読んで「アイヌは民族じゃないよ だから先住民族ではあり得ない」というような奴には、「国連先住『部族』の権利に関する宣言だよ」で問題ない(kokogiko)
・わしズム内の一服の清涼剤「るいるいかむい」(kokogiko)
・大和民族の定義云々について(kokogiko)
・大和民族の定義云々について(kokogiko)
・「定義できない」とのたまうものを自説根拠の説明の中で延々と使う不誠実(笑)(kokogiko)
・わしズム内の一服の清涼剤「るいるいかむい」(むにゅう!)