Revision f3978ea1
Von Moritz Bunkus vor mehr als 11 Jahren hinzugefügt
SL/Controller/Base.pm | ||
---|---|---|
80 | 80 |
croak "Unsupported type: " . $options->{type} unless $options->{type} =~ m/^(?:html|js|json)$/; |
81 | 81 |
|
82 | 82 |
# The "template" argument must be a string or a reference to one. |
83 |
$template = ${ $template } if ((ref($template) || '') eq 'REF') && (ref(${ $template }) eq 'SL::Presenter::EscapedText'); |
|
83 | 84 |
croak "Unsupported 'template' reference type: " . ref($template) if ref($template) && (ref($template) !~ m/^(?:SCALAR|SL::Presenter::EscapedText)$/); |
84 | 85 |
|
85 | 86 |
# If all output is turned off then don't output the header either. |
Auch abrufbar als: Unified diff
SL::{Controller,Presenter}->render: $template kann auch ref auf Instanz von EscapedText sein
Die folgenden Fälle werden nun für $template wie folgt behandelt:
- keine Ref: $tempalte wird als Dateiname interpretiert
- Ref auf einen String (ref eq 'SCALAR'): Zu rendernder String,
direkte Übergabe an Template
- Instanz von EscapedText und Ref auf Instanz von EscapedText: Zu
rendernder String ist der von EscapedText geproxite Text, direkte
Übergabe an Template mit "process => 1" und direktes Zurückgeben mit
"process => 0"
Damit ist es aus Caller-Sicht einfacher, den Aufruf richtig
hinzubekommen: