Seid gegrüßt!
Seit langer Zeit programmiere ich mit Perl, vor kurzer Zeit habe ich (nun endlich mal(?)) angefangen mit Catalyst...
Bei dem Gedanken, ein Projekt auf Catalyst umzustellen, stoße ich auf folgende Frage: Wie kann ich gleiche Daten in mehreren Views einheitlich formatieren bzw. ausgeben??
Konkret will ich bspw. in mehreren(!) Views ein "Feld", ein Objekt-"Attribut" ausgeben, welches aus Tabellen-Feldern zusammengesetzt wird, die mir per DBIC aus dem Model-Modul ermittelt werden. Eigentlich ist die Erzeugung der Ausgabe ja nun Aufgabe des View-Moduls. Ich möchte nun natürlich nicht in vielen View-Modulen den gleichen Code kopy&pasten - zumal ja eigentlich erst im Template auf das DBIC-Objekt zugegriffen wird (s.Beispiel unten). Ich müsste also wohl die Model-Klasse um die Erzeugung des zusammengesetzten Feldes erweitern, was aber nicht dem MVC-Konzept entspräche?!!
Vielleicht braucht's noch ein Beispiel, zu verdeutlichen, was ich meine:
<ul>
[%WHILE (user = user_list.next()%]
<li>[%user.name%], [%user.code%]
[%END%]
</ul>
Der "Code" wird durch eine Perl-Funktion erzeugt. Vielleicht sowas:
sub user_code {
my ($item) = @_;
return join('-',
map{ substr($item->{$_},1,2) }
qw( name vorname ident foo bar ));
}
Suche im Web bringt mich zum Stichwort "View Helper" (bspw.
Zend View Helper) - für Catalyst sehe ich da aber nicht die Möglichkeit das so zu implementieren?!
Hoffentlich kann mir jemand von Euch helfen?!!
Viele Grüße, Peter
Last edited: 2012-01-16 18:18:08 +0100 (CET)