Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > TypoScript практикум

Ответ
 
Опции темы Опции просмотра
Старый 11.01.2011, 14:42   #1
lyova
Продвинутый
 
Регистрация: 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>
но оно не работает. Как мне вставить сюда допустим {leveltitle:-2}.
lyova вне форума   Ответить с цитированием
Старый 12.01.2011, 14:30   #2
lyova
Продвинутый
 
Регистрация: 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:&nbsp;  | </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>
       }
В итоге у меня меню состоит как бы из 4 меню.
То есть промлема решилась. Работает как требуется.
Но может можно это сделать как-то проще?
lyova вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как генерировать 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


Часовой пояс GMT +4, время: 14:18.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория