Also Bilder als Eigenschaften like
bilder=/kloss/2.jpg:Werkzeug:400:300 /kloss/3.jpg:Schab:4 …
werden einmal als Platzhalter im Template verwendet %bild1%
, %bild2%
usw. Die Seite selbst ist ja nur eine bestimmte Sicht. Eine andere Sicht wäre ein siteimagemap.xml was automatisch erstellt wird wofür nur die Konfiguration zu lesen wäre.
Und beachte die Eigenschaft parent=/beilage
die bestimmt den Platz der Seite im übergeordneten Index.
Und noch ein schönes Beispiel für die Factory:
# Datei factory/errmsg.pm
use strict;
use warnings;
*errmsg = sub{
my $self = shift;
my $errstr = shift;
my $url = shift || $ENV{REQUEST_URI};
read(DATA, my $tmpl, -s DATA);
$tmpl = $self->xr($tmpl, {errstr => $errstr, url => $url});
$self->{BODY} = $tmpl.$self->{BODY};
};
# Template untenstehend
###########################################################################
__DATA__
<p class="error">
%errstr%
</p>
<p>
<a href="%url%">Bitte die Seite neu Laden</a>
</p>
Diese Methode errmsg('Fehlertext')
baut eine Fehlermeldung in die Seite, Beispiel was einmal eine erstklassige Fehlerbehandlung ermöglicht und zum Anderen redundanten Code vermeidet: Jede Instanz einer Subklasse kann diese Funktion aufrufen ohne sie definieren zu müssen.
.