= Das ''Was gibt es Neues?''-System = Die Seite [[http://www.technikum29.de/de/news|News]] listet Neuigkeiten in Blog-ähnlicher Form auf. Mit der neuen Homepage wurde entschieden, dass es sehr sinnvoll wäre, wenn diese Einträge auch in einem Aufklappmenü in der Header-Navigation direkt zugänglich wären. Damit das funktioniert, müssen die Einträge in maschinenlesbarer Form vorliegen. Da die Benutzung einer gescheiten Blog-Software seitens Heribert abgelehnt wird, hab ich mich für eine Hybridlösung entschieden, in der die Menüeinträge, die direkt auf der News-Seite in einer sehr einfachen Syntax notiert sind, direkt aus dieser automatisch extrahiert werden (!!). == Syntax == Die ''Syntax'' nennt sich [[http://de.wikipedia.org/wiki/YAML|YAML]]. Ich habe dieses Auszeichnungssystem wegen seiner **Einfachheit** ausgewählt: {{{ - titel: "Gamma10" text: "The Gamma10-Printer has arrived at the museum" link: "#November_2012" - titel: "Gamma55" text: "A new new acquisition" link: "#July_2012" - titel: "UNIVAC Software discovery" text: "A bunch of punch cards" link: "#April_2012" }}} Die Regeln sind einfach: 1. Jeder Menüeintrag bekommt einen Bindestrich **direkt am Zeilenanfang** (erste Spalte) und besteht aus einem Triplet an Daten ''titel'', ''text'' und ''link''. **Einrückungen sind das wichtigste. Nur Leerzeichen, keine Tabulatoren verwenden. Wenn die Form nicht mehr der obigen entspricht, wird es nicht funktionieren. Das ''Einfache'' an dem System ist, dass eben ''nur'' die Einrückung relevant ist.** 2. Diese werden jeweils vertikal bündig notiert. Hinter dem Doppelpunkt steht der jeweilige Wert, der in doppelte Anführungsstreichen eingeschlossen wird. 3. Bedeutung von ''titel'': Die Linkbeschriftung in Großbuchstaben, Bedeutung von ''text'': Die kleine Beschriftung drunter als Fließtext, Bedeutung von ''link'': Linkziel. Wenn das Linkziel mit einer Raute `#` anfängt, dann wird es als Überschriftsziel direkt in der News-Datei interpretiert. Eine falsche Formatierung, die nicht den YAML-Regeln entspricht, sollte zu der Ausgabe einer Fehlerbox auf jeder Seite führen. == Äußere Syntax == Nur zum weiteren Verständnis: Der für das Menü relevante Text in der Neuigkeiten-Seite liest sich etwa so: {{{ $neues_menu = <<< MENU - hier die Anweisungen - gemäß obiger Syntax MENU; // ende der menue-Eintraege }}} Wichtig ist, dass an dieser äußeren Form nichts verändert wird. Technisch handelt es sich um den [[http://www.php.net/manual/de/language.types.string.php#language.types.string.syntax.heredoc|PHP-Heredoc-Syntax]], also einen Mehrzeilen-String, der durch die Kennung ''MENU'' wieder beendet wird. Das letztere ''MENU'' muss dabei in obiger Form als einzige Anweisung am Anfang der Zeile stehen, sonst gibt es auch Fehler.