X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FPresenter.pm;h=cd4f4e17e97aa2d5d9a48ad4a7612265162c2d16;hb=826d79929635c726f7459296fafa7e630c00e72d;hp=abfd561fa50dd878089767b1d1eb254689bcee3a;hpb=4f15b8f0ee316711afb118db91f057eec5924d43;p=kivitendo-erp.git diff --git a/SL/Presenter.pm b/SL/Presenter.pm index abfd561fa..cd4f4e17e 100644 --- a/SL/Presenter.pm +++ b/SL/Presenter.pm @@ -7,14 +7,29 @@ use parent qw(Rose::Object); use Carp; use Template; +use SL::Presenter::Chart; use SL::Presenter::CustomerVendor; use SL::Presenter::DeliveryOrder; use SL::Presenter::EscapedText; use SL::Presenter::Invoice; +use SL::Presenter::GL; +use SL::Presenter::Letter; use SL::Presenter::Order; +use SL::Presenter::Part; use SL::Presenter::Project; use SL::Presenter::Record; +use SL::Presenter::RequirementSpec; +use SL::Presenter::RequirementSpecItem; +use SL::Presenter::RequirementSpecTextBlock; +use SL::Presenter::SepaExport; +use SL::Presenter::ShopOrder; use SL::Presenter::Text; +use SL::Presenter::Tag; +use SL::Presenter::BankAccount; + +use Rose::Object::MakeMethods::Generic ( + scalar => [ qw(need_reinit_widgets) ], +); sub get { return $::request->presenter; @@ -39,7 +54,7 @@ sub render { } # Only certain types are supported. - croak "Unsupported type: " . $options->{type} unless $options->{type} =~ m/^(?:html|js|json)$/; + croak "Unsupported type: " . $options->{type} unless $options->{type} =~ m/^(?:html|js|json|text)$/; # The "template" argument must be a string or a reference to one. $template = ${ $template } if ((ref($template) || '') eq 'REF') && (ref(${ $template }) eq 'SL::Presenter::EscapedText'); @@ -48,7 +63,8 @@ sub render { # Look for the file given by $template if $template is not a reference. my $source; if (!ref $template) { - $source = "templates/webpages/${template}." . $options->{type}; + my $ext = $options->{type} eq 'text' ? 'txt' : $options->{type}; + $source = "templates/webpages/${template}.${ext}"; croak "Template file ${source} not found" unless -f $source; } elsif (ref($template) eq 'SCALAR') { @@ -98,6 +114,8 @@ sub render { sub get_template { my ($self) = @_; + # Make locales.pl parse generic/exception.html, too: + # $::form->parse_html_template("generic/exception") $self->{template} ||= Template->new({ INTERPOLATE => 0, EVAL_PERL => 0, @@ -108,6 +126,7 @@ sub get_template { COMPILE_EXT => '.tcc', COMPILE_DIR => $::lx_office_conf{paths}->{userspath} . '/templates-cache', ERROR => 'templates/webpages/generic/exception.html', + ENCODING => 'utf8', }) || croak; return $self->{template}; @@ -222,9 +241,10 @@ The following options are available: =item C -The template type. Can be C (the default), C for JavaScript -or C for JSON content. Affects only the extension that's added -to the file name given with a non-reference C<$template> argument. +The template type. Can be C (the default), C for JavaScript, +C for JSON and C for plain text content. Affects only the +extension that's added to the file name given with a non-reference +C<$template> argument. =item C @@ -241,13 +261,17 @@ the following variables: =item * C -- C<$::auth> +=item * C -- the flash instance (C<$::form-E{FLASH}>) + =item * C
-- C<$::form> +=item * C -- C<$::instance_conf> + =item * C -- C<$::locale> =item * C -- all parameters from C with the same name they appear in the file (first level is the -section, second the actual variable, e.g. C, +section, second the actual variable, e.g. C, C etc) =item * C -- C<$::lxdebug> @@ -256,6 +280,9 @@ C etc) =item * C -- the controller instance +=item * C -- the presenter instance the template is +rendered with + =item * All items from C<%locals> =back