|  | Форум больше не используется. Присоединяйтесь к каналу #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] | 
|   |   |