Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]13068[/thread]

Catalyst - Views und Templates für Frontend / Backend - Best Practice?

Leser: 6


<< >> 4 Einträge, 1 Seite
Cremator
 2009-01-28 16:39
#118427 #118427
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Moin!

Wie geht man eigentlich am besten vor bezüglich der Trennung von Adminbereich und und dem öffentlichen Frontend? Das dafür verschiedene Controller angelegt werden ist klar, aber sonst?

Einfach im end() vom jeweiligen Controller ein anderes Template laden und darin passenden Wrapper setzen? Oder doch besser gleich zwei verschiedene TTSite-Views erzeugen? z.B. MyApp::View::HTML-Backend und MyApp::View::HTML-Frontend.

Sollte ich einfach im end() vom Root-Controller unterscheiden
Code: (dl )
1
2
3
4
5
6
if (substr($c->request->path, 0, 5) eq 'admin') {
$c->forward('View::HTML-Backend');
}
else {
$c->forward('View::HTML-Frontend');
}
oder doch im end() vom jeweiligen Controller forwarden?

Ist das völlig Wurscht oder gibt's da irgendwelche Vor-/Nachteile bezüglich Geschwindigkeit / Sicherheit? Bezüglich Wartbarkeit fände ich 2 Views und Unterscheidung im end() vom Root-Controller besser.

Andererseits sind Views - so wie ich es verstanden habe - eher für verschiedene Ausgabe-Formate gedacht (HTML, PDF, RSS, etc). Das würde also wieder eher gegen 2 getrennte TTSite-Views sprechen.
renee
 2009-01-28 16:49
#118429 #118429
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
DRY -> Don't repeat yourself

Wenn sich Admin- und User-Bereich nur vom Template her unterscheiden, würde ich nur das Template setzen und keine zwei View-Klassen erstellen.

Wenn aber eine "ganz andere" Logik vorliegt, dann zwei unterschiedliche Klassen machen.

Aber eine 100%ig eindeutige Lösung gibt es nicht ;-)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
esskar
 2009-01-28 17:20
#118435 #118435
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
meine templates heißten immer wie die controller und liegen auch im filessytem so
also /admin/login mapt auf /admin/login.tt

wenn du sonst nix anderes machst, reicht ja eine view-klasse; versteh nicht, warum es da mehre geben muss.
Cremator
 2009-01-28 17:55
#118440 #118440
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Der Unterschied liegt momentan darin, das ich im View einen Auto-Wrapper für die Templates gesetzt habe, der dann die Header, Footer und weitere Blöcke, etc. einbindet und damit den generellen Aufbau des ausgegebenen HTML festlegt.
Code: (dl )
1
2
3
4
__PACKAGE__->config({
PRE_PROCESS => 'config/main',
WRAPPER => 'site/wrapper',
});
Die generelle Arbeitsweise der Views ist gleich, aber der Wrapper ist für den Admin und den öffentlichen Bereich natürlich unterschiedlich.

Lasse ich es bei einem View muss die Wrapper-Direktive in die Templates wandern, oder hab ich etwas Entscheidendes übersehen? Das ist einerseits flexibler, andererseits aber auch anfälliger für Fehler bzw. Inkonsistenzen (wenn falscher oder fehlender Wrapper), da ich nicht der Einzige sein werde der die Templates bearbeitet.

Daher meine etwas seltsam anmutende Frage...
<< >> 4 Einträge, 1 Seite



View all threads created 2009-01-28 16:39.