Questions & Answers

SOLVED
mreinhardt
I'm new here

Seiteninternes Inhaltsverzeichnis

Jump to solution

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)$"/>

1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

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

View solution in original post

0 Kudos
2 Replies
C_Klingbeil
I'm new here

Hallo Herr Reinhardt,

wenn ich Sie richtig verstanden habe, dann mรผssen Sie in Ihrer Absatz-Vorlage nur in dem Tab Eigenschaften das Hรคkchen bei "<a> Tag" (neben der Ziel Extension) setzen. Das generiert dann automatisch die Absatz-Anker.

Viele GrรผรŸe,

C. Klingbeil

hoebbel
Crownpeak employee

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 Kudos

Type a product name