FiscalYearlyArchives Plugin 0.10公開
ちょっと前に作ったきりアナウンスを忘れていましたが、FiscalYearlyArchivesをアップデートして年度別アーカイブの他に、年度別カテゴリーアーカイブ、年度別ユーザアーカイブも生成できるようにしました。
FiscalYearlyArchives.ja_JP - Ogawa::Code - Trac
FiscalYearlyArchives - Ogawa::Code - Trac
新しいバージョンは、MTOS/MT 4.2以降でしか動作しません。動作確認は、MTOS 4.15のベータ版でしか行っていません。
MT 4.0から、ユーザがプラグインを使って新しい種類のアーカイブタイプを追加できるようになっていましたが、4.15以降ではちょっとインタフェースが拡張されています。
以前は以下のようにレジストリに特定のデータ構造を格納する必要があったのですが、
sub init_registry {
my $plugin = shift;
$plugin->registry({
'archive_types' => {
'FiscalYearly' =>
ArchiveType(
name => 'FiscalYearly',
archive_label => \&archive_label,
archive_file => \&archive_file,
archive_title => \&archive_title,
date_range => \&date_range,
archive_group_iter => \&archive_group_iter,
archive_group_entries => \&archive_group_entries,
archive_entries_count => \&archive_entries_count,
default_archive_templates => [
ArchiveFileTemplate(
label => 'fiscal/yyyy/index.html',
template => 'fiscal/<$MTArchiveFiscalYear$>/%i',
default => 1
),
],
dynamic_template => 'fiscal/<$MTArchiveFiscalYear$>',
dynamic_support => 1,
date_based => 1,
template_params => {
(snipped)
},
),
}
});
}
4.15以降では大幅に簡略化され、MT::ArchiveTypeのサブクラス(以下の例ではFiscalYearlyArchives::FiscalYearly)を実装しておきさえすれば、以下のような簡単な手続きでシステムに新しいアーカイブタイプを追加できます。もちろん前のインタフェースも依然使えるようになっています。
sub init_registry {
my $plugin = shift;
$plugin->registry({
archive_types => {
'FiscalYearly' => 'FiscalYearlyArchives::FiscalYearly',
},
});
}
MT::ArchiveTypeのサブクラスの実装例はFiscalYearly.pm。MT::ArchiveTypeのサブクラスのMT::ArchiveType::Dateを継承し、いくつか必要なインタフェースを実装しているだけです。他のアーカイブタイプが必要なら同様にMT::ArchiveTypeのサブクラスを実装してレジストリに追加すればいいわけです。
似たような拡張を必要とされている方は、このプラグインのソースコードがきっと役に立つと思います。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/611
Comments (0)