Personal tools

Log in

Changes

From Limbas Wiki

Jump to: navigation, search

Html-Templates

3,644 bytes added, 2 years ago
no edit summary
Test==Html-Templates== Für Newsletter, Anschreiben, etc. ist es notwendig, Dateninhalte wie Anrede oder Name direkt in den Fließtext zu integrieren. Bisher mussten die einzelnen Bausteine dafür in PHP-Elementen von Hand zusammengesetzt werden. Seit Version 3.6 ist dies in Limbas komfortabel mit dem Wysiwyg-Editor möglich. Voraussetzungen dafür sind* eine Tabelle des [[Tabellen#Tabellen-Einstellungen|Typs]] '''Berichtsvorlagen''' und* ein Bericht des Formats '''tcpdf'''. Im Berichtseditor kann dann das Element '''HTML Template''' nach Auswahl der Berichtsvorlagen-Tabelle eingefügt werden. In dieses Element kann reguläres HTML eingetragen werden, jedoch unterstützt das Element eine spezielle Syntax, die es erlaubt, andere Berichtsvorlagen, Dateninhalte und Funktionsergebnisse in den Text zu inkludieren. In den Berichtsvorlagen kann die selbe Syntax verwendet werden:* <code>${''Einleitung''}</code>: Anstelle dieses Platzhalters wird beispielsweise die Berichtsvorlage mit dem Namen ''Einleitung'' eingefügt. Der Name einer Berichtsvorlage muss eindeutig sein.* <code>${->''Name''}</code>: Hier wird beispielsweise der Inhalt des Feldes ''Name'' des Datensatzes, für den der Bericht gedruckt wird, eingefügt.:{{note|Es werden auch Verknüpfungsfelder unterstützt: <code>${->''Kunde''->''Name''}</code> zeigt beispielsweise den Namen des verknüpften Kunden an.}}:{{note|Es kann ein Defaultwert angegeben werden für den Fall, dass im Datensatz kein Wert eingetragen ist: <br><code>${->''Funktion''{{!}}''Mitarbeiter''}</code>}}* <code>${=''FunktionsName''}</code> zeigt das Ergebnis der Funktion ''report_FunktionsName'' an. Das ''report_''-Präfix sorgt dafür, dass keine Systemfunktionen direkt aufgerufen werden können. An die Funktion können sowohl String- als auch Daten-Parameter übergeben werden (siehe Beispiel unten). Diese Funktion kann beispielsweise in einer [[Skript-Erweiterungen|Erweiterung]] implementiert sein. Gibt die Funktion statt Html ein Objekt der Klasse ReportElement (''extra/report/template/ReportElement.php'') zurück, wird dieses an der Stelle eingebunden.* <code>${if ''FunktionsName''}...${endif}</code>: Wertet die Funktion ''report_FunktionsName'' aus. Gibt die Funktion einen Wert zurück, der zu ''true'' evaluiert, wird der Teil zwischen if und endif im Bericht ausgegeben, andernfalls nicht. Zwischen beiden wird auch ein <code>${else}</code> unterstützt. {{example|Es wird ein Bericht für die Tabelle ''Kontakte'' erstellt. In das Berichts-Element wird folgender Text eingetragen: ${Rechnung}Dies bewirkt, dass in dem Bericht der Inhalt des Datensatzes mit Namen ''Rechnung'' aus der Berichtsvorlagen-Tabelle eingefügt wird. In diesem wird der Inhalt definiert: ${PersonenDaten} Rechnung Text BlablaIn dem Datensatz mit Namen ''PersonenDaten'': ${->Anrede} ${->Vorname} ${->Nachname}, geb. ${&#61;formatDate(->GeburtsDatum,d.m.Y)}Es werden hier Anrede/Vorname/Nachname aus der Tabelle Kontakte von dem Datensatz genommen, für den der Bericht gedruckt wird. An die Funktion wird als erster Parameter das Geburtsdatum des Kontakts übergeben (aus der Datenbank). Als zweiter Parameter wird direkt der String ''d.m.Y'' übergeben. So kann die Funktion für weitere Datumsformate wiederverwendet werden. Sie kann beispielsweise so in einer Erweiterung implementiert sein: '''function''' report_formatDate($date, $format) { $stamp &#61; ''strtotime''($date); '''return''' ''date''($format, $stamp); }So hat der Bericht eine klare Struktur, kann direkt mit Html designed werden und die Personendaten können in weiteren Berichten wiederverwendet werden.}}
Autor
8,233
edits