---
title: "komme mit Conditions nicht zurecht"
url: "https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht"
source: "typo3.net"
tags: ["TYPO3","Menüs","Frage"]
created: "2009-03-12"
last_reply: "2009-03-15"
replies: 13
solved: false
page: 1
pages: 1
lang: "de"
---

# komme mit Conditions nicht zurecht

TYPO3 › Menüs · 13 Antworten · gestartet 2009-03-12

## Eröffnungsbeitrag

**Patrick S.​** · 2009-03-12 · [Beitrag #1](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/1)

Hallo,

seit ein  paar Tagen schon versuche ich nebenher immer wieder, mich mit den Condition anzufreunden, aber ich bin offengesagt nicht faehig dazu.

Ich moechte, je nachdem auf welcher Seite sich der Benutzer befindet, fuer das Menu eine andere Hintergrundfarbe darstellen. Mehr nicht.. muss doch drin sein??

So siehts jedenfalls aus:

```typoscript
MENU_1.2 = GMENU
MENU_1.2 {
	entryLevel = 1
	NO = 1
	NO.XY = [5.w]+32,22	

	[globalVar = TSFE:pid = 21]
	NO.backColor = blue
	[else]
	NO.backColor = green
	
	NO.5 = TEXT
	NO.5 {
		text.field = title
		text.case = upper
		fontFile = fileadmin/templates/fonts/arial.ttf
		fontColor = white
		fontSize = 10
		niceText = 1
		offset = 16, 16
	}
	NO.10 = || IMAGE
	NO.10.file = GIFBUILDER
	NO.10.file {
		XY = 1, 12
		backColor = white
	}
	NO.10.offset = 0, 10
}
```

pid deswegen, weil ich fuer jede uebergeordnete Seite die Farbe festlegen moechte. Also das Menu ist in zweiter Ebene und die Farbe soll auf jede der Unterseiten dieser uebergeordneten gleich sein. Wenn ich aber im ersten Menu einen anderen Punkt anklicke, sollte eine andere Farbe verwendet werden.

Ich kenne mittlerweile alle Forenbeitraege dazu auswendig, aber ich bin einfach zu doof dafuer. Ich mach das offenbar nicht oft genug.. hab mir auch schon das Kochbuch bestellt heute morgen, aber das dauert ja noch ein wenig.

Danke und Grüße, Patrick

## Antworten

### [#2](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/2) · Unbekannter Benutzer · 2009-03-12

Du kannst Bedingungen nur auf der "Root"-Ebene durchführen:

```typoscript
text = TEXT
text {
  bla = 1
}
[condition]
  text {
    bla = 2
  }
[global]
```

Folgendes ist nicht möglich:

```typoscript
text = TEXT
text {
  bla = 1
  [condition]
    bla = 2
  [global]
}
```

### [#3](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/3) · Patrick S.​ · 2009-03-12

Oh, wunderbar. Danke fuer den Tipp, aber mit [globalVar = TSFE:pid = 19] scheine ich offenbar nicht an die aktuelle PID zu kommen, oder?

### [#4](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/4) · Unbekannter Benutzer · 2009-03-12

> **Patrick S. schrieb:**
>
> Oh, wunderbar. Danke fuer den Tipp, aber mit [globalVar = TSFE:pid = 19] scheine ich offenbar nicht an die aktuelle PID zu kommen, oder?

Nein, um an die aktuelle Seiten-ID zu kommen musst du [globalVar = TSFE:id = 19] verwenden.

### [#5](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/5) · Patrick S.​ · 2009-03-12

Nee... ich will ja wie gesagt an die PID, nicht an die UID.
Es geht mir ja darum, dass ich wissen moechte, auf welcher uebergeordneten Seite ich mich befinde und das waere in meinen Augen die parent Id.

### [#6](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/6) · Unbekannter Benutzer · 2009-03-12

> **Patrick S. schrieb:**
>
> Nee... ich will ja wie gesagt an die PID, nicht an die UID.
> Es geht mir ja darum, dass ich wissen moechte, auf welcher uebergeordneten Seite ich mich befinde und das waere in meinen Augen die parent Id.

OK... auf welche Variablen du generell zugreifen kannst, schaust du dir am besten an, indem du ein FE-Plugin erstellst und var_dump($GLOBALS['TSFE']); ausgibst - da siehst du dann, dass du die Struktur "TSFE->rootLine[0]['pid]" hast, weshalb du als Bedingung [globalVar = TSFE:rootLine|0|pid = 19] verwenden musst. Aber schau mal ob [PIDinRootline] bzw. [PIDupinRootline] nicht auch deinen Anforderungen genügen.

Als Hinweis: Das 0. Element der Rootline stimmt natürlich nur auf der Startseite - je nach ebene erhöht sich das um 1 und führt damit (in meinen Augen) zu einem Problem.

### [#7](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/7) · Patrick S.​ · 2009-03-12

Hallo, danke nochmal fuer deine Antwort. Mit PIDinRootline hab ich vorhin auch probiert, dabei ist mir aber gerade grundsaetzlich aufgefallen, dass das doch totaler Quatsch ist, was ich da treibe.

Die Werte, die ich erhalte, wenn ich TSFE:id oder PIDinRootline befrage, sind doch immer die der aktuellen Seite, auf der ich mich befinde und nicht die des Menus, das gerade angezeigt wird.

Im Klartext ist es doch so, dass ich ein Menu in erster Ebene habe und die Menus der zweiten Ebene alle vorab rendere und verstecke, also per GMENU_LAYERS. Wenn ich dann in erster Ebene ueber einen Menupunkt fahre, dann wird das zuvor gerenderte in 2. Ebene dargestellt. Was ich eigentlich vor hatte ist, dass jedes vorgerenderte Menu eine eigene Farbe bekommt und nicht die, der aktuellen Seite. Ich kann mich immer nicht so richtig unkompliziert ausdruecken, zu meinem Nachteil, aber ich hoffe, du verstehst, wie ich das meine?

Ich haenge das 1. und 2. Menu hier nochmal im gesamten an, vielleicht hilft das, mich zu verstehen.

```typoscript
MENU_1 = HMENU
MENU_1   {
	special = directory
	special.value = 2
	maxItems = 6

	wrap = <div> | </div>
	1 = GMENU_LAYERS
	1 {
		dontFollowMouse = 1
		expAll=1 
		hideMenuWhenNotOver = 3
		dontHideOnMouseUp = 1
		layerStyle = position:absolute; VISIBILITY:hidden; top:100px; width:1015px;
		noBlur = 1
	}

	1.NO = 1
	1.NO {
		format = png
		quality = 100
		XY = 274, 80 || 91,80 
		1 = IMAGE
		1.file = fileadmin/templates/images/main_no.png
		
		5 = TEXT
		5 {
			text.field = || title || title || title || title || title
			text.case = upper
			fontFile = fileadmin/templates/fonts/arial.ttf
			fontColor = white
			fontSize = 12
			niceText = 1
			offset = 4, 47
		}				
	}
}

MENU_1.2 = GMENU
MENU_1.2 {
	entryLevel = 1
	NO = 1
	NO.backColor = blue
	NO.XY = [5.w]+32,22	
	NO.5 = TEXT
	NO.5 {
		text.field = title
		text.case = upper
		fontFile = fileadmin/templates/fonts/arial.ttf
		fontColor = white
		fontSize = 10
		niceText = 1
		offset = 16, 16
	}
	NO.10 = || IMAGE
	NO.10.file = GIFBUILDER
	NO.10.file {
		XY = 1, 12
		backColor = white
	}
	NO.10.offset = 0, 10
}
```

Da ziemlich weit unten bei backColor = blue. Das ist die Stelle, die ich gern dynamisch anpassen wollte. Ich fass es nicht, dass ich so lange an einer stumpf betrachtet simplen Geschichte haenge. :(

### [#8](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/8) · Patrick S.​ · 2009-03-12

Das einzige ist, dass ich ja beispielsweise mit

```typoscript
stdWrap.dataWrap = <div class="classOf{field:pid}"> | </div>
stdWrap.dataWrap.insertData = 1
```

auf die gewuenschte PID zugreifen kann, um die es geht, naemlich die, des Datensatzes. Aber das kann ich ja wieder nicht in den Conditions anwenden, wenn die nur ausserhalb gueltig sind. Ein Teufelskreis.

### [#9](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/9) · Patrick S.​ · 2009-03-12

Ist es stattdessen vielleicht moeglich, dass ich die backColor Geschichte mit einem PHP Script fuelle?

```typoscript
NO.backColor = PHP_SCRIPT
NO.backColor.file = fileadmin/scripts/color.php
```

So geht es jedenfalls nicht. ;)

### [#10](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/10) · Patrick S.​ · 2009-03-12

Ich bin leider immer noch an exakt dem gleichen Punkt. :-(
Gibt es keine Moeglichkeit, dass man beispielsweise NO.backColor = {field:pid} setzen kann?

Wenn ich wenigstens eine Reaktion bekaeme, ob jemand versteht, wo mein Problem ist und mir sagen koennte, dass es einfach nicht geht oder ob ich einen ganz anderen Weg gehen sollte, um das Menu zu stricken. Oder wenn mir jemand sagt, dass ich mich beschissen ausgedrueckt habe und er kein Wort versteht, wuerde ich es so auch akzeptieren ;) und es nochmal besser versuchen.

### [#11](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/11) · Unbekannter Benutzer · 2009-03-12

Geduld hast du wohl auch keine? Wenn jemand was antworten möchte, dann tut er das auch, zumindest wenn er Zeit dafür hat.

Auf deine Art und Weise ist es bestimmt nicht möglich, aber wenn man ein zusätzliches Feld anlegt (oder ein bestehendes Zweckentfremdet), und darin die Farbe für die Seite bzw. eben den Menüpunkt festlegt, dann sollte man das schon irgendwie hinbekommen - ich denke das dir das jetzt aber relativ wenig bringt. Alternativ kommt man bestimmt auch mit Optionsplit zur gewünschten Lösung. Aber ohne das testen zu können ist eine Hilfe eben schwierig.

### [#12](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/12) · Patrick S.​ · 2009-03-12

Mensch, wieso eck ich denn staendig an bei euch? Ich wollte nicht ungeduldig wirken, sondern zeigen, dass ich nach wie vor dran bin und meinen aktuellen Standpunkt aufweisen.

Mit OptionSplit kann ich die einzelnen Menupunkte jeweils separat einfaerben, aber das will ich ja gar nicht. Nochmal die Schnellzusammenfassung:

Ich habe zwei Menus (1. und 2. Ebene (das aber fuer alle Unterseiten der 1. Ebene)). Beim Mouseover ueber das 1. soll das zweite via GMENU_LAYERS dargestellt werden, und zwar das mit den Unterseiten von dem Menupunkt, auf dem sich die Maus befindet. Also werden alle in zweiter Ebene jeder Seite gerendert und dann nur beim Mouseover auf visible gesetzt. Funktioniert soweit. Nur hat jedes Menu die gleiche Farbe, soll es aber nicht. Jedes Menu, nicht jeder Menupunkt, soll sein eigenstaendiges Erscheinungsbild haben.

Jetzt kann man aber mit den zur Verfuegung stehenden Mitteln nur z. B. CONSTANTS aus der aktuellen Seite laden, die ist aber immer die Seite, auf der sich der Benutzer befindet und nicht die, von der das Menu angezeigt wird, weil das ja, ich nenns mal, "vorgerendert" ist.

Ich habe ebenfalls schon ueberlegt, ob ich mir z. B. das Feld subtitle aus der Tabelle pages dafuer "nehme", aber dann muss ich ja wirklich fuer jede Seite (also nicht nur fuer die in erster Ebene, weil wird ja nicht vererbt) in subtitle (sicher zweckentfremdet, aber eben als Beispiel) den Farbwert schreiben. Das widerspricht ja grundsaetzlich den Grund, warum man ein CMS einsetzen sollte. :)

### [#13](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/13) · Patrick S.​ · 2009-03-12

Ich habs jetzt mal mit if.equals probiert:

```typoscript
NO.backColor = green
NO.backColor.if.value.field = pid
NO.backColor.if.equals = 4

NO.backColor = blue
NO.backColor.if.value.field = pid
NO.backColor.if.equals = 19
```

Problem ist nur, dass man auf ein Objekt ja auch nur einmal das if anwenden kann, die davor werden ueberschrieben. Gaebe es da eine Moeglichkeit das zu umgehen, waere es genau das, was ich suche, denke ich.

Aber es gibt ja keine Else-Moeglichkeit, dann kann ich die Idee wohl gleich wieder eintueten?

Ach und nein, ich bin nicht ungeduldig, sondern bemuehe mich nur weiterhin. ;-)

### [#14](https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht/14) · Patrick S.​ · 2009-03-15

Fuer einige ist das Problem sicher relativ einfach zu loesen gewesen, wenn man das schon Jahre lang macht, aber offenbar gibts hier ein paar Leute, denen meine Nase nicht passt. Schade..

Da ich ja kein Unmensch bin, veroeffentliche ich hier meine persoenliche Loesung fuer andere, auch wenn man nicht mehr wirklich mit mir redet.

Zum technischen:

Ich habe eine PHP-Klasse eingebunden:

```typoscript
includeLibs.secondMenu = fileadmin/scripts/secondMenu.php
```

Diese hat folgenden Inhalt:

```php
class user_menuManipulations {
	function user_secondMenu ($menuArr, $conf) {
		if($conf['parentObj']->id==19)
			$conf['parentObj']->mconf['NO.']['backColor'] ="#041473";
		
		elseif($conf['parentObj']->id==4)
			$conf['parentObj']->mconf['NO.']['backColor'] ="#EC6800";	
		return $menuArr;
	}
}
```

Hier pruefe ich eben, auf welcher Seite erster Ebene ich mich befinde und setze bei Bedarf die Hintergrundfarbe meines Menus.

Im TS vom Menu hab ich nur die itemArrayProcFunc angewendet:

```typoscript
MENU_1.2 = GMENU
MENU_1.2 {
	itemArrayProcFunc = user_menuManipulations->user_secondMenu
	entryLevel = 1
	NO = 1
	NO.XY = [5.w]+32,22
	NO.5 = TEXT
	NO.5 {
		text.field = title
		text.case = upper
		fontFile = fileadmin/templates/fonts/arial.ttf
		fontColor = white
		fontSize = 10
		niceText = 1
		offset = 16, 16
	}
	NO.10 = || IMAGE
	NO.10.file = GIFBUILDER
	NO.10.file {
		XY = 1, 12
		backColor = white
	}
	NO.10.offset = 0, 10
}
```

Das war alles. Danke trotzdem fuer die Hilfe.

Gruesse, Patrick

---

Quelle: „komme mit Conditions nicht zurecht“, typo3.net, https://www.typo3.net/d/87832-komme-mit-conditions-nicht-zurecht
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
