[vhffs-dev] [903] Forgot to add new Vhffs::Panel::Template package.

[ Thread Index | Date Index | More vhffs.org/vhffs-dev Archives ]


Revision: 903
Author:   beuss
Date:     2007-09-11 04:53:11 +0000 (Tue, 11 Sep 2007)

Log Message:
-----------
Forgot to add new Vhffs::Panel::Template package.

Added Paths:
-----------
    trunk/vhffs-api/src/Vhffs/Panel/Template.pm


Added: trunk/vhffs-api/src/Vhffs/Panel/Template.pm
===================================================================
--- trunk/vhffs-api/src/Vhffs/Panel/Template.pm	                        (rev 0)
+++ trunk/vhffs-api/src/Vhffs/Panel/Template.pm	2007-09-11 04:53:11 UTC (rev 903)
@@ -0,0 +1,84 @@
+#!%PERL%
+# Copyright (c) vhffs project and its contributors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without 
+# modification, are permitted provided that the following conditions 
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright 
+#   notice, this list of conditions and the following disclaimer.
+#2. Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in 
+#   the documentation and/or other materials provided with the 
+#   distribution.
+#3. Neither the name of vhffs nor the names of its contributors 
+#   may be used to endorse or promote products derived from this 
+#   software without specific prior written permission.
+#
+#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+#FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+#COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+#INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+#BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+#CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+# POSSIBILITY OF SUCH DAMAGE.
+
+=pod
+
+=head1 NAME
+
+Vhffs::Panel::Template - HTML::Template::Expr sublasse with utility functions
+
+=head1 SYNOPSIS
+
+    my $template = new Vhffs::Panel::Template(same params as
+    HTML::Template::Expr)
+
+This class allow you to use <tmpl_i18n key="k"> constructs in your template
+files. Each tmpl_i18n tag is replaced by the corresponding translation using
+gettext.
+
+=cut
+
+package Vhffs::Panel::Template;
+
+use base qw(HTML::Template::Expr);
+use strict;
+use Locale::gettext;
+
+sub new {
+    my $class = shift;
+    my %options = (@_);
+
+    if(exists $options{filter}) {
+        my $filter = $options{filter};
+        if(ref($filter) eq 'ARRAY') {
+            $filter->[@{$filter}] = \&i18n_filter;
+        } else {
+            $filter = [$filter, \&i18n_filter];
+        }
+        $options{filter} = $filter;
+    } else {
+        $options{filter} = \&i18n_filter;
+    }
+
+    return $class->SUPER::new(%options);
+}
+
+sub i18n_filter {
+    my $txt = shift;
+    $$txt =~ s/<\s*[Tt][Mm][Pp][Ll]_[Ii]18[Nn]\s+[Kk][Ee][Yy]="([^"]+)"\s*>/gettext($1)/ge;
+}
+
+1;
+
+__END__
+=head1 AUTHORS
+
+Sebastien Le Ray < beuss at tuxfamily dot org >


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/