2011-03-16 44 views
0

(通過Template Toolkit)對象字符串化,我通過DateTime對象(從DBIx::ClassDBIx::Class::InflateColumn::DateTime)。我可以在模板中執行obj.year和所有其他DateTime操作。但是該對象在我的自定義過濾器中被串化。我基本上呼籲[% user.last_visited_date | time_ago %]其中TIME_AGO是一個自定義過濾器基本上是這樣的:Perl和模板工具包:在我的模板中通過自定義過濾器

sub timeago { 
    sub { my $datetime_obj = shift; #do more work } 
} 

這裏,我期待在自定義過濾器日期時間OBJ,而是它是字符串化..

如何解決這個?

回答

5

不要使用過濾器的是,寫一個custom plugin來代替:

[% YourPlugin.time_ago(user.last_visited_date) %] 

或者添加custom vmethod

[% user.last_visited_date.time_ago %] 

過濾器是指文本重整如HTML編碼和類似。

+1

謝謝。我選擇了vmethod並使用以下作品.'my $ tt = Template-> new; $ tt-> context-> define_vmethod('hash','timeago',\&time_ago);' – 2011-03-17 04:22:30