Zum Inhalt springen

dynamischer EntryLevel ?

Erstellt am 8. August 2006 · 7 Antworten · letzte Antwort am 24. Mai 2007

Tags: Frage

david_h ·

Hallo zusammen,

ich habe eine website mit templateselector und ein ContentArea Template soll ein Tabmenu enthalten.

Problem:
Das ContentAreea Template kann in verschiedenen Ebenen eingebunden werden, das menu braucht aber einen festen EntryLevel.

Kann ich das Template dazu bringen den Level der seite "rauszufinden" und den EntryLevel dynamisch zu setzen ?

Ich wäre für hilfe sehr dankbar.

steffenk ·

da fällt mir spontan der Weg über conditions ein
[treeLevel = levelnumber]
oder mit negativen Werten arbeiten ...

david_h ·

Danke für den tip, ich hab ein bisschen rumgestöbert und glaub auch, dass das der richtige weg ist. ich kriegs aber nicht zum laufen.
ich hab (wie gesagt) einen templateselector am laufen und das menü wird als extension-template im root reingeladen.

Ich raff ehrlich gesagt nicht, wo und wie ich die conditions einbauen müsste...

david_h ·

Das Menu wird über im ContentAerea Template aufgerufen:

  # Substitute the ###tabsmenu### subpart with a menu:
  subparts.tabsmenu = TEXT
  subparts.tabsmenu < temp.tabsmenu

und wenn in einem HTML Template dann <div id="tabsmenu"> kommt, wird das gemacht:

temp.tabsmenu = COA
temp.tabsmenu {
#  wrap = <div id="tabsmenu">|</div>
  wrap = |
  10 = HMENU
  10.entryLevel = 2
  10.1 = TMENU
  10.1 {
    NO {
      			# Enabled if this menuitem is LEFT of the active menuitem
      before.cObject = IMAGE
      before.cObject.file = {$temp.tabsmenu.imagePath}{$temp.tabsmenu.leftImgNO} || {$temp.tabsmenu.imagePath}{$temp.tabsmenu.centerImgNO}
      before.cObject.wrap = <div class="img">|</div>
      before.cObject.if.isTrue.data = register:curUid
      before.cObject.if.negate = 1
       
      			# Enabled if this menuitem is RIGHT of the active menuitem
      after.cObject = IMAGE
      after.cObject.file = {$temp.tabsmenu.imagePath}{$temp.tabsmenu.centerImgNO} |*||*| {$temp.tabsmenu.imagePath}{$temp.tabsmenu.rightImgNO}
      after.cObject.wrap = <div class="img">|</div>
      after.cObject.if.isTrue.data = register:curUid
      linkWrap = <div class="item">|</div>
      allWrap = |
    }
    ACT < .NO 
    ACT = 1
    ACT {
      before.cObject.file = {$temp.tabsmenu.imagePath}{$temp.tabsmenu.leftImgACT} || {$temp.tabsmenu.imagePath}{$temp.tabsmenu.centerLeftImgACT}
      before.cObject.if >
      after.cObject.file =  {$temp.tabsmenu.imagePath}{$temp.tabsmenu.centerRightImgACT} |*||*| {$temp.tabsmenu.imagePath}{$temp.tabsmenu.rightImgACT}
      after.cObject.if >
      linkWrap = <div class="item2">|</div>
      stdWrap.cObject = COA
      stdWrap.cObject {
        10 = TEXT
        10.field = title
        20 = LOAD_REGISTER
        20.curUid= 1
      }
    }
  }
  	# This part adds the closing image, which will be missing in cases where there's no active menuitem 
  20 = IMAGE
  20.file = {$temp.tabsmenu.imagePath}{$temp.tabsmenu.rightImgNO}
  20.wrap = <div class="img">|</div>
  20.if.isTrue.data = register:curUid
  20.if.negate = 1
}

Sehr vielen dank im Vorraus!

steffenk ·

Du musst ja nur den entryLevel verändern, also unter temp.tabsmenu kommt dann z.B.

[treeLevel = 2]
temp.tabsmenu.10.entryLevel = 3
[global]

hast Du denn mal mit entryLevel = -1 experimentiert ?

david_h ·

negativer entryLevel scheints zu sein ...
so einfach ...

sorry für die umstände, aber manchmal denkt man einfach zu kompliziert ...

Danke!