Hallo,
ich habe häufig Projekte welche ein backend benötigen, jedoch so flexibel sein müssen, dass ich kaum ein fertiges CMS verwenden kann. So habe ich mich beim letzten größeren Projekt ran gemacht und eine eigene nette Datenstruktur entwickelt.
Das System ist dafür ausgelegt XML / JSON Dateien aus zu geben und so Flash oder Javascript zu speisen.
im Grunde ist alles Seitenbasierend, jede Seite hat eine Konfiguration* einen Titel u.s.w..
Seiten sind hierarchisch anderen Seiten über oder untergeordnet.
Auf jeder Seite können beliebig viele Elemente platziert werden, Elemente können einer Gruppe zugeordnet werden, sie können einen Namen beinhalten und eine Konfiguration*. Jedes Element bekommt eine Virtuelle ID, diese ID ist unabhängig von der Sprache.
d.h. ich kann mit Element 500 in Deutsch, Englisch, ... ausgeben lassen. Jedes Element hat zudem ein Fallback Element in der Standardsprache. Unterseiten können als Container definiert werden, diese Seiten tauschen nicht im Menu auf und die Vaterseite hat automatisch auch Zugriff auf den Inhalt dieser Seite. Dies hat den Vorteil, dass unnötiges laden vermieden wird, zudem wird erleichtert Seiten zu unterteilen.
*Konfiguration = JSON String welche von den Frontend-Entwicklern gepflegt werden können
Im Hintergrund werden zum CRUD von Seiten, Elementen, ... nur Prozeduren verwendet.
Dieses System habe ich derzeit erfolgreich im Produktionseinsatz, nun möchte ich das Fallback optimieren und flexibler gestalten.
Problem 1:
- neben Sprachversionen kann es auch Länderversionen geben, unterschiedliche Events, Verfügbarkeiten von Produkten, u.s.w. . Ich überlege derzeit welches verfahren hier am praktikabelsten ist.
Idee:
1. eine Version der Location an zu legen und diese von der Sprachversion erben lassen.
Problemlematik:
Ich müsste irgendwie gewährleisten können, dass man die Vererbungskette irgendwie unterbrechen könnte um evtl. geerbten Kontent nicht an zu zeigen. Das ist in sich zwar inkonsequent wird in der Praxis jedoch immer wieder gefordert.
------------------
Problem 2:
- es könnte Fälle geben in denen Problem1 so nicht zutrifft sondern eine Location in mehreren Sprachen angeboten werden soll, hier müssten in diesem Fall Daten doppelt gepflegt werden.
Idee:
Man könnte die Verwerbungskette umdrehen, so könnte erst vom Kontent und dann von der Sprache geerbt werden.
Habt ihr ähnliche Überlegungen?
Kennt ihr "Datenbank Frameworks" (Sammlung von Prozeduren und Tabellen) die dies Effektiv lösen?
ich habe häufig Projekte welche ein backend benötigen, jedoch so flexibel sein müssen, dass ich kaum ein fertiges CMS verwenden kann. So habe ich mich beim letzten größeren Projekt ran gemacht und eine eigene nette Datenstruktur entwickelt.
Das System ist dafür ausgelegt XML / JSON Dateien aus zu geben und so Flash oder Javascript zu speisen.
im Grunde ist alles Seitenbasierend, jede Seite hat eine Konfiguration* einen Titel u.s.w..
Seiten sind hierarchisch anderen Seiten über oder untergeordnet.
Auf jeder Seite können beliebig viele Elemente platziert werden, Elemente können einer Gruppe zugeordnet werden, sie können einen Namen beinhalten und eine Konfiguration*. Jedes Element bekommt eine Virtuelle ID, diese ID ist unabhängig von der Sprache.
d.h. ich kann mit Element 500 in Deutsch, Englisch, ... ausgeben lassen. Jedes Element hat zudem ein Fallback Element in der Standardsprache. Unterseiten können als Container definiert werden, diese Seiten tauschen nicht im Menu auf und die Vaterseite hat automatisch auch Zugriff auf den Inhalt dieser Seite. Dies hat den Vorteil, dass unnötiges laden vermieden wird, zudem wird erleichtert Seiten zu unterteilen.
*Konfiguration = JSON String welche von den Frontend-Entwicklern gepflegt werden können
Im Hintergrund werden zum CRUD von Seiten, Elementen, ... nur Prozeduren verwendet.
Dieses System habe ich derzeit erfolgreich im Produktionseinsatz, nun möchte ich das Fallback optimieren und flexibler gestalten.
Problem 1:
- neben Sprachversionen kann es auch Länderversionen geben, unterschiedliche Events, Verfügbarkeiten von Produkten, u.s.w. . Ich überlege derzeit welches verfahren hier am praktikabelsten ist.
Idee:
1. eine Version der Location an zu legen und diese von der Sprachversion erben lassen.
Problemlematik:
Ich müsste irgendwie gewährleisten können, dass man die Vererbungskette irgendwie unterbrechen könnte um evtl. geerbten Kontent nicht an zu zeigen. Das ist in sich zwar inkonsequent wird in der Praxis jedoch immer wieder gefordert.
------------------
Problem 2:
- es könnte Fälle geben in denen Problem1 so nicht zutrifft sondern eine Location in mehreren Sprachen angeboten werden soll, hier müssten in diesem Fall Daten doppelt gepflegt werden.
Idee:
Man könnte die Verwerbungskette umdrehen, so könnte erst vom Kontent und dann von der Sprache geerbt werden.
Habt ihr ähnliche Überlegungen?
Kennt ihr "Datenbank Frameworks" (Sammlung von Prozeduren und Tabellen) die dies Effektiv lösen?
Kommentar