Hier mal ein paar Gedanken über die Module.
Wir hatten uns drauf geeinigt (im Chat), dass Module im Admin-Bereich ihr eigenes Süppchen kochen. Das heißt (zumindest bin ich zu der Schlußfolgerung gekommen, was nix heißen soll), dass quasi alles ein Modul sein muß. Auch bspw. Seitenstatistiken, die allgemeine Verwaltung, Userverwaltung, einfach alles. Wenn man irgendwelche Ausnahmen hart reinschreibt, dann führt das nur zu Problemen, wenn man irgendwann mal was ändern will.
Wichtig ist, dass einzelne Module mehrfach auftreten können, wenn sie nämlich in unterschiedlichen Schemata benutzt werden. Andere, wie bspw. die Userverwaltung, gibt’s nur einmal, aber je nach Userlevel mit unterschedlichen Optionen. Wieder andere sind nur global (allgemeine Verwaltung, Impressum(?)).
Was gibt es also für Module?
Module, die den Hauptbereich der Webseite füllen. Ob das nun ein Modul ist, was statische Webseiten ermöglicht, oder etwas, mit dem man die News erstellt, auch Vorstandsliste oder Bildergallerie gehören dazu. Ob diese Module benutzt werden läßt sich vom Schema-Admin1) einstellen. Solche Module sind tendentiell im Menu gelistet, entweder einfach (bspw. Vorstandsmodul) oder mehrfach (Statische-Webseiten-Modul mit Historie, Fahnen, etc. pp)
Module, die ihren Inhalt in einer Sidebar ausgeben. Bspw. ein Modul für das aktuelle Königspaar-
Das wird wohl die häufigste Art sein; Module, die sowohl Content in der Sidebar anbieten als auch ganze Seiten füllen (Termine z.B.)
Module, die nur einen (oder mehrere) Adminbereich(e) haben. Userverwaltung zum Beispiel. Über diese Module sollte nur der “Oberadmin” Kontrolle haben. Die werden wohl in der Haupt-Datenbank cmsmain im Feld global_modules abgelegt.
Module, die zwar für alle Seiten gelten, aber trotzdem Content erzeugen. Impressum zum Beispiel, aber auch ein Modul, was bspw. die Seitenaufrufe (detailliert) mitloggt und eine Art Besucherzähler liefert.
Wegen obiger Einteilung muß ein Interface irgendwie allen obigen Sachen gerecht werden. Welche Funktionen braucht man dafür?
Liefert (und schreibt!) den Content. Kriegt als Parameter, ob man sich grad in der Sidebar oder auf der Seite befindet und sollte dann entsprechend liefern. Kann auch nen Leerstring liefern, wenn es keinen Content erzeugt.
... Noch nicht fertig, ich hab nur keine Lust mehr ...