Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   TypoScript практикум (http://forum.typo3.ru/forumdisplay.php?f=27)
-   -   Убрать вывод подменю у конкретного пункта основного меню (http://forum.typo3.ru/showthread.php?t=5262)

-=UncleByte=- 30.11.2007 00:44

Убрать вывод подменю у конкретного пункта основного меню
 
Имеется двухуровневое стандартное выпадающее меню вида
Код:

lib.menu = HMENU
lib.menu.1 = TMENU
lib.menu.1 {
  maxItems = 5
  expAll = 1
  NO.linkWrap = <li class="tmenu">|</li>
  IFSUB = 1
  IFSUB {
  wrapItemAndSub = <li class="tmenu">|</li>
  linkWrap = |
  }
}

lib.menu.2 = TMENU
lib.menu.2 {
  maxItems = 5
  ...
  ...
  NO.linkWrap = <li> | </li>
}

Пока во втором уровне количество пунктов меню ограничено все хорошо и замечательно, но есть вероятность что в одном из разделов количество подразделов будет быстро расти и выпадающее меню будет ну очень громоздким.
В настоящий момент ограничиваю количество пунктов подменю при помощи maxItems = 5, но это может влиять и на другие разделы, да и хочется вообще не выводить подменю для этого раздела, а оставить только ссылку на него в первом уровне.
Пробовал использовать conditions, но не заработало.

Вопрос: возможно это реализовать при помощи TS и как?

Заранее признателен за ответы, куски кода, ссылки на сниппеты и указание направлений.

Andrey Grey 30.11.2007 14:29

special = List
special.value = 23,24,26,...43

Выведите только те, которые нужны. Остальные не появятся.

-=UncleByte=- 30.11.2007 16:10

Не сработает, потому что это раздел "новые проекты" и всякий раз будут добавляться новые подстраницы - из-за этого как раз и хочется убрать вывод втрого уровня выпадающего меню для этого раздела.

Andrey Grey 30.11.2007 16:28

вижу 2 варианта. простой и умный.

простой. использовать COA меню первого уровня не будут так часто добавялться, так что можно использовать что-то такое:
lib.menu = COA
lib.menu.10 = HTML
lib.menu.10.value(
<table width="100%" cellspacing="0" cellpadding="0"><tr><td width="160">
)
lib.menu.15 = HMENU
lib.menu.15{
special = list
special.value = 51
1 = TMENU
1 {
NO = 1
NO.linkWrap = <b> | </b>
}
}
lib.menu.20 = HTML
lib.menu.20.value(
</td><td width="270">
)
lib.menu.25 = HMENU
lib.menu.25 <lib.menu.15
lib.menu.25 {

special = list
special.value = 42

}
lib.menu.30 = HTML
lib.menu.30.value(
</td><td width="270">
)
lib.menu.35 = HMENU
lib.menu.35 <lib.menu.15
lib.menu.35 {
special = list
special.value = 39
}

lib.menu.40 = HTML
lib.menu.40.value(
</td><td width="160">
)
lib.menu.45 = HMENU
lib.menu.45 <lib.menu.15
lib.menu.45 {
special = list
special.value = 37
}
lib.menu.50 = HTML
lib.menu.50.value(
</td></tr></table>
)
задавая в для каждого первого уровня свои правила для вывода подменю. кстати, можно задать чтобы выводилось 5 пунктов последних добавленных в раздел.

второй вариант программерский, умный :)
использовать if. логика простоая. если pid =13, выводить однин кусок кода, в противном случае другой.

-=UncleByte=- 30.11.2007 18:06

Второй вариант нравится, думаю как прописать. Спасибо!


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

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