アルファサード株式会社 代表取締役 野田 純生のブログ


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


公開日 : 2007-08-30 15:23:56


先日来の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の新しいお作法? のお勉強が可能です。

カテゴリ


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ

ページにルビを振る