HeadingLevelService
Der HeadingLevelService ermöglicht es Headline-Tags (<h1>
, <h2>
, …) automatisch je nach Überschriften-Level automatisch zu setzten.
Dafür wird in den Renderern die Methode
$this->headline = $this->createHeadlineFor('headline');
verwendet.
Siehe Z.B. im Paragraph-Renderer
Die Headline wird nur automatisch gesetzt, wenn der HeadingLevelService vorher aktiviert wurde.
Dies erfolgt mit der Methode
$startLevel = 2;
$this->getHeadlineLevelService()->activate($startLevel);
Deaktiviert wird sie wieder mit
$this->getHeadlineLevelService()->deactivate();
Siehe z.B. im Main-Renderer
Renderer die eine Überschrift definiere und untergeordnete Renderer aufrufen die auch Überschriften rendern, müssen das Überschriften-Level erhöhen, damit für die untergeordneten Renderer der passende Tag erstellt werden kann.
Dies wird mit folgenden Methoden gemacht:
$this->getHeadlineLevelService()->openLevel();
um ein Level zu erhöhen und
$this->getHeadlineLevelService()->closeLevel();
um das Level wieder zurück zu setzten.
Siehe z.B. im Section-Rendeer
Aktiviert wird der HeadingLevelService z.Z. nur im Main-Renderer.
Der aktuelle Level wird zur Zeit nur vom Section-Rendeer gesetzt.
Damit ist der Fall abgedeckt. das die Überschrift z.B. eines Text-Abschnitts außerhalb einer Sektion <h2>
verwendet und automatisch innerhalb einer Sektion mit Überschrift <h3>
.
Ausserhab des Content-Bereiches gibt es kein automatisches HeadingLevel.