Zum Inhalt springen

Ankermenü

Erstellt am 2. Oktober 2014 · 3 Antworten · letzte Antwort am 6. Oktober 2014

Tags: Frage

cietho ·

Hallo zusammen,

ich habe ein Problem mit meinem Ankermenü. Und zwar erstelle ich Anker aus dem Headerfield eines Contentelements (die replacements sollen Umlaute, Leer- sowie Sonderzeichen bearbeiten):

tt_content.stdWrap {
	prepend >
	prepend = COA
	prepend.stdWrap {
		wrap = <a id="|"></a>
		if.isTrue.field = sectionIndex
	}
	prepend.10 = TEXT
	prepend.10 {
		field = header
		case = lower
		replacement {
			10 {
				search = Ü
				replace = ue
			}
			20 {
				search = Ä
				replace = ae
			}
			30 {
				search = Ö
				replace = oe
			}
			40 {
				search = / /
				useRegExp = 1
				replace = -
			}
			50 {
				search = /[^a-zA-Z0-9-]/
				useRegExp = 1
				replace =
			}
		}
		if.isTrue.field = sectionIndex
	}
}

Das ganze sieht in HTML dann wiefolgt aus (vereinfacht):

<a id="ueber-uns"></a>
<div>
  <h1>Über uns</h1>
  <p>Lorem ipsum</p>
</div>

Das Menü zu diesen Ankern möchte ich natürlich ebenfalls über die Headerfields erstellen - folgendes habe ich ausprobiert:

lib.menu = CONTENT
lib.menu {
	table = tt_content
	wrap = <ul class="right">|</ul>
	select {
		pidInList = this
		orderBy = colPos
		languageField = sys_language_uid
	}
	renderObj = TEXT
	renderObj {
		wrap = <li>|</li>
		field = header
		typolink.parameter.field = pid
		typolink.parameter.dataWrap = |#{field:header}
	}
}

Die Ausgabe enthält das Problem:

<ul class="right">
    <li><a href="#Über">Über uns</a></li>
</ul>

Ich möchte den Link "#Über" nun so wie oben mit prepend bearbeiten, damit daraus "#ueber-uns" wird. Kann mir jemand bei der Lösung des Problems helfen?

cietho ·

Hi Schweriner,

ja habe ich, aber dadurch ändert sich lediglich der Link-Name:

aus:
<li><a href="#Über">Über uns</a></li>

wird:
<li><a href="#Über">ueber-uns</a></li>

Ich vermute der Fehler liegt an dieser Zeile:

typolink.parameter.dataWrap = |#{field:header}

Stehe leider weiterhin auf dem Schlauch.