Dokumentenmanagement

Die Dokumentenvorlagen dienen dem Versand von E-Mails, der Erstellung von Drucksachen und auch für Rechnungen und Lieferscheine1 - werden in der Datenbank in der Tabelle co_list_mail gespeichert.

Hinweis

Die Legacy-Verarbeitung unterscheidet sich in der Bedeutung der Felder.

Ein Dokument besteht im wesentlichen aus einem Inhalt und einem Kontext. Der Inhalt definiert die Struktur des Dokumentes und der Kontext legt die Inhalte der Platzhalter fest. Ein Platzhalter ist über ${ und } definiert.

So wird der Platzhalter ${example}, durch den Wert des Schlüssel im Kontext ersetzt.

Der Type des Template wird über den MimeType im Feld mimeType definiert. Im Feld charset wird der Zeichensatz defniert. Der Standard sollte hier utf-8 sein.

Kontext

Der Kontext wird über das Feld context definiert und von der verwendeten Funktion vorgegeben. Der Kontext defniert die Inhalte eines Dokuments und bestimmt die Platzhalter.

Der Kontext kann in einer Funktion über die Funktion DocumentManager::getContextClass() geholt werden. Dieser Mechanismus erlaubt es den Kontext zu überschreiben. Im Standard wird die übergebene Klasse 1:1 zurückgegeben.

$contextClass=\Alvine\Application\Assembly::getInstance()
          ->getDocumentManager()->getContextClass(
    \Alvine\Application\Platform\Commerce\Document\Context\LoginTokenPerMail::class
);

Um einen eigenen Manager zu verwenden, muss die Anwendungsklasse überschrieben werden und der eigene Manager zurückgegeben werden.

Der DefaultContext enthält bereits die Platzhalter des ausgewählten Mandanten. Alle davon abgeleiteten Kontexte verfügen somit über die Unternehmensdaten.

siehe auch DefaultContext

Eigenschaften

Neben dem Kontext verfügt ein Template über Eigenschaften, die als Platzhalter im Template zur Verfügung stehen. Die Eigenschaften können über Sprache und Land lokalisert werden. Darüber können die Inhalte eines Dokuments lokalisiert werden.

Zum Bespiel : 'to' => '${account_company_sys_contact_customerservice}'

Hinweis

Gleichnamige Eigenschaften des Templates überschreiben die Eigenschaften des Rahmen.
Es dürfen hier nicht Platzhalter definiert werden, die auf sich selbst referenzieren , zum Beispiel 'cc' => '${cc}'

Rahmen

Einige Inhalte - wie zum Beispiel der Footer einer Mail - kommen in allen Templates vor. Hier besteht die Möglichkeit ein übergeordnetes Template anzulegen. Dieses Template muss den Platzhalter ${content} enthalten.

Ein abgeleitetes Template wird dann an dieser Stelle in den Rahmen eingefügt. Das Rahmentemplate darf ebenfalls Platzhalter enthalten. Die Referenzierung erfolgt über das Feld frame. Hier muss db://<id> stehen. <id> steht hier für die ID des Rahmens, z.B db://10 für den Rahmen im Datensatz 10.

Das Rahmentemplate besitzt keinen Kontext, so das die verwendeten Platzhalter im Kontext des Template definiert sein müssen.


  1. Gilt nicht für die Legacy-Dialoge