use base qw( Template::Plugin );
use SL::Presenter;
+use SL::Presenter::ALL;
+use SL::Presenter::Simple;
use SL::Presenter::EscapedText;
use strict;
our $AUTOLOAD;
my ($self, @args) = @_;
-
my $presenter = SL::Presenter->get;
my $method = $AUTOLOAD;
$method =~ s/.*:://;
- return '' unless $presenter->can($method);
+ return '' if $method eq 'DESTROY';
splice @args, -1, 1, %{ $args[-1] } if @args && (ref($args[-1]) eq 'HASH');
- $presenter->$method(@args);
+ if ($SL::Presenter::ALL::presenters{$method}) {
+ return SL::Presenter::ALL::wrap($SL::Presenter::ALL::presenters{$method});
+ }
+
+ if (my $sub = SL::Presenter::Simple->can($method)) {
+ return $sub->(@args);
+ }
+
+ if ($presenter->can($method)) {
+ return $presenter->$method(@args);
+ }
+
+ $::lxdebug->message(LXDebug::WARN(), "SL::Presenter has no method named '$method'!");
+ return;
}
1;
[% USE P %]
- Customer: [% P.customer(customer) %]
+ Customer: [% customer.presenter.customer %]
Linked records:
- [% P.grouped_record_list(RECORDS) %]
+ [% P.record.grouped_list(RECORDS) %]
=head1 FUNCTIONS