Hallo Leute,
folgendes Problem:
Ich möchte mit einem Framework eine mehrsprachige
Seite aufbauen.An sich kein Ding, aber die Planung
von Templates und Controllern will mir nicht so
richtig einfallen.
Folgendes Layout ist vorgesehen:
Große Version
Die FWs arbeiten ja immer nach diesem Schema:
www.example.com/controller/function/id
Ich hatte eigentlich geplant, für die Seite an sich,
das Menü und den Inhalt verschiedene Controller zu
entwickeln. Der Site-Controller generiert die
"Umgebung", also stellt das Basistemplate zur
Verfügung. Das Basistemplate enthält alle nötigen
Tags von <html> bis </html>. Die
verschiedenen Controller für Menü bzw. Content
werden von dem Site-Controller instanziert, bekommen
die nötigen Informationen und fügen ihr HTML zu dem
Basistemplate hinzu.
Ein Aufruf von www.example.com/site/content/id würde
also eine "normale" Seite anzeigen.
Der Site-Controller wird aufgerufen, die content-Funktion
instanziert den Menü-Controller und generiert den Inhalt.
Wie im Grid zu sehen, besitzt diese Seite aber auch
noch eine Applikation, die unabhängig vom Basis-Layout
bzw. Menü arbeitet. Es handelt sich um einen
Online-Katalog. Dieser wird z.b. über folgende URL
aufgerufen: www.example.com/site/catalog/cat_select/id.
Ihr bemerkt sicherlich schon die Komplikationen
dieses Aufrufs. Der Catalog-Controller würde vom
Site-Controller über die Function catalog instanziert
werden. Um diese Sache noch relativ einfach zu
gestalten, läuft die komplette Steuerung des Katalogs
im Applikation-Grid ab (siehe Grafik). Eine Verknüpfung
vom Catalog- und Menü-Controller ist also (zunächst)
nicht geplant. Aber wie programmiere ich nun am besten
den Catalog-Controller? Das normale Schema ist ja gestört.
Ist das überhaupt möglich -ohne den Front-Controller
großartig umzuschreiben? Ich bin für jede Hilfe dankbar,
wie würdet ihr das Problem lösen? Die Sprachunterstützung
ist ebenfalls nicht gewährleistet, es sei denn, jede TLD
(example.de; example.com; ..) würde vom Site-Controller
abgefragt.
MFG,
dummi
EDIT:
Tja, als erster Denkanstoß hätte schon ein Verweis auf die Routing-Funktionalitäten
vieler Frameworks geholfen. Das ZF, das ich wahrscheinlich auch verwenden werde,
bietet hier eine recht übersichtliche Variante, mittels Routing meinen Anforderungen
gerecht zu werden. Über weitere hilfreiche Links würde ich mich auch freuen!
folgendes Problem:
Ich möchte mit einem Framework eine mehrsprachige
Seite aufbauen.An sich kein Ding, aber die Planung
von Templates und Controllern will mir nicht so
richtig einfallen.
Folgendes Layout ist vorgesehen:
Große Version
Die FWs arbeiten ja immer nach diesem Schema:
www.example.com/controller/function/id
Ich hatte eigentlich geplant, für die Seite an sich,
das Menü und den Inhalt verschiedene Controller zu
entwickeln. Der Site-Controller generiert die
"Umgebung", also stellt das Basistemplate zur
Verfügung. Das Basistemplate enthält alle nötigen
Tags von <html> bis </html>. Die
verschiedenen Controller für Menü bzw. Content
werden von dem Site-Controller instanziert, bekommen
die nötigen Informationen und fügen ihr HTML zu dem
Basistemplate hinzu.
Ein Aufruf von www.example.com/site/content/id würde
also eine "normale" Seite anzeigen.
Der Site-Controller wird aufgerufen, die content-Funktion
instanziert den Menü-Controller und generiert den Inhalt.
Wie im Grid zu sehen, besitzt diese Seite aber auch
noch eine Applikation, die unabhängig vom Basis-Layout
bzw. Menü arbeitet. Es handelt sich um einen
Online-Katalog. Dieser wird z.b. über folgende URL
aufgerufen: www.example.com/site/catalog/cat_select/id.
Ihr bemerkt sicherlich schon die Komplikationen
dieses Aufrufs. Der Catalog-Controller würde vom
Site-Controller über die Function catalog instanziert
werden. Um diese Sache noch relativ einfach zu
gestalten, läuft die komplette Steuerung des Katalogs
im Applikation-Grid ab (siehe Grafik). Eine Verknüpfung
vom Catalog- und Menü-Controller ist also (zunächst)
nicht geplant. Aber wie programmiere ich nun am besten
den Catalog-Controller? Das normale Schema ist ja gestört.
Ist das überhaupt möglich -ohne den Front-Controller
großartig umzuschreiben? Ich bin für jede Hilfe dankbar,
wie würdet ihr das Problem lösen? Die Sprachunterstützung
ist ebenfalls nicht gewährleistet, es sei denn, jede TLD
(example.de; example.com; ..) würde vom Site-Controller
abgefragt.
MFG,
dummi
EDIT:
Tja, als erster Denkanstoß hätte schon ein Verweis auf die Routing-Funktionalitäten
vieler Frameworks geholfen. Das ZF, das ich wahrscheinlich auch verwenden werde,
bietet hier eine recht übersichtliche Variante, mittels Routing meinen Anforderungen
gerecht zu werden. Über weitere hilfreiche Links würde ich mich auch freuen!
Kommentar