RebuildAt1stView(Beta) ハイブリッド・パブリッシング対応版。

| コメント(0) | トラックバック(0)

先日来のProNetミーティングや開発者向けカンファレンスで 上ノ郷谷さんがしきりに「ハイブリッド・パブリッシング」と言っていたのでRebuildAt1stViewをハイブリッド・パブリッシングに対応させてみた。これで、テンプレート毎に「インデックス等、頻繁にアクセスされるページは静的生成」その他のページは「最初のリクエストがあった時点で再構築」という使い分けが可能になります。さぁ、再構築の新しい選択肢を今すぐキミも体験してみよう! とかなんとか。

テンプレートの設定オプション

ダウンロード(Ver.0.2)

以下、プラグインがどうこうというよりもMT4のお作法で書き直しつつ新しいフィーチャーを取り入れてみたいということでメモ的なエントリーになりますが。

オブジェクトの拡張もコールバックも「それ、Registryで」

MT4ではデータベースのテーブルの拡張がとても簡単になっています。Hack-a-thonの時にFujimotoさんが「簡単だよ!」って言っていたので (早速公開された「カテゴリーとフォルダを並べ替えるプラグイン(MT4専用)」でも使われています。

今回はmt_templateテーブルを拡張してテンプレート毎に静的再構築、RebuildAt1stView対象を設定できるようにするフラグ「template_rebuild_at」フィールドを追加しました。

拡張の仕方は本当に簡単。Pluginを->newする時に「schema_version」を指定して「init_registry」で拡張するテーブル名、フィールド名とタイプを指定するだけです。

コールバックのところもこれまでは、


MT->add_callback('MT::App::CMS::AppTemplateSource.edit_template',9 ,$plugin, ¥&_ rebuld_option);

とか書いていましたがMT4では「init_registry」の中で指定します。

この他に、タグの追加や__modeの追加も「init_registry」。init_registryがMT4対応プラグイン作成のキモ? かもしれません。

ということで、RebuildAt1StViewのinit_registryはこんな感じ。


sub init_registry {
    my $plugin = shift;
    $plugin->registry({
        object_types => {
            'template' => {
                'rebuild_at' => 'integer',
            },
        },
        callbacks => {
            'build_file_filter'
                => ¥&_build_file_filter,
            'MT::App::CMS::template_source.edit_template'
                => ¥&_rebuld_option,
            'MT::App::CMS::template_param.edit_template'
                => ¥&_rebuild_flag,
        },
   });
}

日本語版のドキュメント充実にも期待していますが、当面はここでMT4の新しいお作法? のお勉強が可能です。

トラックバック(0)

トラックバックURL: http://junnama.alfasado.net/cgi/mt/mt-tb.cgi/198

コメントする

Facebook

Twitter

このブログ記事について

このページは、Junnama Nodaが2007年8月30日 15:23に書いたブログ記事です。

ひとつ前のブログ記事は「「写真の中の明治・大正−国立国会図書館所蔵写真帳から−東京編」。」です。

次のブログ記事は「Excelで作ったリストをMovable Typeに放り込むとっても簡単な方法。」です。

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

Powered by Movable Type 6.2.6