TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

TMENU einmal aus Ankern einmal aus Unterseiten


Autor Nachricht
Verfasst am: 04. 08. 2010 [14:58]
terrierace
Themenersteller
Dabei seit: 11.05.2010
Beiträge: 6
Einen schönen Tag,

folgende Situation:
Eine Seitenstruktur mit momentan 2 Ebenen. Entsprechende Menüs für Unterseiten sind kein Problem. ABER: Mein Versuch für zwei meiner Seite ein Menü aus Ankern auf die Eigene Seite scheitern behaarlich.
Das Ankermenü allein funktioniert aber eben nicht in Kombination! banghead.gif
Den Knackpunkt sind die letzten paar Zeilen mit der Bedingung.
Unterscheiden tun sich die Beiden Menüs "menuZweiteEbene" und "menuZweiteEbeneAnker" nur durch die beiden Zeilen
"
sectionIndex = true
sectionIndex = header
". Doch mein Versuch nur die beiden Zeilen durch eine Bedingung für die beiden Seiten zu aktivieren ist ebenfalls gescheitert.

Kann das PlugIn "realURL" da vieleicht mit zwischenfunkten? Die Seiten-IDs bleiben doch aber geleich! icon_rolleyes.gif

TYPOSCRIPT
menuZweiteEbene = TMENU
menuZweiteEbene {
    wrap = <ul class="ZweiteEbene">|</ul>
 
    NO = 1
    NO.stdWrap2.wrap = <li class="nav_subelem"> | </li>
 
    CUR = 1
    CUR < .NO
    CUR.ATagParams = class="activ"
    CUR.stdWrap.wrap = |
 
    ACT = 1
    ACT = .CUR  
}
 
menuZweiteEbeneAnker = TMENU
menuZweiteEbeneAnker {
    wrap = <ul class="ZweiteEbene">|</ul>
    sectionIndex = true
    sectionIndex = header
 
 
    NO = 1
    NO.stdWrap2.wrap = <li class="nav_subelem_anker"> | </li>
 
    CUR = 1
    CUR < .NO
    CUR.ATagParams = class="activ"
    CUR.stdWrap.wrap = |
 
    ACT = 1
    ACT = .CUR  
  }
 
hauptmenu = COA
hauptmenu {
  wrap = <ul> | </ul>
  entryLevel = 0
 
  5 < startseiteneintrag
 
# Seitenbaum
  10 = HMENU
  10 {
  entryLevel = 0
 
# erste Ebene
  1 < menuErsteEbene
 
# zweite Ebene
  2 < menuZweiteEbene
 
#[PIDinRootline = 18]
[globalVar = TSFE:id=18, TSFE:id=19]
    2 < menuZweiteEbeneAnker
[end]
 
  }
}


Any hints?

"Ein Tag an dem man nicht gelacht hat, ist ein verlorener Tag!" (frei nach Charlie Chaplin)
Profil
Verfasst am: 31. 08. 2010 [16:57]
shado
Dabei seit: 05.08.2009
Beiträge: 12
Hallo terrierace,


ich hatte das selbe Problem und konnte es mit der Hilfe von kompetenten Typo3 IRC-lern relativ schnell lösen!

Mit dem Section-Index hatte ich gar keinen Erfolg, daher habe ich folgendes Snippet verwendet:
(Quelle)
TYPOSCRIPT
# TS Code
temp.anchorMenu = CONTENT
temp.anchorMenu {
  table = tt_content
  select {
    pidInList = this
    orderBy = sorting
    where = colPos=0
    languageField=sys_language_uid
  }
  wrap = <ul>|</ul>
  renderObj = TEXT
  renderObj {
    field = header   
    dataWrap= <li><a href="#c{field:uid}">|</a> </li>
  } 
}


Angepasst und richtig eingefügt sieht das ganze in meinem Beispiel dann so aus:
TYPOSCRIPT
## navSub [Begin]
lib.navSub = COA
lib.navSub.10 = HMENU
lib.navSub.10.entryLevel = 1
lib.navSub.10.wrap = <ul>|</ul>
lib.navSub.10.1 = TMENU
lib.navSub.10.1.NO = 1
lib.navSub.10.1.NO {
  allWrap = <li>|</li>
}
lib.navSub.10.1.ACT = 1
lib.navSub.10.1.ACT {
  allWrap = <li>|</li>
}
temp.navSubAnchors = CONTENT
temp.navSubAnchors {
  table = tt_content
  select {
    pidInList = this
    orderBy = sorting
    where = colPos=0
    languageField=sys_language_uid
  }
  wrap = <ul>|</ul>
  renderObj = TEXT
  renderObj {
    field = header  
    dataWrap= <li><a href="#c{field:uid}">|</a> </li>
  }
}
lib.navSub.10.1.ACT.after.cObject < temp.navSubAnchors
## navSub [End]



Das ganze gibt dann folgendes Menü aus:
> Seite 1
> Seite 2 (ACT)
>> Anker 1 von Seite 2
>> Anker 2 von Seite 2
>> ...
> Seite 3
> ...

