Seiteninternes Inhaltsverzeichnis
Author: mreinhardt
Publication Date: 1/22/2011 14:02
Ich hab eine neue Absatzvorlage "Inhaltsverzeichnis" angelegt:
<CMS_MODULE>
<CMS_INPUT_SECTIONLIST name="st_contentSections">
<LANGINFOS>
<LANGINFO lang="*" label="Inhaltsverzeichnis der Seite" description="Erstellt ein Inhaltsverzeichnis der ausgewählten Absätze."/>
</LANGINFOS>
</CMS_INPUT_SECTIONLIST>
</CMS_MODULE>
HTML-Kanal:
<CMS_HEADER>
</CMS_HEADER>
$CMS_IF(!st_contentSections.isEmpty)$
<div>
<ul>
$CMS_FOR(section,st_contentSections)$
<li><a href="#$CMS_VALUE(section.anchorName)$">$CMS_VALUE(section.text)$</a></li>
$CMS_END_FOR$
</ul>
</div>
$CMS_END_IF$
Nun hab ich zwar eine Aufstellung aller Absätze der Seite, aber der Anchor-Name ist nicht gesetzt. Jetzt muss ich ja noch den Anchor in meinem Absatztemplate einbinden (in einer anderen Vorlage, meiner Standardabsatzvorlage). Wie greife ich beim einzelnen Absatz auf den anchorName zu?
Das funktioniert leider nicht
<a name="$CMS_VALUE(#link.section)$"/>
-
Author: hoebbel - 1/24/2011 8:55
Hallo,
die einfachste Lösung ist es, auf der Karteikarte Eigenschaften der entsprechenden Absatzvorlage in der Tabelle Dateiendung für den entsprechenden Ausgabekanal den Haken in der Spalte "<a> Tag" zu setzen.
Das erzeugt vor dem Anfang der Ausgabe des Absatzes folgenden Tag:
<a id="[Absatzreferenzname]" name="[Absatzreferenzname]"></a>
Wenn man statt dessen den Tag selber erzeugen will, so würde der Quelltext für exekt den selben Tag so aussehen:
<a id="$CMS_VALUE(#global.section.name)$" name="$CMS_VALUE(#global.section.name)$"></a>
Anmerkung: Wenn im Referenznamen des Absatzes ein Leerzeichen vorhanden ist [über redaktionelle Bearbeitung in alten Versionen oder per Skript erzeugt], so wird dieses bei der automatischen Ausgabe in einen Unterstrich umgewandelt. Dies soltle man gegebenenfalls bei der manuellen Ausgabe beachten (z.B. mittels $CMS_VALUE(#global.section.name.replaceAll(" ","_"))$)
Viele Grüsse aus Dortmund,
Holger
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar