Zum Inhalt

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 ${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.

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 Dokumente lokalisiert werden.

Hinweis

Gleichnamige Eigenschaften des Templates überschreiben die Eigenschaften des Rahmen.

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 frame Feld. 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