Temat z wieloma odpowiedziami

Problem z menu


Autor Wiadomość
Napisane: 18.01.2010 [14:36]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
Pokaż CAŁĄ deklarację HMENU (jeśli składasz z kilku cObjectów to pozostałe również) i zrób screenshot'a drzewa


Sesja wygasła, zaloguj się, żeby się wylogować.

T3CI
Certified Level 2 TYPO3 Night Crew Member.
KO System enthusiast
Napisane: 18.01.2010 [17:03]
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
ts - pełny aktualnie zaimplementowany

TYPOSCRIPT
temp.main_menu = COA
temp.main_menu {
  # ---------------------------------------
  # Typoscript implementation of the DHTML
  # menu found at http://www.brainjar.com
  # ---------------------------------------
  wrap = <ul class="navi-main navi-long">|</ul>
  10 = HMENU
  #10.entryLevel = 0
  10 {
    entryLevel = 0
    special = list
    special.value = 1,2,11,15,31,19
  }
  10.1 = TMENU
  10.1 {
 
#wrap = <div class="menuBar" style="width:80%;">|</div>
    #NO.ATagParams = class="first" |*||*|
 
    NO.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
#ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|  
#ACT = 1
    IFSUB = 1
    IFSUB.doNotLinkIt = 0
    IFSUB.subst_elementUid = 1
    IFSUB.allWrap = <li class="first">|</li>|*|<li>|</li>|*|
    IFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"
 
    ACTIFSUB = 1
    ACTIFSUB.doNotLinkIt = 0
    ACTIFSUB.subst_elementUid = 1
    ACTIFSUB.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|
    ACTIFSUB.ATagParams = class="menuButton" onmouseover="buttonMouseover(event, 'menu{elementUid}');"  
  }
 
  20 < .10
  20.1 >
  20.1 = TMENU
  20.1 {
    expAll = 1
    NO.doNotLinkIt = 1
    NO.doNotShowLink = 1
    IFSUB < .NO
    IFSUB = 1
    IFSUB.subst_elementUid = 1
    IFSUB.allWrap = <div id="menu{elementUid}" class="menu" onmouseover="menuMouseover(event)">|
    IFSUB.wrapItemAndSub = |</div>
  }
  20.2 = TMENU
  20.2 {
    NO.ATagParams = class="menuItem"
    IFSUB = 1
    IFSUB.doNotLinkIt = 1
    IFSUB.subst_elementUid = 1
    IFSUB.allWrap = <a class="menuItem" href="#" onclick="return false;" onmouseover="menuItemMouseover(event, 'menu{elementUid}');"><span class="menuItemText">|</span><span class="menuItemArrow"></span></a>
    SPC = 1
    SPC.doNotLinkIt = 1
    SPC.doNotShowLink = 1
    SPC.allWrap = <div class="menuItemSep"></div>
  }
 
  30 < .10
  30.1 >
  30.1 = TMENU
  30.1 {
    expAll = 1
    NO.doNotLinkIt = 1
    NO.doNotShowLink = 1
  }
  30.2 < .20.1
  30.3 < .20.2
 
  40 < .10
  40.1 >
  40.1 < .30.1
  40.2 < .30.1
  40.3 < .20.1
  40.4 < .20.2
 
  50 < .10
  50.1 >
  50.1 < .30.1
  50.2 < .30.1
  50.3 < .30.1
  50.4 < .20.1
  50.5 < .20.2
}




Certified Level 2 TYPO3 Night Crew Member.
Załącznik

drzewo.JPG (Typ pliku: image/jpeg, Rozmiar: 20.11 kilobajty) — 16 pobrania
Napisane: 18.01.2010 [19:44]
biesior
admin
zarejestrowany: 20.03.2008
Posty: 1338
TYPOSCRIPT
special.value = 1,2,11,15,31,19

No i masz zagadkę rozwiązaną przecież strony 2,11,15,31 i 19 są PODSTRONAMI strony 1, zatem skoro strona uid:1 znajduje się w menu i jest uwzględniona przy stanach NO/ACT/CUR etc to odwiedzenie jakiejkolwiek strony w serwisie ustawi tę pozycję na ACT (lub ACTIFSUB).

W tym modelu drzewa powinieneś NIE uwzględniać strony 1 w menu, zamiast tego utworzyć skrót (w twoim drzewie można to zrobić ze stroną uid:45 na przykład) a następnie wkomponować ten jeden link (i tak nie będzie rozwijany) jako indeks 5 obiektu temp.main_menu np tak:
TYPOSCRIPT
5 = HMENU
5.special=list
5.special.value = 45
5.NO.allWrap = <li class="first">|</li>


jednakże skoro ta strona jest skrótem musisz wymusić stan ACT nie w zwykłym menu, ale za pomocą conditions, dlatego już PO deklaracji całego temp.main_menu musisz dodać taki warunek, żeby aktywować pozycję menu tylko gdy faktycznie znajdujesz się na stronie głównej:

TYPOSCRIPT
[globalVar = TSFE:id = 1]
temp.main_menu.5.NO.allWrap = <li class="first active">|</li>
// To nie jest błąd, masz nadpisać stan NO a nie ACT,
// choć z logicznego punktu widzenia dopisanie w warunku całego ACT też powinno zadziałać
[global]




Sesja wygasła, zaloguj się, żeby się wylogować.

T3CI
Certified Level 2 TYPO3 Night Crew Member.
KO System enthusiast
Napisane: 19.01.2010 [11:22]
dpacholczyk
Twórca tematu
zarejestrowany: 17.09.2008
Posty: 1006
Więc tak.

Twoje rozwiązanie nie jest do końca dobre ALE naprowadziło mnie na prawidłowe.

Skrótem stała się najwyższa strona w drzewie głównym, które prowadzi do strony głównej z contentem. (na screenie uid=1 to skrót prowadzący do uid=45)

W mojej deklaracji listy 1 zamieniłem na 45.

i dorzuciłem

TYPOSCRIPT
ACT.allWrap = <li class="first active">|</li>|*|<li class="active">|</li>|*|  
ACT = 1


i śmiga jak ta lala icon_smile.gif

dzięki wielkie za pomoc

Certified Level 2 TYPO3 Night Crew Member.