[Catalyst] Using a custom TT filter
Adeola Awoyemi
adeola at digitalcraftsmen.net
Tue May 22 12:00:55 GMT 2007
Hello,
In your TT::View you could add:
use base 'Catalyst::View::TT';
sub noDia {
my $text = shift;
$text =~ tr/ăşţîâĂŞŢÎÂ/astiaASTIA/;
return $text;
}
__PACKAGE__->config({
FILTERS => {
'noDia' => \&noDia,
},
});
So, in your template you should be able to use:
[% FILTER noDia -%]
data to parse
[% END %]
I hope this helps. This is just form my knowledge of TT. I'm still
getting used to Catalyst so someone else might have a better idea but
its worth a try ;)
Adeola
On 22 May 2007, at 11:20, Octavian Rasnita wrote:
> Hi,
>
> I am trying to use a custom TT filter in a Catalyst app.
>
> In MyApp.pm I use:
>
> 'View::TT' => {
> PLUGIN_BASE => __PACKAGE__->path_to('lib'),
> },
>
> In the lib dir I have a Diverse/NoDia.pm module that looks like this:
>
> package Diverse::NoDia;
>
> use Template::Plugin::Filter;
> use base 'Template::Plugin::Filter';
>
> sub filter {
> my ($self, $text) = @_;
> $text =~ tr/ăşţîâĂŞŢÎÂ/astiaASTIA/;
> return $text;
> }
> 1;
>
> In the template I use:
>
> [% USE NoDia = Diverse.NoDia -%]
> [% FILTER $NoDia -%]
> ...
> [% END %]
>
> But it gives the following error:
>
> Couldn't render template "plugin error - Can't locate object method
> "load" via package "D:\web\TranzactiiBursiere
> \lib::Diverse::NoDia" (perhaps you forgot
> to load "D:\web\TranzactiiBursiere\lib::Diverse::NoDia"?) at D:/usr/
> site/lib/Template/Plugins.pm line 215.
> "
>
> How can I define a custom TT filter in a Catalyst app?
>
> (I need to filter a text depending on a condition, and I don't know
> if I can use another method for doing this.)
>
> Thank you.
>
>
> Octavian
>
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/
> catalyst at lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
--
Creative Developer - Digital Craftsmen Ltd
Exmouth House, 3 Pine Street
London, EC1R 0JH
t: +44 20 7183 1410
f: +44 20 7099 5140
m: +44 79 3952 0786
w: http://www.digitalcraftsmen.net/
More information about the Catalyst
mailing list