Grüße, -dc
www.domaintechnik.at

ProfilWWW
Verfasst am: 02. 09. 2010 [08:01]
terrierace
Themenersteller
Dabei seit: 11.05.2010
Beiträge: 6
@shado vielen dank für den Lösungsansatz

Ich hab das Problem Montag dann doch endlich selbst gelöst.

Man muss die Bedingung:

TYPOSCRIPT
#[PIDinRootline = 18]
[globalVar = TSFE:id=18, TSFE:id=19]
    2 < menuZweiteEbeneAnker
[end]


außerhalb jeglicher Objektdefinition (in meinem fall von "hauptmenu"icon_wink.gif machen! icon_lol.gif
Meine Lösung:

TYPOSCRIPT
menuZweiteEbeneAnker = TMENU
menuZweiteEbeneAnker {
    wrap = <ul class="ZweiteEbene">|</ul>
    sectionIndex = true      
 
    NO = 1
    NO.stdWrap2.wrap = <li class="nav_subelem_anker"> | </li>
 
    CUR = 1
    CUR < .NO
    CUR.ATagParams = class="activ"
    CUR.stdWrap.wrap = |
 
    ACT = 1
    ACT = .CUR  
  }
 
hauptmenu = COA
hauptmenu {
  wrap = <ul> | </ul>
  entryLevel = 0
 
  5 < startseiteneintrag
 
# Seitenbaum
  10 = HMENU
  10 {
  entryLevel = 0
 
# erste Ebene
  1 < menuErsteEbene
 
# zweite Ebene
  2 < menuZweiteEbene
 
  }
}
 
 
[globalVar = TSFE:id = 18, TSFE:id = 19]
    hauptmenu.10.2 < menuZweiteEbeneAnker
[global]


Entscheidend ist die Verlegung der letzten 3 Zeilen aus der Objektdefinition heraus. banghead.gif
Kann man leider nirgendwo nachlesen. Also hab ich ein Untermenü mit Ankern und eins ohne definiert und dann die Bedingung gesetzt wann das Untermenü durch das Ankermenü ersetzt werden soll.

Trotzdem nochmal vielen Dank für deine Lösung.

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 02.09.2010 um 08:03.]

"Ein Tag an dem man nicht gelacht hat, ist ein verlorener Tag!" (frei nach Charlie Chaplin)
Profil
Verfasst am: 02. 09. 2010 [09:10]
igorshmigor
Dabei seit: 17.03.2006
Beiträge: 839
terrierace schrieb:

Kann man leider nirgendwo nachlesen.

Das stimmt nicht ganz, es ist hier beschrieben: http://typo3.org/documentation/document-library/core-documentation/doc_core_ts/4.2.0/view/1/2/#id4124614 weiter unten unter der Überschrift "Where to insert conditions in TypoScript?"

Gut dokummentiert und übersichtlich zusammengefasst ist die TypoScript Syntax auch in der TypoScript kurz & gut Referenz von O'Reilly. Sehr empfehlenswert!

ProfilWWW
Verfasst am: 03. 09. 2010 [08:08]
terrierace
Themenersteller
Dabei seit: 11.05.2010
Beiträge: 6
@igorshmigor danke für den Hinweis auf die Bücher.
Leider scheint sich keiner so wirklich dieser Problematik bewusst zu sein, da weder hier noch in anderen Foren das als Fehlerquelle erkannt wurde.
Allen interessierten Mitlesern trotzdem danke und viel Spass beim basteln. icon_biggrin.gif

"Ein Tag an dem man nicht gelacht hat, ist ein verlorener Tag!" (frei nach Charlie Chaplin)
Profil
Verfasst am: 03. 09. 2010 [08:48]
igorshmigor
Dabei seit: 17.03.2006
Beiträge: 839
terrierace schrieb:

Leider scheint sich keiner so wirklich dieser Problematik bewusst zu sein, [...]

Das würde ich so nicht sagen. Gib mal "conditions klammern" als Suchbegriff in diesem Forum ein. Es wurde schon in vielen Threads darauf hingewiesen.

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 03.09.2010 um 08:49.]
ProfilWWW
Verfasst am: 06. 09. 2010 [10:23]
terrierace
Themenersteller
Dabei seit: 11.05.2010
Beiträge: 6
Tja, jetzt wo ich weiss das es an den Klammern lag kann ich natürlich auch die richtigen Suchbegriffe eingeben.
Hinterher ist man immer schlauer icon_lol.gif
Hät ja auch sein können, dass mein eigentlicher Ansatz schon von der Logik her falsch war.
Meine Äußerung hat sich lediglich auf das Erkennen des Zusammenhangs zwischen meinem Code-Problem und dem Thema "conditions klammern" bezogen und dieses Erkennen hat nun mal weder hier im Forum noch in anderen funktioniert.

Ich danke jedenfalls allen die sich bemüht haben und die Lösung ist ja auch gefunden.
Was will man mehr!?

"Ein Tag an dem man nicht gelacht hat, ist ein verlorener Tag!" (frei nach Charlie Chaplin)
Profil