Zum Inhalt springen

Einige Untermenüs mit Hilfe einer Checkbox ausblenden

Erstellt am 4. Februar 2013 · 6 Antworten · letzte Antwort am 6. Februar 2013

Tags: Frage

shoppe ·

Hallo Ihr Lieben,

ich stehe gerade bissl auf dem Schlauch und hoffe es kann mir hier jemand weiterhelfen.
Ich habe eine Menüstruktur (4 Ebenen), von denen 3 normalerweise im Hauptmenü ausgegeben werden.
Nun gibt es allerdings Seiten (der 2. Eebene), welche ohne Untermenü ausgegeben werden sollen.
Dazu habe ich die Seiteneigenschaften um eine Checkbox erweitert.
Allerdings hackt es jetzt bei Weiterkommen.
Wie kann ich denn diese Checkbox abfragen, wenn mein Menü generiert wird?

Mein Menü sieht derzeit so aus:

### Navi Main
lib.navi_main = HMENU
lib.navi_main {
	special = directory
	special.value = {$page.PID.mainmenu}
  wrap = <ul class="first-level">|</ul>
  1 = TMENU
	1 {
	  noBlur = 1
		expAll = 1
		NO = 1
		NO.wrapItemAndSub = <li class="mainsub sub1-item{register:count_MENUOBJ}">|</li>
		NO.wrapItemAndSub.insertData = 1
		ACT = 1
		ACT < .NO
		ACT.wrapItemAndSub = <li class="mainsub sub1-item{register:count_MENUOBJ} active">|</li>
	}
	2 = TMENU
	2 {
	  noBlur = 1
		expAll = 1
		NO = 1
		NO.linkWrap = <span class="no-third-level">|</span>|
		NO.linkWrap.insertData = 1
		IFSUB = 1
		IFSUB.wrapItemAndSub = <li class="sub2-item{register:count_MENUOBJ}">|</li>
		IFSUB.wrapItemAndSub.insertData = 1
		ACT = 1
		ACT < .NO
		ACTIFSUB = 1
		ACTIFSUB < .IFSUB
		ACTIFSUB.wrapItemAndSub = <li class="sub2-item{register:count_MENUOBJ} active">|</li>
		wrap = <div class="mainsub_content"><ul class="second-level">|</ul></div>
	}
	3 = TMENU
	3 {
	  noBlur = 1
		NO = 1
		NO.stdWrap.if {
			value.data = register:count_MENUOBJ
			isGreaterThan = 7
		}
		NO.doNotLinkIt = 1
		NO.doNotLinkIt.if {
			value.data = register:count_MENUOBJ
			isLessThan = 6
		}
		NO.wrapItemAndSub = <li class="sub3-item{register:count_MENUOBJ}">|</li>
		NO.wrapItemAndSub.insertData = 1
		NO.wrapItemAndSub.if {
			value.data = register:count_MENUOBJ
			isGreaterThan = 7
		}
		#NO.if {
			#value.data = TSFE:page|display3rdNavigationLevel
			#equals = 1
		#}
		ACT = 1
		ACT < .NO
		ACT.wrapItemAndSub = <li class="sub3-item{register:count_MENUOBJ} active">|</li>
		wrap = <ul class="third-level">|</ul>
		stdWrap.append = TEXT
		stdWrap.append.typolink.parameter.field = pid
		stdWrap.append.value = mehr...
		stdWrap.append.wrap = <li class="link_to_parent">|</li>
		stdWrap.append.if {
			value.data = register:count_MENUOBJ
			isLessThan = 6
		}
		#stdWrap.if {
			#value.data = TSFE:page|display3rdNavigationLevel
			#equals = 1
		#}
	}
}

Vielleicht hat ja jemand von euch eine Idee???

Ich kann die Seite übrigens nicht einfach mit Hide in Menu ausblenden, da sie in anderen Menüs erscheinen soll.

Vielen Dank für eure Mithilfe.
LG Sarah

laptop24 ·
### Navi Main
lib.navi_main = HMENU
lib.navi_main {
  special = directory
  special.value = {$page.PID.mainmenu}
  wrap = <ul class="first-level">|</ul>

  1 = TMENU
  1 {
    noBlur = 1
    expAll = 1

    NO = 1
    ...
    ACT = 1
    ...
  }

  2 = TMENU
  2 {
    noBlur = 1
    expAll = 1

    NO = 1
    ...
    IFSUB = 1
    ...
    ACT = 1
    ...
    ACTIFSUB = 1
    ...
  }

  3 = TMENU
  3 {
    noBlur = 1

    NO = 1
    NO.stdWrap.if {
      value.data = register:count_MENUOBJ
      isGreaterThan = 7
    }
    NO.doNotLinkIt = 1
    NO.doNotLinkIt.if {
      value.data = register:count_MENUOBJ
      isLessThan = 6
    }
    NO.wrapItemAndSub = <li class="sub3-item{register:count_MENUOBJ}">|</li>
    NO.wrapItemAndSub.insertData = 1
    NO.wrapItemAndSub.if {
      value.data = register:count_MENUOBJ
      isGreaterThan = 7
    }

    NO.allStdWrap.if.equals = 1
    NO.allStdWrap.if.field = display3rdNavigationLevel

    ...
  }
}

Kann es gerade nicht testen... sollte aber funzen.

shoppe ·

Danke für deine schnelle Antwort.

Leider funktioniert es nicht, durcj diesen Entrag wird die dritte Ebene gar nicht mehr angezeigt.

laptop24 ·

Äh, moment mal.

lib.main_navi.special = directory

... liefert doch sowieso nie eine 2te oder 3te Ebene, sondern immer nur die Erste.

Norman2k ·
laptop24 schrieb

Äh, moment mal.

lib.main_navi.special = directory

... liefert doch sowieso nie eine 2te oder 3te Ebene, sondern immer nur die Erste.

Also wenn irgendwas falsch ist dann diese Aussage 🙂

shoppe ·
laptop24 schrieb

Äh, moment mal.

lib.main_navi.special = directory

... liefert doch sowieso nie eine 2te oder 3te Ebene, sondern immer nur die Erste.

Das passt schon, das Menü an sich wird ja korrelt generiert.
Allerings brauche ich halt die Möglichkeit alle Seite, wo die Checkbox nicht gesetzt ist, in diesem Menü auszuschließen und da hängts.

shoppe ·

ok, ich hab es jetzt aufgegeben, irgendwas mit sdtWrap und if-Bedingung zu versuchen, da alles irgendwie nicht zum gewünschten Erfolg führt.

Neue Idee:
In einem lib die Seiten abfragen, bei welchen die Checkbox nicht gesetzt ist und dieses lib in excludeUidList kopieren bzw. referenzieren.
Allerdings funktioniert dies auch nicht wie gewünscht.
Das lib gibt die korrekten Seiten aus, aber in excludeUidList werden sie nicht geladen. Es steht immer nur excludeUidListe = COA_INT im Code.
Irgendwelche Ideen?