Platzhalter und Formatierungen in Briefvorlagen
Sie können die Inhalte der Brief-Abschnitte der Briefvorlagen (Wertelisten > Briefvorlagen) selber bestimmen - inkl. dynamischer Platzhalter, welche zum Zeitpunkt der Brief-Erstellung mit den aktuellen Daten des Beratungsfalls ausgefüllt werden:
Mittels Platzhalter haben Sie Zugriff auf (fast) alle Daten, welche rund um den Beratungsfall verknüpft sind. Spezielle Auszeichnungs-Tags erlauben das Formatieren des Textes.
spezielle Formatierungen
Die Brief-Abschnitte unterstützen so genannte “Auszeichnungs-Tags”, um Texte zu formatieren. Auszeichnungs-Tags werden in spitzen Klammern um den auszuzeichnenden Text herum platziert (analog HTML):
Folgende Auszeichnungs-Tags werden unterstützt:
Tag | Bedeutung | Beispiel |
---|---|---|
strong, b | stellt Text fett dar | <strong>Fetter Text</strong> <b>Fetter Text</b> |
i, em | stellt Text kursiv dar | <em>Kursiver Text</em> <i>Kursiver Text</i> |
u | unterstreicht Text | <u>unterstrichener Text</u> |
super | hochgestellter Text | Quadratmeter: m<super>2</super> |
sub | tiefgestellter Text | Wasser: H<sub>2</sub>O |
inl_box | umrandeter Text | <inl_box>Dieser Text ist umrahmt</inl_box> |
Beispiel-Abschnitt:
<strong>Fetter Text</strong>
<b>Fetter Text</b>
<em>Kursiver Text</em>
<i>Kursiver Text</i>
<u>unterstrichener Text</u>
Quadratmeter: m<super>2</super>
Wasser: H<sub>2</sub>O
<inl_box>Dieser Text ist umrahmt</inl_box>
Farbiger Text
Text kann auch eingefärbt werden:
Der nächste Satz ist rot: <inline color="red">Ich bin rot!</inline> Und nun wieder normal
Brief-Abschnitte: Aufzählungslisten
Ebenso wie Auszeichnungen können Aufzählungslisten definiert werden:
ungeordnete Liste:
<ul>
<li>Eintrag 1</li>
<li>Eintrag 2</li>
</ul>
geordnete Liste (Numerierung):
<ol>
<li>Eintrag 1</li>
<li>Eintrag 2</li>
</ol>
Brief-Abschnitte: Tabellen
Komplexer sind Tabellen, hier ein komplettes Beispiel:
<tgroup cols="2" width="150mm">
<colspec column-number="1" colwidth="25mm" />
<colspec column-number="2" colwidth="125mm" />
<tbody>
<row>
<entry column-number="1"><p><strong>Wann:</strong></p></entry>
<entry column-number="2"><p><strong>14.07.2015, 14:00 Uhr</strong></p></entry>
</row>
<row>
<entry column-number="1"><p><strong>Wo:</strong></p></entry>
<entry column-number="2"><p><strong>biz Uster</strong></p></entry>
</row>
</tbody>
</tgroup>
Anwenden von Platzhaltern
BISO nutzt zum Ersetzen der Platzhalter eine so genannte “Template Engine” - in diesem Fall Smarty. Smarty verlangt eine bestimmte Syntax, um Platzhalter zu definieren.
Platzhalter sind folgendermassen aufgebaut:
Definition eines Platzhalters:
{$Objektname->Eigenschaft}
als Beispiel: Name des Kunden:
{$kunde->name}
Diese können auch ergänzt werden mit zahlreichen “Modifikatoren”, welche den Wert noch verändern. Beispielsweise kann ein Datumswert in das gewünschte Format transformiert werden:
einfacher Modifikator:
{$Objekt->Eigenschaft|modifikator}
Modifikator mit Parametern:
{$Objekt->Eigenschaft|modifikator:Parameter1:Parameter2}
als Beispiel: Geburtsdatum des Kunden, im Format ‘dd.mm.YYYY’:
{$kunde->geburtsdatum:date_format:'%d.%m.%Y'}
Smarty kennt sehr viele Modifikatoren. Eine Liste der Modifikatoren finden Sie hier:
https://smarty-php.github.io/smarty/4.x/designers/language-modifiers/
Platzhalter-Beispiele
Name des Kunden : {$kunde->name}
Vorname des Absenders : {$AbsenderPerson->vorname}
Schulhaus-Name : {$schulhaus->name}
Kurz-Name des BIZ : {$AbsenderInstitution->name_kurz}
Termin-Datum, lang : {$termin->termin_datum|date_format:'%A, %d. %B %Y'} --> Freitag, 17. Februar 2023
Treffpunkt-Ort, alles GROSSgeschrieben: {$treffpunkt->ort|upper}
Längenbeschränkung : {$berater->name|truncate:20:"..."} --> max. 20 Zeichen, mit "..." abgekürzt
Umbruch nach n Zeichen : {$beratungsfall->bemerkung|wordwrap:30:"<br />\n"}
Verfügbare Objekte für Platzhalter
In den Vorlagen sind diverse Objekte definiert, es werden im Folgenden einige aufgezählt:
Name der Variable | Typ | Inhalt / Bedeutung |
---|---|---|
$beratungsfall |
Record | Beratungsfall-Objekt des aktuellen Falles |
$EmpfaengerPerson |
Record | Person-Objekt für den Empfänger |
$EmpfaengerInstitution |
Record | Institution-Objekt für den Empfänger |
$AbsenderPerson |
Record | Person-Objekt für den Absender |
$AbsenderInstitution |
Record | Institution-Objekt für den Absender |
$Betreff |
String (Text) | Der (dynamische) Betreff-Text |
$mentor |
Record | der Mentor-Personen-DS des Falles |
$kunde |
Record | der Personen-DS des Kunden |
$lehrer |
Record | der Personen-DS des Lehrers |
$schulhaus |
Record | der Institutions-DS des zugewiesenen Schulhauses |
$schulstufe |
Record | Schulstufe-Record |
$schulklasse |
Record | Schulklasse-Record |
$zuw_institution |
Record | Die Institution ‘Zugewiesen durch’ |
$zuw_berater |
Record | Der Berater ‘Zugewiesen durch’ |
$ausbildung |
Record | Der Ausbildungs-DS aus ‘ausbildung’ |
$situation |
Record | Der Situations-DS aus ‘situation’ |
$bbt_fragestellung |
Record | Der DS zur Fragestellung aus ‘bbt_b8_thema’ |
$bbt_ergebnis |
Record | Der DS zum Ergebnis aus ‘bbt_b8_thema’ |
$modul |
Record | Der DS zum modul |
$datum |
Timestamp | Das im Dok-Erstellen-Form eingegebene Datum |
$termine |
Record-Array | Alle Termin-DS als Objekt-Array |
$ersttermin |
Record | BfTermin-Objekt des (wahrgenommenen) Ersttermins |
$brief_vorlage |
Record | Datensatz der BriefVorlage |
$anrede |
String (Text) | Anrede-String |
$kopie_an |
String (Text) | Kopie-An-Text |
$treffpunkt |
Record | Treffpunkt-Datensatz, falls gewaehlt |
$termin |
Record | angewaehlter Termin (BfTermin) |
$verschiebe_termin |
Record | angewaehlter Verschiebe-Termin (BfTermin, bei Vorlagen, welche dies unterstützen) |
$beilagen |
Record-Array | Array mit gewählten Beilage-Records |
Je nach Platzhalter-Typ können die Werte in den Briefvorlagen entsprechend eingesetzt werden:
String
: Dies sind einfache Texte, und können als Smarty-Variable eingefügt werden. Bsp:{$Betreff}
Timestamp
: ein Zeitstempel (Unix-Timestamp), welcher in ein Datum gewandelt werden kann:{$datum|date_format:'%d.%m.%Y'}
Record
: Dies sind Objekte mit weiteren Eigenschaften. Beispielsweise hat das Objekt$termin
die Eigenschafttermin_datum
: Diese können folgendermassen verwendet werden:
{$termin->termin_datum}
, oder sogar mit Smarty-Filter-Methoden:{$termin->termin_datum | date_format:'%d.%m.%Y' }
Record-Array
: eine Liste mit Records, welche mittels eines for-Loops ausgegeben werden kann
Eine Liste aller Objekte, die Sie in den Vorlage-Abschnitten zur Verfügung haben, können Sie sich in einem Beispiel-Brief-Abschnitt ausgeben lassen: Definieren Sie in einem Test-Brief einen Brief-Abschnitt mit folgendem Inhalt:
Alle verfügbaren Objekte:
{print_r(array_keys($smarty.template_object->smarty->tpl_vars))}
Dies gibt Ihnen eine Liste mit allen verfügbaren Objekten aus:
Die einzelnen Eigenschaften der Objekte können Sie ebenfalls ausgeben (siehe nächster Abschnitt).
Eigenschaften der Platzhalter
Eine komplette Liste aller Eigenschaften der oben gezeigten Objekte ginge hier zu weit - dies sind mehrere Hundert verschiedener Eigenschaften. Sie können jedoch jederzeit in einer Vorlage die verfügbaren Eigenschaften ausgeben lassen - in dem Sie in einer Test-Briefvorlage folgenden Abschnitt definieren:
Eigenschaften des $kunde-Objektes:
<p>
{$kunde->getJsonObject()|print_r}
</p>
Dies liefert Ihnen im Brief folgende Ausgabe:
Sie sehen hier die verfügbaren Eigenschaften sowie der aktuelle Wert der Eigenschaft.