HTML/PDF Ausgabe¶
Allgemeine Struktur¶
Die HTML/PDF Ausgabe der Metadaten wird über eine Sicht auf das Metador-Objekt realisiert. Damit hat man viele Möglichkeiten, spezielle Werte an unterschiedlichen Stellen auszugeben, unabhängig von der Struktur der Eingabeformulare oder XML Ausgabe. Die Ausgabe für die PDF und HTML Sicht ist gleich, nur das Ausgabeformat ist unterschiedlich.
Für alle Profile ist eine Hauptausgabe definiert, die sich im Ordner src/Plugins/LVermGeo/BasicProfileBundle/Resources/views/Export/view.html.twig findet.
Die Ausgabe geschieht über eine Tabellenstruktur und wird über Makros realisiert, die eine einheitliche Ausgabe garantieren. Diese Makros liegen im Basisprofil von Metador (Plugins/WhereGroup/BasicProfileBundle/Resources/views/Makro) und sind hier erst einmal nicht relevant. Die Einbindung wird im Folgenden erläutert. Die erste Zeile der view.html.twig zeigt, dass diese Makros verwendet werden:
{% import 'MetadorBasicProfileBundle:Makro:export.html.twig' as export %}
Aufbau der TWIG-Seite¶
In der Datei view.html.twig werden zuerst weitere Styles definiert, die sowohl Schriftgrößen, Abstände als auch Farben festlegen.
<style>
.view-table{
width: 100%;
padding: 0;
margin: 0;
text-align: left;
};
.view-header-one{
font-size: 2.5em;
font-weight: bold;
};
[...]
Der Rest der Datei ist eine Mischung aus HTML Code und PHP/TWIG Code. Die Struktur wird über HTML definiert, die Logik kommt über PHP/TWIG Mechanismen.
Auf ein Objekt wird generell zugegriffen mit:
(array_get(p, 'title')
Dies ruft aus dem Objekt p den Inhalt des title auf. Bei verschachtelten Werten geschieht dies wie folgt, hier am Beispiel der transferOptions und dem url Wert:
array_get(p,'transferOptions:url'))
Zusätzlich können Default-Werte für die Ausgabe definiert werden. Hier hergeleitet am Beispiel des title Wertes, der mit dem Default-Wert „Hallo Welt“ vorausgewählt wäre.
array_get(p, 'title', 'Hallo Welt')
Für die Ausgaben werden die schon erwähnten Makros verwendet. Diese regeln über ihre Stylevorgaben und Ausgabelogik eine einheitliche Ausgabe der Objekte für alle Strukturen und Arrays, die wir im Metador-Objekt widerfinden. Hier am Beispiel für eine Überschrift erster Ordnung:
{{ export.topic_one(array_get(p, 'title')) }}
Damit wird die Ausgabe der Metadaten aufgebaut, wie im folgenden Screenshot dargestellt: