私はTYPO3の下で次の問題を抱えています:
メニューのレベル0にサブメニューがある場合は、サブメニューの最初の子にリンクしたいと思います。
たとえば、製品をクリックすると、製品ページではなく、ドライバーが表示されます。このページは空である必要があります。
-home (id=1)
-products (id=2)
--screwdrivers (id=3)
--cables (id=4)
-about (id=5)
-impress (id=6)
Typoscriptによって作成されたシンプルな3レベルのメニューがあります。
temp.menu_1 = HMENU
temp.menu_1 {
1 = TMENU
1 {
#expAll =1
wrap = <ul id="nav1">|</ul>
noBlur = 1
NO = 1
NO {
wrapItemAndSub = <li>|</li>
stdWrap.htmlSpecialChars = 1
ATagTitle.field = title
}
ACT <.NO
ACT {
wrapItemAndSub = <li id="nav1act">|</li>
}
}
2 < .1
2 {
wrap = <ul id="nav2">|</ul>
ACT.wrapItemAndSub = <li id="nav2act">|</li>
}
3 < .2
3 {
wrap = <ul id="nav3">|</ul>
ACT.wrapItemAndSub = <li id="nav3act">|</li>
}
}
私はすでにidを動的に置き換えるいくつかの素晴らしいTyposcriptを見つけましたが、それを組み合わせる方法、またはもっと簡単な解決策があるかどうかはわかりません。
ここから取られたサンプル:(ドイツ語のみ) http://www.auxnet.de/blog/blog-post/2011/01/15/typo3-einzelnen-menue-link-durch-anderen-link-ersetzen.html
タイプミス:メニューのIDを置き換える:
lib.myFooterNav = HMENU
lib.myFooterNav.special = directory
lib.myFooterNav.special.value = 44
lib.myFooterNav.wrap = <div class="hlist"><ul>|</ul></div>
lib.myFooterNav.1 = TMENU
lib.myFooterNav.1 {
NO.allWrap = <li>|</li>
NO.doNotLinkIt.stdWrap.override = 1
NO.doNotLinkIt.stdWrap.if {
equals.field = uid
value = 48
}
NO.before.stdWrap.cObject = TEXT
NO.before.stdWrap.cObject {
data = getIndpEnv:REQUEST_URI
wrap = !!<=|?===>
}
NO.before.stdWrap.if {
equals.field = uid
value = 48
}
NO.after = </a>
NO.after.stdWrap.if {
equals.field = uid
value = 48
}
ACT.allWrap = <li>|</li>
ACT.ATagParams = class="active"
ACT = 1
}