Autor Subiect: Meniu trei nivele  (Citit de 1214 ori)

checkerap

  • Novice
  • *
  • Mesaje postate: 8
Meniu trei nivele
« : Octombrie 17, 2007, 01:40:56 pm »
Vreau sa fac ceva de genul asta:



Nu vreau drop-down. Ar trebui ca daca vreun item din meniul 1 (cel rosu) are subpagini sa le afiseze in divul verde, iar daca dai click pe un item din cel verde si acesta are si el subpagini sa (le) afiseze (in) divul albastru.

Incerc sa fac asta cu templavoila. Merci de orice eventual ajutor.

lacisoft

  • Administrator
  • Novice
  • *****
  • Mesaje postate: 77
    • lacisoft.com/blog
Meniu trei nivele
« Răspuns #1 : Octombrie 17, 2007, 02:03:46 pm »
Cu templavoila nu stiu sa te ajut dar daca vrei sa faci un meniu normal cu 3 nivele se face cam asa

Pui cate un marker in fiecare din cele trei sectiuni in care vrei sa incluzi meniul si anume

In rosu pui ###MENU### in verde pui ###SUBMENU### iar in albastru pui ###SUBMENU2###

Dupa aceea creezi 3 templateuri cu meniurile:

Template1:
----------------------------------
temp.menu = HMENU
temp.menu {
1 = TMENU
1.expAll = 0
1.wrap = <ul id="menu">|</ul>
1 {
NO.allWrap = <li>|</li>
NO.noBlur = 1

ACT=1
ACT.allWrap = <li class="active">|</li>
ACT.noBlur = 1
}
}

Template2:
--------------------------------


temp.submenu = HMENU
temp.submenu.entryLevel = 1
temp.submenu {
1 = TMENU
1.expAll = 0
1.wrap = <ul id="submenu">|</ul>
1 {
NO.allWrap = <li>|</li>
NO.noBlur = 1

ACT=1
ACT.allWrap = <li class="active">|</li>
ACT.noBlur = 1

IFSUB = 1
IFSUB.allWrap = <li>|
IFSUB.noBlur = 1

ACTIFSUB = 1
ACTIFSUB.allWrap = <li class="active">|
ACTIFSUB.noBlur = 1
}
2 = TMENU
2.expAll = 0
2.wrap = <ul>|</ul>
2 {
NO.allWrap = <li>|</li>
NO.noBlur = 1

ACT=1
ACT.allWrap = <li class="active">|</li>
ACT.noBlur = 1
}
}

Template3:
--------------------------------------
temp.submenu2 = HMENU
temp.submenu2.entryLevel = 2
temp.submenu2 {
1 = TMENU
1.expAll = 0
1.wrap = <ul id="submenu">|</ul>
1 {
NO.allWrap = <li>|</li>
NO.noBlur = 1

ACT=1
ACT.allWrap = <li class="active">|</li>
ACT.noBlur = 1

IFSUB = 1
IFSUB.allWrap = <li>|
IFSUB.noBlur = 1

ACTIFSUB = 1
ACTIFSUB.allWrap = <li class="active">|
ACTIFSUB.noBlur = 1
}
2 = TMENU
2.expAll = 0
2.wrap = <ul>|</ul>
2 {
NO.allWrap = <li>|</li>
NO.noBlur = 1

ACT=1
ACT.allWrap = <li class="active">|</li>
ACT.noBlur = 1
}
}


Dupa care in templateul principal al paginii se pun meniurile cu ceva de genul

page.10.marks.MENU < temp.menu
page.10.marks.SUBMENU < temp.submenu
page.10.marks.SUBMENU2 < temp.submenu2

Trebuie incluse aceste meniuri si in sectiunea Include basis template


In mare cam asa, s-ar putea ca templaturile de meniuri sa le trebuiasca sa modifici dar asta depinde de nevoile tale.
Bodor László
------------
Certified TYPO3 Integrator
Arxia Group
Cluj Napoca

checkerap

  • Novice
  • *
  • Mesaje postate: 8
Meniu trei nivele
« Răspuns #2 : Octombrie 17, 2007, 02:28:41 pm »
Merci de raspuns. Ar trebui sa folosesc templa voila. Am reusit modificand ce mi-ai dat tu sa simulez prin CSS divurile verde si albastru, pozitionand absolut UL-urile cu submeniuri, dar acum (cand apar submeniurile pe pagina) imi acopera divul de content. Trebuie sa vad daca reusesc sa imping cumva divul de content in jos cand apar submeniurile.

checkerap

  • Novice
  • *
  • Mesaje postate: 8
Meniu trei nivele
« Răspuns #3 : Octombrie 18, 2007, 10:00:16 am »
Am reusit sa ii dau de cap si merge de minune. Uite codul:


lib.menu = HMENU
lib.menu.entryLevel < 0
lib.menu.1 = TMENU
lib.menu.1{
    # Normal state properties
    NO.allWrap = <li> | </li>
    NO.stdWrap.htmlSpecialChars = 1
   
    ACT.allWrap = <li> | </li>
    ACT.stdWrap.htmlSpecialChars = 1
}

lib.sublevel1 = HMENU
lib.sublevel1.entryLevel = 1
lib.sublevel1.1 = TMENU
lib.sublevel1.1.wrap = <ul class="sublevel1"> | </ul>
lib.sublevel1.1 {
    # Normal state properties
    NO.allWrap = <li> | </li>
    # Enable active state and set properties:
    ACT = 1
    ACT.allWrap = <li> | </li>
}

lib.sublevel2 = HMENU
lib.sublevel2.entryLevel = 2
lib.sublevel2.1 = TMENU
lib.sublevel2.1.wrap = <ul class="sublevel2"> | <ul>
lib.sublevel2.1 {
    # Normal state properties
    NO.allWrap = <li> | </li>
    # Enable active state and set properties:
    ACT = 1
    ACT.allWrap = <li> | </li>
}


Divurile apar daca exista un submeniu (o lista), altfel raman empty si nu apar pe ecran.

Maparea se face cu templavoila, meniurile putand aparea oriunde pe pagina.

cborz10

  • Novice
  • *
  • Mesaje postate: 51
    • Calin Borz
Meniu trei nivele
« Răspuns #4 : Octombrie 22, 2007, 07:11:56 am »
Nu inteleg de ce nu ati folosit de la inceput un meniu pe 3 nivele, si cu expAll=0 pe fiecare nivel, adica expandAll. Voi ati folosit 3 meniuri.


#################
# CONSTANTS
#################

### Main Menu
menuwrap = <ul>|</ul>
menuitem = <li class="level1">|</li>
menuitemactive = <li class="level1active">|</li>
menuitemifsub = <li class="level1ifsub">|</li>
menuitemactiveifsub = <li class="level1activeifsub">|</li>

### Submenu
menusubpages = <li class="level2">|</li>
menusubpagesactive = <li class="level2active">|</li>
menusubpagesifsub = <li class="level2ifsub">|</li>
menusubpagesactiveifsub = <li class="level2activeifsub">|</li>

### Subitem
menusubitem = <li class="level3">|</li>
menusubitemactive = <li class="level3active">|</li>

############
# SETUP
############

############
#Left Menu
############

temp.MenuLeft = HMENU
temp.MenuLeft.special = directory
temp.MenuLeft.special.value = 3
temp.MenuLeft.entryLevel = 1

 ### Left Menu - Subpages from the main menu.
 temp.MenuLeft.wrap = {$menuwrap}
 temp.MenuLeft.1 = TMENU
# temp.MenuLeft.1.target = left_menu_load
 temp.MenuLeft.1 {
  NO.linkWrap = {$menuitem}
  NO.ATagBeforeWrap = 0
  NO.stdWrap.field = nav_title // title
  #NO.stdWrap.case = upper
  RO <  .NO
  RO = 1
  RO.linkWrap = {$menuitemactive}
  RO.wrap =  xxx|xxx
  ACT < .RO
  ACT = 1
  ACT.linkWrap = {$menuitemactive}
 
  IFSUB < .RO
  IFSUB = 1
  IFSUB.linkWrap = {$menuitemifsub}
 
  ACTIFSUB < .RO
  ACTIFSUB = 1
  ACTIFSUB.linkWrap = {$menuitemactiveifsub}
 }

 ### Left Menu - Subpages from the left submenu.
 temp.MenuLeft.2 = TMENU
# temp.MenuLeft.2.target = left_menu_load
 temp.MenuLeft.2 {
  NO.linkWrap = {$menusubpages}
  NO.ATagBeforeWrap = 0
  NO.stdWrap.field = nav_title // title
  #NO.stdWrap.case = upper
  ACT < .RO
  ACT = 1
  ACT.linkWrap = {$menusubpagesactive}
  RO < .NO
  RO = 1
  RO.wrap = {$menusubpagesactive}
 
  IFSUB < .RO
  IFSUB = 1
  IFSUB.linkWrap = {$menusubpagesifsub}
 
  ACTIFSUB < .RO
  ACTIFSUB = 1
  ACTIFSUB.linkWrap = {$menusubpagesactiveifsub}
 }

 ### Left Menu - Subitems from the subpages.
 
 temp.MenuLeft.3 = TMENU
# temp.MenuLeft.3.target = left_menu_load
 temp.MenuLeft.3 {
  NO.linkWrap = {$menusubitem}
  NO.ATagBeforeWrap = 0
  NO.stdWrap.field = subtitle // title
  ACT < .RO
  ACT = 1
  ACT.linkWrap = {$menusubitemactive}
  RO <  .NO
  RO = 1
  RO.wrap = {$menusubitemactive}
}
Calin Borz
Certified TYPO3 Integrator
Project Manager Typo3 Team REEA ROMANIA
http://typo3.reea.net/ - Code repository
http://www.reea.net/ - Company page

email: calin@reea.net

YM: calin_borz
Skype: calin_borz1969

http://www.borz.ro