Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
11.01.2011, 14:42 | #1 |
Продвинутый
Регистрация: 23.10.2008
Сообщений: 30
|
HMENU как згенерировать title в подменю
У меня есть меню такого вида
пункт1 1.1 1.2 .... 1.5 пункт2 2.1 2.1.1 2.1.2 .... 2.1.5 2.2 2.2.1 2.2.2 .... 2.2.5 2.3 2.4 2.5 пункт3 ... пункт5 то есть все пункты(кроме второго, который имеет 3 уровня) имеют 2 уровня. И все 2 уровня являются раскрыты. Я описываю это меню так Код:
# Menu 1 cObject lib.left_menu = HMENU # First level menu-object, textual lib.left_menu.1 = TMENU lib.left_menu.1 { maxItems = 2 expAll = 1 # Normal state properties NO.allWrap = <tr><td bgcolor="#deddfb" height="20"><div class="left_menu_1"> | </div></td></tr> NO.stdWrap.htmlSpecialChars = 1 NO.doNotLinkIt = 1 # Enable active state and set properties: ACT = 1 ACT.doNotLinkIt = 1 ACT.stdWrap.htmlSpecialChars = 1 ACT.allWrap = <tr><td bgcolor="#deddfb" height="20"><div class="left_menu_1"> | </div></td></tr> ACT.doNotLinkIt = 1 } // Second level of left-menu lib.left_menu.2 = TMENU lib.left_menu.2 { wrap = <tr><td height="10'"></td></tr> | <tr><td height="10'"></td></tr> NO.allWrap = <tr><td class="white"><div class="left_menu_1_2"> | </div></td></tr> NO.stdWrap.htmlSpecialChars = 1 ACT=1 ACT.stdWrap.htmlSpecialChars = 1 ACT.allWrap = <tr><td class="white"><div class="left_menu_1_2_act"> | </div></td></tr> } теперь когда я захожу на любой из подпутктов пункта 2, то если в него есть пункты 3 уровня, то сразу после окончания вывода пункта 2 должен следовать вывод пунктов третьего уровня, то есть когда я заходжу в 2.1 то меню должно выглядеть так пункт1 1.1 1.2 .... 1.5 пункт2 2.1 2.2 .... 2.5 3 уровень пункта 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 пункт3 пункт4 пункт5 То есть оно по внешнему виду выглядит как обичный пункт 2 уровня. Для этого я выводжу сначала только меню из двух пунктов, потом выводжу подменю 3 уровня и тогда оставшуюся часть меню подменю 3 уровня Код:
lib.left_menu_kaf = HMENU lib.left_menu_kaf.entryLevel = 2 // Second level of left-menu lib.left_menu_kaf.1 = TMENU lib.left_menu_kaf.1 { wrap = <tr><td bgcolor="#deddfb" height="20"><div class="left_menu_1">3 уровень пункта {leveltitle:-2}</div></td></tr><tr><td height="10'"></td></tr> | <tr><td height="10'"></td></tr> NO.allWrap = <tr><td class="white"><div class="left_menu_1_2"> | </div></td></tr> NO.stdWrap.htmlSpecialChars = 1 ACT=1 ACT.stdWrap.htmlSpecialChars = 1 ACT.allWrap = <tr><td class="white"><div class="left_menu_1_2_act"> | </div></td></tr> } Единственное что мне так и не удаётся сделать это правильно згенерировать название "3 уровень пункта 2.1" или "3 уровень пункта 2.2". то есть в зависимости от того какой подпункт я вывожу, соответственно такое название должно генерироваться в строчке Код:
wrap = <tr><td bgcolor="#deddfb" height="20"><div class="left_menu_1">3 уровень пункта {leveltitle:-2}</div></td></tr><tr><td height="10'"></td></tr> | <tr><td height="10'"></td></tr> |
12.01.2011, 14:30 | #2 |
Продвинутый
Регистрация: 23.10.2008
Сообщений: 30
|
Решил проблему другим способом.
Для этого разбил меню 3 уровень пункта 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 на два меню шапки ("3 уровень пункта 2.1") и собственно меню самих пунктов меню шапки фактически то же самое что и меню самих пунктов, но в нём я вывожу требуемый мне текст с названием "3 уровень пункта 2.1", а само название пункта нет (NO.doNotShowLink=1), и ограничиваю вывод только одного пункта (maxItems=1) Код:
# Menu (появляется только тогда когда заходимо на подпункты пункта 2) #выводит "пункт 2 ..." lib.left_menu_kaf_tit = HMENU lib.left_menu_kaf_tit.entryLevel = 2 // Second level of left-menu lib.left_menu_kaf_tit.1 = TMENU lib.left_menu_kaf_tit.1 { maxItems=1 wrap = <tr><td bgcolor="#deddfb" height="20"> <div class="left_menu_1">пункт 2: | </div></td></tr> NO.allWrap.dataWrap = {leveltitle:-2} #чтобы не выводило название пункта 3 уровня NO.doNotShowLink=1 NO.stdWrap.htmlSpecialChars = 1 } # Menu (появляется только тогда когда заходимо на подпункты пункта 2) #пункты третьего уровня lib.left_menu_kaf = HMENU lib.left_menu_kaf.entryLevel = 2 // Second level of left-menu lib.left_menu_kaf.1 = TMENU lib.left_menu_kaf.1 { wrap = <tr><td height="10'"></td></tr> | <tr><td height="10'"></td></tr> NO.allWrap = <tr><td class="white"><div class="left_menu_1_2"> | </div></td></tr> NO.stdWrap.htmlSpecialChars = 1 ACT=1 ACT.stdWrap.htmlSpecialChars = 1 ACT.allWrap = <tr><td class="white"><div class="left_menu_1_2_act"> | </div></td></tr> } То есть промлема решилась. Работает как требуется. Но может можно это сделать как-то проще? |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как генерировать TITLE | Nikolay | TYPO3: SEO и статистика посещений | 2 | 20.08.2012 19:14 |
HMENU как згенерировать title в подменю | lyova | TypoScript практикум | 0 | 11.01.2011 14:37 |
как установить title из плагина в templavoile | (:) | Разработка расширений / TYPO3 extension development | 2 | 28.01.2008 18:55 |
страница подменю как главная страница основного меню | Vladimir_ | TypoScript практикум | 1 | 10.10.2006 16:12 |
Подзаголовок в title и как задавать meta-keywords | MVH | Общие вопросы | 1 | 19.05.2005 20:55 |