Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
19.04.2006, 11:16 | #1 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
и снова вопрос по меню.
Есть сайт, с древовидной структурой страниц.
Уровень1 Уровень2 Уровень3 Уровень4 Каким образом сделать так, чтобы в меню пункты показывались в зависимости от того, на каком уровне мы находимся. Если мы выбрали страницу на уровне 1, то в меню надо показать все страницы с уровня 2, для который выбранная страницы - родитель. То же самое для 2 уровня, а для 3-го и 4-го нужно чтобы в меню показывались страницы из 2 уровня. Немного путано получается, но так нужно сделать. Вопрос в том, как определить на каком уровне мы в настоящий момент находимся и как сделать условие в коде в зависимости от жтого уровня. В typo3_by_example.pdf видел что можно использовать if в конструкции вроде этой "subparts.LEFTNAV.special.value.data = field:uid", но не понял как это работает. Сейчас код, показывает содержимое только 3 уровня меню: subparts.LEFTNAV= HMENU subparts.LEFTNAV.special = directory subparts.LEFTNAV.entryLevel = 2 subparts.LEFTNAV.special.value.data = field:uid subparts.LEFTNAV.1 = TMENU subparts.LEFTNAV.1{ subst_elementUid = 1 wrap = <table border="0" width="150" cellspacing="0" cellpadding="0"> |</table> NO{ subst_elementUid = 1 allWrap = <tr><td width="40" class="leftnav_f1"><img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav1">|</td></tr> |*| <tr><td width="40" class="leftnav_f"><img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav">|</td></tr> |*| <tr><td width="40" class="leftnav_f"> <img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav2">|</td></tr> <tr><td class="leftnav_f2"><img src="i/c3-0.gif" border="0"></td><td class="leftnav2e" width="110"><img src="i/c3-1.gif" border="0"></td></tr> } ACT = 1 ACT{ subst_elementUid = 1 allWrap = <tr><td width="40" class="leftnav_f1"><img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav1_act">|</td></tr> |*| <tr><td width="40" class="leftnav_f"><img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav_act">|</td></tr> |*| <tr><td width="40" class="leftnav_f"> <img src="i/p/i{elementUid}.gif" border="0"></td><td width="110" class="leftnav2_act">|</td></tr> <tr><td class="leftnav_f2"><img src="i/c3-0.gif" border="0"></td><td class="leftnav2e" width="110"><img src="i/c3-1.gif" border="0"></td></tr> } } |
19.04.2006, 13:36 | #2 | |
Senior Member
|
Цитата:
NOTE: Don't set .entryLevel for a HMENU when using .special property! Also be aware that this selects pages for the first level in the menu. This will generate a menu of all pages with pid = 35 and pid = 56. 20 = HMENU 20.special = directory 20.special.value = 35, 56 If .value is not set, the default pid is the current page. Т.е. .entryLevel убрать, .special = directory оставить, а special.value не указывать. Тогда меню будет строиться с текущего уровня. subparts.LEFTNAV= HMENU subparts.LEFTNAV.special = directory subparts.LEFTNAV.1 = TMENU Ну а чтоб было видно нижестоящие уровни их надо прописать subparts.LEFTNAV.2, subparts.LEFTNAV.3, ... |
|
19.04.2006, 14:56 | #3 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Спасибо за ответ.
Из какой доки цитата? А в одном меню можно сделать выбор строить меню из вышестоящих пунктов или из нижестоящих? Или обязательно придется делать subparts.LEFTNAV.1 subparts.LEFTNAV.2 subparts.LEFTNAV.3 |
19.04.2006, 19:02 | #4 | ||
Senior Member
|
Цитата:
Цитата:
subparts.LEFTNAV.2 < subparts.LEFTNAV.1 subparts.LEFTNAV.3 = TMENU subparts.LEFTNAV.3 < subparts.LEFTNAV.1 |
||
20.04.2006, 11:48 | #5 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Спасибо, попробую.
А откуда можно скачать файлик tsref.chm? |
20.04.2006, 12:04 | #6 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
|
20.04.2006, 14:55 | #7 |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Не догоняю смысла
Структура сайта примерно такая: Уровень1 |-Уровень21 |-Уровень22 |-Уровень23 |-Уровень31 |-Уровень32 |-Уровень33 |-Уровень41 |-Уровень42 |-Уровень43 Есть меню, которое будет строиться с текущего уровня на один уровень ниже: subparts.LEFTNAV= HMENU subparts.LEFTNAV.special = directory subparts.LEFTNAV.1 = TMENU subparts.LEFTNAV.1{ } Это замечательно работает! То есть если мы находимся в пункте Уровень1 в меню будут Уровень21, Уровень22, Уровень23. Если в пункте Уровень33 в меню будут Уровень41, Уровень42, Уровень43. Если в пункте Уровень43 меню не будет вообще. Нужно как-то сделать, чтобы при нахождении в пункте Уровень33 в меню были пункты Уровень21, Уровень22, Уровень23. То есть отображались вышестоящие на 1 уровень пункты меню. И те же самые пункты Уровень21, Уровень22, Уровень23 при нахождении в пункте Уровень43. То есть отображались вышестоящие на 2 уровня пункты меню. В этой связи не понимаю как может помочь конструкция вида: subparts.LEFTNAV.2 = TMENU subparts.LEFTNAV.2 < subparts.LEFTNAV.1 subparts.LEFTNAV.3 = TMENU subparts.LEFTNAV.3 < subparts.LEFTNAV.1 Хотя это видимо уровень FAQ'a, но тем не менее... |
21.04.2006, 16:04 | #8 |
Senior Member
|
Ну тогда надо сначала определить что считать уровнем :-)
Я полагал так: Уровень1 |-Уровень21 |-Уровень22 |-Уровень23 |-|-Уровень31 |-|-Уровень32 |-|-Уровень33 |-|-|-Уровень41 |-|-|-Уровень42 |-|-|-Уровень43 ну и уровень FAQ'a конечно... ;-) |
22.04.2006, 13:11 | #9 | |
Senior Member
Регистрация: 15.02.2006
Адрес: Петербург
Сообщений: 462
|
Цитата:
Моя картинка уровней просто испортилась при вставке в в пост. И все равно как при такой структуре реализовать следующее: "Нужно как-то сделать, чтобы при нахождении в пункте Уровень33 в меню были пункты Уровень21, Уровень22, Уровень23. То есть отображались вышестоящие на 1 уровень пункты меню. И те же самые пункты Уровень21, Уровень22, Уровень23 при нахождении в пункте Уровень43. "??? То есть отображались вышестоящие на 2 уровня пункты меню. |
|
25.04.2006, 15:08 | #10 |
Senior Member
|
Тогда для пятиуровневого ;-) меню:
[treeLevel = 2] subparts.LEFTNAV.entryLevel = 1 [treeLevel = 3] subparts.LEFTNAV.entryLevel = 2 [treeLevel = 4] subparts.LEFTNAV.entryLevel = 3 [treeLevel = 5] subparts.LEFTNAV.entryLevel = 4 [else] subparts.LEFTNAV.entryLevel = 0 [global] |