Dokumentation
Codereferenz
Installation & Updates
Schnittstellenreferenz
Konfiguration
Dokumentation & Hilfe Version 5.x
YAML ist ein von Dirk Jesse entwickeltes Framework für moderne, flexible, browserfeste und mehrspaltige Layouts mit einem hohen Anspruch an Zugänglichkeit für die Nutzer (siehe www.yaml.de). Die Unterstützung von YAML durch conceptcms besteht im Wesentlichen in folgenden Funktionen:
Zuerst laden Sie unter www.conceptcms.com die entsprechende YAML-Version herunter. Wir bieten "YAML Only" (nur die CSS-Dateien) oder "YAML mit Beispiel/en" (CSS und Beispielimplementierung mit conceptcms-Vorlagen) an.
Die Installation in conceptcms erfolgt über den Website/Kunden-Import (siehe Website-Import). Tatsächlich handelt es sich bei unserer YAML-Version für conceptcms um eine bis auf die CSS (und gegebenenfalls die Beispiel-Vorlagen) leere Website.
Die Installation ist auch in bestehenden Kunden/Websites problemlos möglich. Bestehende CSS oder Vorlagen werden nicht modifiziert, sondern YAML wird nur zusätzlich installiert.
Nach der Installation erscheinen in der Stylesheet-Liste (siehe Stylesheets verwalten / Stylesheet-Liste) die beiden Gruppen "YAML" und "MyYaml" sowie die beiden CSS "master.css" und "master_ie_patches.css". Sollten diese beiden CSS schon vorher existiert haben, existieren sie nun doppelt und sollten konsolidiert werden.
Grundsätzlich bleibt es jedem Benutzer überlassen, wie er YAML einsetzen möchte. Aus Sicht von conceptcms sind vor allem die im folgenden beschriebenen Vorgehensweisen von Bedeutung.
Es sollte in conceptcms aus verschiedenen Gründen immer ein sog. Master-CSS (master.css) geben (siehe Master-Stylesheet / Standard-Stylesheet / IE Hacks). Zusätzlich sollte es ein weiteres Master-CSS für Browserpatches geben (master_ie_patches.css). Diese beiden CSS sind selbst keine YAML-CSS, sondern sie sind elementarer Bestandteil von conceptcms und sollen verwendet werden, um das jeweilige "Einstiegs"-CSS von YAML zu importieren. In der Regel sollte es sich dabei um die folgenden YAML-CSS handeln:
Der Import muss mit dem echten Dateinamen in conceptcms stattfinden (ein Umschreiben des Namen/Pfades ist hier nicht möglich):
Wird YAML außerhalb von conceptcms eingesetzt, so können eigentlich alle individuellen Änderungen/Erweiterungen für das eigene Layout direkt in die dafür vorgesehenen CSS-Dateien geschrieben werden (z.B. in basemod.css und content.css) - solange der eigentliche Core niemals verändert wird. Dies ist, insbesondere bei nicht sehr komplexen Websites, die überwiegend direkt auf schon in YAML existierenden Styles basieren, natürlich auch in conceptcms möglich.
Es kann jedoch auch sinnvoll sein, eigene Styles, auch und gerade wenn sie jeweils existierende YAML-Styles überschreiben oder modifizieren sollen, immer in komplett eigene CSS-Dateien zu schreiben. Damit wird eine weitere Stufe der Kaskade eingeführt, die dazu führt, dass man noch mehr Flexibilität für den Fall erhält, dass vielleicht einmal ein individueller YAML-Style in unterschiedlichen Vorlagen mit unterschiedlichen Werten belegt werden soll.
Am besten lässt sich der Sinn einer Erweiterung von YAML an einem Anwendungsbeispiel verdeutlichen, mit dem Sie dann konfrontiert sein werden, wenn Sie Vorlagen-Sets in eine bestehende und mit YAML arbeitende Website importieren:
Wenn wir - in der Regel immer auch auf YAML basierende - Vorlagen-Sets (siehe Website-Export (ab Version 5.1)) bereitstellen, so werden diese komplett mit CSS geliefert. Im HTML-Code werden diese Styles verwendet, die auch zwingend erforderlich sind, damit die Vorlage überhaupt funktionieren kann. Dabei sind nun zwei mögliche Probleme zu adressieren:
Um diese Probleme möglichst gut zu lösen, liefern wir je Vorlagen-Set eine separate CSS-Datei (z.B. news_tpl_01.css), die zu einer eigenen Gruppe (TemplateSets) gehört. Diese kann bzw. wird Definitionen enthalten, die sich auch auf YAML-CSS beziehen. Sie muss nun so eingebunden werden, dass sie dem Zweck entsprechend funktioniert.
Dafür gibt es zwei Optionen:
Beispielhaft könnte dies (Variante 1) wie folgt aussehen:
So profitieren wir von der Kaskade (wir modifizieren kein existierenendes YAML-CSS, können aber auf Definitionen aus YAML Bezug nehmen), und alle komplett individuellen Defintionen sowie alle Modifikationen sind separat definiert - und können damit jederzeit über CSS-Ausnahmen in der Menüpunktvorlage gesteuert werden (siehe Manuell modifiziertes Stylesheet-Handling).
Würden wir dagegen unsere eigenen Styles und die Modifikationen direkt in einem zu YAML gehörenden CSS liefern, so liessen sich diese Styles weder an- noch ausschalten, ohne die bestehde Website zu beeinflussen, und außerdem müsste der Benutzer unsere Modifikationen in "seine" Dateien schreiben (er müsste diese quasi abgleichen uns konsolidieren) und würde damit "seine" und "fremde" Definitionen vermischen.
conceptcms schreibt alle in originalen YAML-CSS-Dateien enthaltene Original-Pfade und Namen (Import von CSS, Pfade zu JavaScript, Pfade zu Bildern) beim Speichern automatisch in Namen/Pfade um, die der Logik von conceptcms entsprechen. Dies funktioniert beliebig oft, d..h. immer, wenn eine YAML-Pfad geschrieben wird, wird er automatisch wieder umgewandelt.
Aus
@import url(../yaml/navigation/nav_shinybuttons.css);
wird z.B.
@import url(./ID_usr_style.css);
(wobei die ID jeweils spezifisch für die jeweilige Installation bzw. den jeweiligen Kunden ist).
Oder aus
url("images/shiny_buttons/background.png")
wird z.B.
url(../../external/yaml/v_3.1/yaml/navigation/images/shiny_buttons/background.png)
In gespeicherten CSS-Dateien stehen also niemals YAML-Pfade und Namen, sondern immer nur die Pfade/Namen von conceptcms.
Aufgrund der automatischen Umschreibung von Pfaden in conceptcms-kompatible Pfade/Namen (s.o.) kann jederzeit auch der YAML-Builder (siehe builder.yaml.de) verwendet werden, um Code für die folgenden YAML-CSS zu erzeugen:
Der Code kann einfach aus dem YAML-Builder kopiert werden und in die entsprechenden CSS eingefügt werden. Die im Code enthaltenen, YAML-spezifischen Pfade werden beim Speichern der Datei automatisch auf conceptcms-Pfade und Namen umgeschrieben. Der vom YAML-Builder bereitsgestellte HTML-Code kann gegebenenfalls als Grundlage für die Erstellung von Menüpunktvorlagen und Dokumentenvorlagen verwendet werden.
Es gibt keinen vom conceptcms unterstützten automatisierten Prozess zum Update von YAML, da a priori nicht feststeht, ob ein solches Update überhaupt kompatibel mit der auf YAML aufbauenden Website wäre. Ein Update kann aber natürlich manuell durch entsprechende Änderung in den existierenden Dateien erfolgen. Dies wäre dann auch der einzige Fall, wo eine Änderung im Core zulässig ist.
Wir versuchen, die jeweils aktuellste YAML-Version immer so schnell wie möglich für conceptcms azupassen und unter www.conceptcms.com zum Download anzubieten. Es gibt allerdings auch für jede YAML-Version gegebebenfalls einige Änderungen an conceptcms: wir müssen neue Verzeichnisse für die Version erstellen und z.B. den automatischen Prozess zum Umschreiben von Pfaden etc. anpassen, wenn z.B. neue Dateien hinzukommen. In der Zwischenzeit können Sie den neuesten YAML-Download durchaus schon benutzen, aber vielleicht funktionieren einige Kleinigkeiten nicht wie gewünscht. Erst mit dem nächsten geplanten conceptcms-Release passt dann alles wieder zusammen.
Um zu wissen, welche YAML-Version Ihre aktuelle conceptcms-Version voll unterstützt, suchen Sie in Ihrer Installation nach dem Verzeichnis
../../external/yaml/
Das folgende Unterverzeichnis gibt die Version an (Schema: /v_3.1/). Sofern Sie sich gut genug auskennen, könnten Sie die neue Struktur auch - auf Basis der alten - manuell den Verzeichnissen hinzufügen. Das automatisierte Umschreiben der Pfade funktioniert dann aber immer noch nicht, wobei dies ja auch manuell geschehen kann.