Hi pl,
Ich mach das über Methoden:
- header(); # HTTP
- start_html(); # Kopfbereich mit Metadaten
- menu(); # Navigation
- bodybuild();
- end_html(); # Footer
Diese Methoden laden eigene Templates und werden stets in derselben Reihenfolge aufgerufen sofern text/html ausgegeben wird. Bis zur Ausgabe wird alles gepuffert und wenn bis dahin keine Exceptions gefallen worden sind, wird der ganze Kram zur Response.
nach deinem beispiel wollte ich es machen. Aber auch klassen orientiert.
Ja freilich: Die Klasse steht ja über der Methode. Nur eine Klasse allein bewegt halt nix, da muss schon eine Methode her. Konkret: Obenstehende Methoden (und Weitere ) sind Interface-Methoden die in der jeweiligen an den URI gebundenen Response-Klasse überlagert werden können.
Wozu die Klasse da ist: Die definiert bspw. die Herkunft fürn Body/Template und überschreibt ggf. die IF-Methoden. Tipp: Mach das IF so, dass geprüft wird, ob die jeweilige Methode definiert ist.
MfG
# Ausschnitt ausm Framework try-Block
# call the interface
$ro->execute('init');
if( $ENV{REQUEST_METHOD} && $ENV{REQUEST_METHOD} eq 'PUT' ){
$ro->execute('putcontrol');
}
if($ro->param()){ $ro->execute('control') }
else{ $ro->execute('browse') }
$ro->execute('trailer');
# execute() macht die Prüfung
Und zum Schluss wird alles mit my $message_body = $ro->{CONTENT} || $ro->start_html.$menu.$simlinks.$ro->bodybuild.$ro->end_html; zusammengepappt. Fertig ;)
Von text/html abweichende Inhalte liegen in {CONTENT}