Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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

EventBeschreibung
PrintDocument\Reference\Lib\Event\OnPopulatePageReferencesEbene: Sammeln der Referenzen für alle PrintElements der PrintPage
PrintDocument\Reference\Lib\Event\OnPopulateElementReferencesEbene: Sammeln der gepflegten Referenzen des PrintElements
(Input/Select source) PrintReferenceFormatterEine 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\OnPopulatePageReferences die $event->element→formatter definieren

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 aufformuliert werden.