Print Events Referenzen

Die Anwenderdokumentation mit einer Erklärung des Features findet sich hier.

Ablauf

  • Bei Render\Lib\Event\OnPopulateScopeDocument und Render\Lib\Event\OnPopulateScopePage wird das PrintDocument, bzw. die PrintPage, nach PrintElement durchsucht, bei denen Referenzen gepflegt wurden. Diese werden gesammelt und (intern) im Cache von PrintDocument/Reference gespeichert.

  • Über Reference\Manager::replace (auch durch Render\Lib\Struct\ElementHelperTrait::processReference) werden beim Verarbeiten des PrintElements zu einem SG-Element die Platzhalter des angegebenen Texts mit einer Referenz ersetzt. Die Referenz ist ein sup-Element für das hochgestellte Symbol und besitzt einen Identifier zur Identifikation.

  • Der View PrintLayoutStandard\View\PrintReference\Engine::reference bezieht die im ersten Schritt aufgebaute Struktur durch Reference\Manager::getPageReferences und wandelt dieses in ein PrintStyleguide\Entity\PrintReference-Objekt um.

Events

Event

Beschreibung

Event

Beschreibung

PrintDocument\Reference\Lib\Event\OnPopulatePageReferences

Ebene: Sammeln der Referenzen für alle PrintElements der PrintPage

PrintDocument\Reference\Lib\Event\OnPopulateElementReferences

Ebene: Sammeln der gepflegten Referenzen des PrintElements

PrintDocument\Reference\Lib\Event\OnPopulateFormatter

Möglichkeit, Formatierungen zu erweitern. Siehe auch Abschnitt für Formatierungen.

(Input/Select source) PrintReferenceFormatter

Eine source für Input/Select, mit der es möglich ist, Formatierungen zu hinterlegen.

Formatierungen

Um eigene Formatierungen zu definieren, sind folgende Schritte notwendig:

  • Eine Formattierungsklasse mit einem extend aus PrintDocument\Reference\Lib\Struct\FormatterAbstract anlegen.

  • Die Formatierung über Input/Select für die source PrintReferenceFormatter anbieten

  • Über das Event PrintDocument\Reference\Lib\Event\OnPopulateFormatter implementieren

Beim Zusammenbauen des Elements wird $element->formatter->format($next = true) bei Beginn aufgerufen. Es sollte also darauf geachtet werden, dass der erste Durchlauf schon $next = true setzt.

Es sollten bitte alle Funktionen funktionsfähig ausformuliert werden.