...
Dabei kann auch eingestellt werden, welcher Kontext für die Generierung beachtet werden soll. "Aktueller Inhalt" sammelt beim Generieren die Einträge, welche für das aktuelle Inhaltselement gepflegt sind und baut darauf ein Inhaltsverzeichnis aus. Das kann nützlich sein, wenn man ein oder mehrere Inhaltsverzeichnisse für zum Beispiel Kapitel darstellen möchte. "Gesamtes Dokument" hingegen, kann dazu benutzt werden, um ein Inhaltsverzeichnis über das gesamte Dokument zu erzeugen. Also zum Beispiel ein Katalog-Inhaltsverzeichnis. Diese Art von Inhaltsverzeichnis funktioniert nur dann, wenn auch das Dokument generiert wird und nicht nur ein Inhalt.
Erweiterbarkeit
Das Inhaltsverzeichnis ist in zwei Bereiche getrennt. Das Sammeln der Einträge über PrintDocument/Toc
und das Darstellen der Einträge über View/Toc
. Die Darstellung über View/Toc
ist dabei nicht erweiterbar, aber das Sammel über PrintDocument/Toc
hingegen über diese Events.
...
Kontext
Die Eventstruktur in PrintDocument/Toc
arbeitet über einen Kontext. Dieses dient für die verschiedenen Eventimplementationen als Entscheidung, ob diese reagieren und welche Einträge gesammelt werden sollen. Für Erweiterungen kann hier ein eigener Kontext (und dann ein eigener View) auf Basis von ContextTocAbstract
abgeleitet werden oder bei den Kontexten aus der Produktimplementation eingegriffen werden.
Die Produktimplementation arbeitet mit ContextDocument
für das Sammeln aller Einträge des mitgegebenen $documents
und ContextPage
sammelt alle Einträge der mitgegebenen $page
. Die Ansicht View/Toc
entscheidet dann über den gepflegten Kontext bei den Elementeinstellungen, mit welchem ContextAbstract
\Brandbox\PrintCore\PrintDocument\Toc\Manager::get
aufgerufen wird, um eine Toc-Struktur zurückzubekommenMit der Einstellung "Seinzahlformat" kann eine Formatierung der Seitenzahl gemacht werden. Ein Beispiel wäre "Seit %s", was dann zu "Seite 5" werden würde. %s wird dabei mit der Seitenzahl des Eintrags ersetzt.
"Maximales Level" kann verwendet werden, um zum Beispiel nur Einträge bis zu Level 2 darzustellen.