sub setup {
my $self = shift; $self->mode_param('rm'); #Formularfeld enthält auszuführenden <run_mode>
$self->start_mode('frame'); #<run_mode> wird ausgeführt, wenn <rm> leer $self->run_modes(
'newuser' => 'get_newuser',
'frame' => 'build_frame',
'menu' => 'build_menu',
);
}
#dem <run_mode> entsprechende Template laden
my $tmpl = eval { $self->load_tmpl( $self->param('CONF')->{'Templates'}->{'RunMode'}->{$rm}->{'TemplName'}, %{ $self->param('HTML') } ); };
if ($@) {
die( "_-_", "Template konnte nicht geladen werden.((br))", "_-_\n" );
}
$self->param( 'TMPL' => $tmpl );
#parameter setzen
$tmpl->param(
g_sn => $self->query->script_name,
g_rm => $rm
);
}
# Nach <run_mode> die Ausgabe erzeugen
sub cgiapp_postrun {
my $self = shift;
my $data = shift; #Referenz auf Hash-Referenz ( %{${$data}} )
$self->param('TMPL')->param($$data); # Datenhash in Template einsteuern
$$data = $self->param('TMPL')->output; # Datenhash mit Template-Ausgabe überlagern
}
# Frame-Template aufbauen (Default-Startmethode)
sub build_frame {
my $self = shift;
my $href = {};
return ($href); # Referenz auf Datenhash zurückgeben
}
<Templates BasePath="xxx" CachePath="xxx">
<RunMode Name="newuser">
<TemplName>benutzer.html</TemplName>
</RunMode>
(usw...)
</Templates>
der Zugriff auf die Templates funktioniert aber
die Ausgabe ist: HASH(0x2015c14)
anstatt des HTML-Templates
Datum: 08.03.2007-10:57
