Der gedanke geht ja dabei in erster Linie in Richtung Templategenerator!
Wenn man einen solchen irgendwann mal realisieren möchte, ist es unumgänglich
eine einheitliche Benennung der css-definitionen zu machen.
Ich würde sogar in diesem Fall einen Schritt weiter gehen und die css importdatei
vorgeben, in der die base.css aus dem core geladen wird, der Rest dann theme intern:
standard.css
/* Core einbinden */
@import url(../../../core/css/core/base.css);
Für die template.css welche die Container definitionen hat, könnte man im Adminbereich
ein Formular erstellen, in dem man z.b. die farben der Container ändern kann.
Mehr wird hier kaum nötig sein.
Für die eigentliche Themenabhängige content.css würde ich einen css editor einbauen,
welche die content.css komplett in einem textfeld lädt.
So kann man hier nach Lust und Laune definitionen ändern/hinzufügen/löschen..was auch immer.
Dieser speichert dann die content.css komplett wieder neu ab.
Wie gesagt, falls mal ein Templategenerator realisiert werden soll
Anmerkung:Man könnte sogar prinzipiell auch ohne templategenerator im Adminbereich einen css editor
einbauen, der muss ja nur die aus dem bestehenden backend/frontend im css/screen ordner
abgelegte template.css + content.css zum editieren laden und wieder abspeichern.
So kann man schnell mal ohne FTP zu bemühen bestimmte definitionen zur laufzeit ändern.
Entweder gibt man hier die css-files namentlich fest vor, oder man liest den css/screen ordner
aus und zeigt die files in einer dropdownbox zur auswahl an.
Auch macht es Sinn sich über den namespace der wichtigsten core und template definitionen
gedanken zu machen.
Ich mach mal einen Anfangsvorschlag für einen möglichen Aufbau:ce = core elemente (basis container)
#cePagePane (definiert den äusseren rahmen. Ränder oder breiten fixierung der Seite)
#cePageAera (der eigentliche Seitencontainer)
#ceHeader
#ceTopNav(breadcrumb)
#ceMain
#ceCol1(widget left) #ceCol3(content) #ceCol2(widget right)
#end ceMain
#ceBottomNav(fussnavigation)
#ceFooter(copyright etc.)
#end cePageAera
#end cePagePane
Anmerkung:
Möchte man für ein theme beispielsweise nur den content und widget rechts
(#ceCol3 und #ceCol2) kann man dies im content.css einfach überschreiben indem man:
#ceCol1 auf display:none und
#ceCol3 auf margin-left: 0 setzt
hierzu bedarf es keine Änderung der basis definition.
cb = core block elemente (block container)
Core Blockdefinitionen z.b. newsblock, artikelblock etc..
.cbBorder = Blockrahmen
.cbHeader = Blocktitel
.cbBody = Bodybereich des Containers
.cbFooter = Fussbereich des Containers
.cbCell1 | .cbCell2 | .cbCell3 .... (spaltengestaltung)
.cbRow1 | .cbRow2 (zeilengestaltung z.b. bei grid)
cm = core message elemente (boxen)
Core Messageblock definitionen z.b. Infos, errors etc.
.cmInfobox = z.B. Informationen
.cmWarning = z.B. Unstimmigkeiten oder Validation
.cmError = z.B. System Fehler
Ich denke es ist wichtig eine einheitliche Namensgebung für die wichtigsten definitionen festzulegen,
insbesondere auch für formelemente. Manches wird ja nicht unbedingt im front-/backend template
definiert, sondern auch in core/viewhelper/ smarty, form und datagrid.
Hier braucht es eine verständliche Struktur damit jeder weiss wo er was ändern muss in den
stylesheets.
Ich bin kein Experte in css, hier sind die Designer aufgerufen Ideen und cross browser lösungen
zusammen zutragen, damit die Clansuite auch in diesem Bereich Flexible, Perfekt und leicht
anpassbar wird.
gruss
paul