package MT::Plugin::PresetTemplates; use strict; use MT; use MT::Template::Context; use MT::Builder; use Data::Dumper; use base qw(MT::Plugin); our $VERSION = "0.01"; our %defaults; my $plugin = MT::Plugin::PresetTemplates->new({ name => __PACKAGE__, version => $VERSION, description => "", author_name => "milano", author_link => "http://rebecca.ac/milano/mt/", doc_link => "http://rebecca.ac/milano/mt/", config_template => \&template, settings => MT::PluginSettings->new([ ['recently_commented' => { Default => MT->translate_templatized($defaults{recently_commented}) }], ['recently_pinged' => { Default => MT->translate_templatized($defaults{recently_pinged}) }], ['recently_pinged_with_title' => { Default => MT->translate_templatized($defaults{recently_pinged_with_title}) }], ['calendar' => { Default => MT->translate_templatized($defaults{calendar}) }], ['pulldown_archives' => { Default => MT->translate_templatized($defaults{pulldown_archives}) }], ]), }); MT->add_plugin($plugin); MT->add_plugin_action('list_template', '../../mt.cgi?__mode=list_plugins', __PACKAGE__ . ' plugin'); sub instance { $plugin } MT::Template::Context->add_tag( "PresetRecentlyCommented" => \&PresetRecentlyCommented); MT::Template::Context->add_tag( "PresetRecentlyPinged" => \&PresetRecentlyPinged); MT::Template::Context->add_tag( "PresetRecentlyPingedWithTitle" => \&PresetRecentlyPingedWithTitle); MT::Template::Context->add_tag( "PresetCalendar" => \&PresetCalendar); MT::Template::Context->add_tag( "PresetPulldownArchives" => \&PresetPulldownArchives); sub PresetCommon { my ($ctx, $tmpl) = @_; my $out; my $build = $ctx->stash('builder'); my $tokens = $build->compile($ctx, $tmpl) or die $build->errstr; defined($out = $build->build($ctx, $tokens)) or die $build->errstr; return $out; } sub PresetRecentlyCommented { my ($ctx, $args) = @_; my $config = MT::Plugin::PresetTemplates->instance->get_config_hash; return PresetCommon($ctx, $config->{recently_commented}); } sub PresetRecentlyPinged { my ($ctx, $args) = @_; my $config = MT::Plugin::PresetTemplates->instance->get_config_hash; return PresetCommon($ctx, $config->{recently_pinged}); } sub PresetRecentlyPingedWithTitle { my ($ctx, $args) = @_; my $config = MT::Plugin::PresetTemplates->instance->get_config_hash; return PresetCommon($ctx, $config->{recently_pinged_with_title}); } sub PresetCalendar { my ($ctx, $args) = @_; my $config = MT::Plugin::PresetTemplates->instance->get_config_hash; return PresetCommon($ctx, $config->{calendar}); } sub PresetPulldownArchives { my ($ctx, $args) = @_; my $config = MT::Plugin::PresetTemplates->instance->get_config_hash; return PresetCommon($ctx, $config->{pulldown_archives}); } sub template { my $tmpl = <<'EOT';
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|