25 lines
546 B
Perl
25 lines
546 B
Perl
package WebGUI::Template::Plugin::Macro;
|
|
|
|
use base 'Template::Plugin';
|
|
|
|
sub new {
|
|
my $config = ref($_[-1]) eq 'HASH' ? pop(@_) : { };
|
|
my ($class, $context) = @_;
|
|
|
|
my $session = $context->stash->{_session};
|
|
|
|
my $subs = {};
|
|
my $macros = $session->config->get("macros");
|
|
for my $macro ( keys %$macros ) {
|
|
my $package = "WebGUI::Macro::\u$macros->{macro}";
|
|
my $process = $package->can('process');
|
|
$subs->{$macro} = sub {
|
|
$process->($session, @_);
|
|
};
|
|
}
|
|
return $subs;
|
|
}
|
|
|
|
1;
|
|
|
|
|