Zum Inhalt springen

condition funkts nicht

Erstellt am 27. August 2004 · 8 Antworten · letzte Antwort am 1. September 2004

Tags: Frage

xavier ·

[globalVar = TSFE:id = 49]
templateMENU.1.NO.allWrap = <div > |</div>
[else]
templateMENU.1.NO.allWrap = <div class="mnpMenuLabel"> |</div>
[global]

bei seite mit der id 49 soll typo3 anders wrappen, aber es funktioniert nicht

Oliver Thiele ·

Ist die Condition womöglich innerhalb der geschweiften Klammern? Dann funktioniert die Condition nämlich nicht. Womoglich ist da auch nur ein Klammersetzungsfehler - der würde dann auch im TypoScript Objektbrowser angezeigt werden.

xavier ·

hier ist mein ganzer code. ich finde aber keinen fehler.

templateMENU = HMENU
templateMENU.entryLevel = 0
templateMENU.special = directory
templateMENU.special.value = 3
templateMENU.1 = TMENU
templateMENU.1.target = _top
templateMENU.1.expAll = 1
templateMENU.1.NO.allWrap = <div > |</div>
templateMENU.1.NO.doNotLinkIt = 1

[globalVar = TSFE:id = 49]
templateMENU.1.NO.allWrap = <div > |</div>
[else]
templateMENU.1.NO.allWrap = <div class="mnpMenuLabel"> | </div>
[end]

templateMENU.2 = TMENU
templateMENU.2.target = _top
templateMENU.2.expAll = 1
templateMENU.2.NO.allWrap = <div class="mnpMenuRow" style="BORDER-LEFT-COLOR: #f1f1f1; BACKGROUND: #f1f1f1; OVERFLOW-X: hidden; BORDER-BOTTOM-COLOR: #f1f1f1; WIDTH: 185px; BORDER-TOP-COLOR: #f1f1f1; BORDER-RIGHT-COLOR: #f1f1f1">|</div>

MENU.headerData.10 = TEXT
MENU.headerData.10.value = <script language="JavaScript" src="fileadmin/scripts/menu.js" type="text/JavaScript"></script>
MENU.stylesheet = fileadmin/css/menu.css
MENU.noLinkUnderline = 1
MENU.10 = TEMPLATE
MENU.10 {
template = FILE
template.file = fileadmin/templates/frames/tpl_menu.htm
workOnSubpart = DOCUMENT_BODY
marks.MENU < templateMENU

}

doku ·
...
templateMENU.1.NO.allWrap = <div > |</div> 
templateMENU.1.NO.doNotLinkIt = 1 

[globalVar = TSFE:id = 49] 
templateMENU.1.NO.allWrap = <div > |</div> 
[else]
...

wenn du deinen wrap sowohl in die condition, als auch in den "normalen" bereich reinschreibst... 😉

xavier ·

hi doku,

ich verstehe nicht was du meinst. ich wollte für die seite mit der id 49 einfach anders wrappen...

gruss

xavier

Oliver Thiele ·

Also das mit der Condition ist eigentlich schon richtig so. Und es macht auch nichts, wenn der Wrap erst vorher schon mal ausserhalb der Condition stand. Wenn eine Zeile oben im TypoScript später mit neuen Werten versehen wird, zählt das was unten im Typoscript steht. Die Funktion der Condition ist in diesem Fall also nicht eingeschränkt. Die Condition habe ich überprüft, die funktioniert bei mir einwandfrei. Aber womöglich möchten Sie etwas ganz anderes:
Mit dieser Condition wird, wenn die Seite 49 aufgerufen wird, der Wrap für alle NO-Menüeintrage der ersten Ebene geändert. Möchten Sie vielleicht eher, daß das Layout im Menu immer bei Seite 49 ein anderes ist?

xavier ·

hallo herr thiele,

schuldigung das ich meinen problem nicht deutlich ausdrücken konnte. ich möchte genau das machen was sie meinen. ich möchte für den menu eintrag mit der seite id 49 anders wrappen und nicht das menu für die seite 49 anders wrappen. wissen sie vielleicht eine lösung.

gruss

xavier

Oliver Thiele ·

Ich hatte einen Ansatz über die If-Funktion im TS versucht. Mit

templateMENU.1.NO.allWrap = <div class="mnpMenuRow">|</div>
templateMENU.1.NO.allWrap.if {
  value = 49
  equals.field = uid
}

kann man leider nur das div-Tag setzen, wenn die PID 49 ist, leider gibt es meines Wissens keine else-Funktion an dieser Stelle. Somit bleibt nur eine Generierung über eine Userfunction bzw ein eingebundenes PHP-Script.
Vielleicht hilft Ihnen auch die Funktion Optionsplit weiter, damit kann man z.B. den ersten Menüeintrag anders als den letzten definieren (und vieles mehr). Die Beispiele zu dieser Funktionen stehen in der TSRef.

xavier ·

hallo herr thiele,

wissen sie wie man einen menu über eine userfunction generiert.
vielleicht einen kleinen bespiel.

vielen dank

hanh pham