diff options
Diffstat (limited to 'LedgerSMB')
-rwxr-xr-x | LedgerSMB/Template.pm | 60 | ||||
-rwxr-xr-x | LedgerSMB/Template/CSV.pm | 2 | ||||
-rwxr-xr-x | LedgerSMB/Template/HTML.pm | 4 | ||||
-rwxr-xr-x | LedgerSMB/Template/PDF.pm | 2 | ||||
-rwxr-xr-x | LedgerSMB/Template/PS.pm | 2 | ||||
-rwxr-xr-x | LedgerSMB/Template/TXT.pm | 2 |
6 files changed, 62 insertions, 10 deletions
diff --git a/LedgerSMB/Template.pm b/LedgerSMB/Template.pm index de0fa797..ba17f03e 100755 --- a/LedgerSMB/Template.pm +++ b/LedgerSMB/Template.pm @@ -11,17 +11,58 @@ This module renders templates. =over -=item new(user => \%myconfig, template => $string, format => 'HTML', [language => $string,] [include_path => $path], [no_auto_output => $bool], [method => $string], [no_escape => $bool]] ); +=item new(user => \%myconfig, template => $string, format => $string, [language => $string], [include_path => $path], [no_auto_output => $bool], [method => $string], [no_escape => $bool], [debug => $bool] ); This command instantiates a new template: -template is the file name of the template to be processed. -format is the type of format to be used. Currently only HTML is supported -language (optional) specifies the language for template selection. -include_path allows one to override the template directory and use this with user interface templates. -no_auto_output disables the automatic output of rendered templates. -no_escape disables escaping on the template variables. -method is the output method to use, defaults to HTTP -media is a synonym for method + +=over + +=item template + +The name of the template file to be processed. + +=item format + +The format to be used. Currently HTML, PS, PDF, TXT and CSV are supported. + +=item language (optional) + +The language for template selection. + +=item include_path (optional) + +Overrides the template directory. Used with user interface templates. + +=item no_auto_output (optional) + +Disables the automatic output of rendered templates. + +=item no_escape (optional) + +Disables escaping on the template variables. + +=item debug (optional) + +Enables template debugging. + +With the TT-based renderers, HTML, PS, PDF, TXT, and CSV, the portion of the +template to get debugging messages is to be surrounded by +<?lsmb DEBUG format 'foo' ?> statements. Example: + + <tr><td colspan="<?lsmb columns.size ?>"></td></tr> + <tr class="listheading"> + <?lsmb FOREACH column IN columns ?> + <?lsmb DEBUG format '$file line $line : [% $text %]' ?> + <th class="listtop"><?lsmb heading.$column ?></th> + <?lsmb DEBUG format '' ?> + <?lsmb END ?> + </tr> + +=item method/media (optional) + +The output method to use, defaults to HTTP. Media is a synonym for method + +=back =item render($hashref) @@ -64,6 +105,7 @@ sub new { $self->{format} = 'PS' if lc $self->{format} eq 'postscript'; $self->{language} = $args{language}; $self->{no_escape} = $args{no_escape}; + $self->{debug} = $args{debug}; if ($args{outputfile}) { $self->{outputfile} = "${LedgerSMB::Sysconfig::tempdir}/$args{outputfile}"; diff --git a/LedgerSMB/Template/CSV.pm b/LedgerSMB/Template/CSV.pm index c0ff7276..9f494d69 100755 --- a/LedgerSMB/Template/CSV.pm +++ b/LedgerSMB/Template/CSV.pm @@ -81,6 +81,8 @@ sub process { START_TAG => quotemeta('<?lsmb'), END_TAG => quotemeta('?>'), DELIMITER => ';', + DEBUG => ($parent->{debug})? 'dirs': undef, + DEBUG_FORMAT => '', }) || throw Error::Simple Template->error(); if (not $template->process( diff --git a/LedgerSMB/Template/HTML.pm b/LedgerSMB/Template/HTML.pm index 6ec7b833..ae518e18 100755 --- a/LedgerSMB/Template/HTML.pm +++ b/LedgerSMB/Template/HTML.pm @@ -75,12 +75,14 @@ sub process { my $parent = shift; my $cleanvars = shift; my $template; - + $template = Template->new({ INCLUDE_PATH => $parent->{include_path}, START_TAG => quotemeta('<?lsmb'), END_TAG => quotemeta('?>'), DELIMITER => ';', + DEBUG => ($parent->{debug})? 'dirs': undef, + DEBUG_FORMAT => '', }) || throw Error::Simple Template->error(); if (not $template->process( get_template($parent->{template}), diff --git a/LedgerSMB/Template/PDF.pm b/LedgerSMB/Template/PDF.pm index 9c315d62..aca26f71 100755 --- a/LedgerSMB/Template/PDF.pm +++ b/LedgerSMB/Template/PDF.pm @@ -81,6 +81,8 @@ sub process { START_TAG => quotemeta('<?lsmb'), END_TAG => quotemeta('?>'), DELIMITER => ';' + DEBUG => ($parent->{debug})? 'dirs': undef, + DEBUG_FORMAT => '', }) || throw Error::Simple Template::Latex->error(); if (not $template->process( diff --git a/LedgerSMB/Template/PS.pm b/LedgerSMB/Template/PS.pm index f8c048d0..9833dba1 100755 --- a/LedgerSMB/Template/PS.pm +++ b/LedgerSMB/Template/PS.pm @@ -81,6 +81,8 @@ sub process { START_TAG => quotemeta('<?lsmb'), END_TAG => quotemeta('?>'), DELIMITER => ';', + DEBUG => ($parent->{debug})? 'dirs': undef, + DEBUG_FORMAT => '', }) || throw Error::Simple Template::Latex->error(); if (not $template->process( diff --git a/LedgerSMB/Template/TXT.pm b/LedgerSMB/Template/TXT.pm index a950335f..055a6cdd 100755 --- a/LedgerSMB/Template/TXT.pm +++ b/LedgerSMB/Template/TXT.pm @@ -62,6 +62,8 @@ sub process { START_TAG => quotemeta('<?lsmb'), END_TAG => quotemeta('?>'), DELIMITER => ';', + DEBUG => ($parent->{debug})? 'dirs': undef, + DEBUG_FORMAT => '', }) || throw Error::Simple Template->error(); if (not $template->process( |