Zum Inhalt springen

CSS-Klasse für li-Element ohne PageLink im firstLevel

Erstellt am 28. Januar 2012 · 4 Antworten · letzte Antwort am 28. Januar 2012

Tags: Frage

eberhardt ·

Hallo Forum,

ähnliche Problematik hier: #97579

ich möchte gerne folgende HTML-Struktur in t3 als TMENU umsetzen:

<ul id="nav">
	<li id="navMain01">
		<ul>
			<li><a href="#/sub0101" >SubItem0101</a></li>
			<li><a href="#/sub0102" >SubItem0102</a></li>
			<li><a href="#/sub0103" >SubItem0103</a></li>
			<li><a href="#/sub0104" >SubItem0103</a></li>
		</ul>
	</li>
	<li id="navMain02">
		<ul>
			<li><a href="#/sub0201" >SubItem0201</a></li>
			<li><a href="#/sub0202" >SubItem0202</a></li>
			<li><a href="#/sub0203" >SubItem0203</a></li>
			<li><a href="#/sub0204" >SubItem0203</a></li>
		</ul>
	</li>
	...
	usw.
</ul>

Die 1. Listenebene (navmain01,navmain02) brauche ich lediglich als Container zwecks Platzierung der weiteren Sublevels,
d.h. die Seiten des "MAIN"-levels sind in einem gesonderten (Teaser-) Hauptmenu bereits berücksichtigt und verlinkt...

mein bislang bestes Ergebnis erzeugt folgender typoscript-Code:

lib.subNav = COA
lib.subNav {
	10 = HMENU
	10 {
  		entryLevel = 0
#		special.value.data = leveluid:-1                                                         		
		1 = TMENU
		1 {
			wrap = <ul id="nav">|</ul>
			expAll = 1
			noBlur = 1
			NO = 1
			NO {
				ATagTitle.field = subtitle//title
				wrapItemAndSub =  <li id="nav{field:title}">|</li>
				wrapItemAndSub.insertData = 1	
			}						
			ACT < .NO
			ACT.wrapItemAndSub = <li> | </li>
			CUR < .NO
			CUR.wrapItemAndSub = <li> | </li>
		}
		2 < .1
		2 {
			wrap = <ul> | </ul>			
			NO.wrapItemAndSub =  <li> | </li>
		}
		3 < .2
	}
}

ähnliche Lösung hier: #98455
HTML Output:

<ul id="nav">
	<li id="navMAIN01"><a href="index.php?id=48" title="main01">MAIN01</a>
		<ul>
			<li><a href="index.php?id=51" title="Sub0101">Sub0101</a>
				<ul>
					<li><a href="index.php?id=67" title="sub010101">sub010101</a></li>
					<li><a href="index.php?id=68" title="sub010102">sub010102</a></li>
					<li><a href="index.php?id=69" title="sub010103">sub010103</a></li>
				</ul>
			</li>
			<li><a href="index.php?id=52" title="Sub0102">Sub0102</a></li>
			<li><a href="index.php?id=53" title="Sub0103">Sub0103</a></li>
		</ul>
	</li>
	<li id="navMAIN02"><a href="index.php?id=49" title="main02">MAIN02</a>
		<ul>
			<li><a href="index.php?id=54" title="Sub0201">Sub0201</a></li>
			<li><a href="index.php?id=55" title="Sub0202">Sub0202</a></li>
		</ul>
	</li>
		<li id="navMAIN03"><a href="index.php?id=50" title="main03">MAIN03</a>
	</li>
</ul>

Dabei wird allerdings der "Main"-level auch gewrappt, und selbst wenn ich für diese Ebene

doNotLinkIt = 0

setze, bleibt immer noch: der Textstring:

	<li id="navMAIN01">MAIN01 ....

aber auch den brauche ich nicht, brauche definitif nur die CSS-Klasse, um weitere Ebenen hier zu positionieren...

habe alles ausprobiert: prepend.cObject...., stdWrap.dataWrap = <li id="nav{levelfield: -1, title, slide}">...

kriegs einfach nicht gebacken..
Kann mir jemand helfen?

liebe Grüße

der Eber

eberhardt ·

wow! so schnell habe ich ja noch nie eine Antwort gekriegt!

Super! das klappt auf Anhieb, vererbt sich allerdings vom 1. auf die anderen Level, sodass jetzt nur noch die Listenstruktur im HTML Code ist :o... auch wenn 2 < .1 auskommentiere oder ausdrücklich sage:

doNotShowLink = 0

Hast du eine Ahnung, wie ich dieses Verhalten auf die Elternebene beschränken kann?

vielen Dank schon einmal!

igorshmigor ·

Wie sieht Dein TypoScript jetzt aus?
Wenn das ganze Ding wie folgt aussieht dürfte es sich eigentlich nicht auf die Unterebenen vererben:

lib.subNav = COA
lib.subNav {
	10 = HMENU
	10 {
  		entryLevel = 0
#		special.value.data = leveluid:-1                                                         		
		1 = TMENU
		1 {
			wrap = <ul id="nav">|</ul>
			expAll = 1
			noBlur = 1
			NO = 1
			NO {
				doNotShowLink=1
				ATagTitle.field = subtitle//title
				wrapItemAndSub =  <li id="nav{field:title}">|</li>
				wrapItemAndSub.insertData = 1	
			}						
			ACT < .NO
			ACT.wrapItemAndSub = <li> | </li>
			CUR < .NO
			CUR.wrapItemAndSub = <li> | </li>
		}
		2 < .1
		2 {
			wrap = <ul> | </ul>			
			NO.wrapItemAndSub =  <li> | </li>
			NO.doNotShowLink=0
			ACT.doNotShowLink=0
			CUR.doNotShowLink=0
		}
		3 < .2
	}
}
eberhardt ·
eberhardt schrieb

2 < .1 auskommentiere

oh ich Blöd! auskommentieren reicht natürlich nicht, da muss natürlich dann

2 = TMENU

hin.
Vielen Dank nocheinmal igorshmigor! Du hast mir den Abend gerettet! -> Es klappt!!!

der eber