在 Typo3 中如何将菜单分成多列?
How do you split a menu into multiple columns in Typo3?
我在 Typo3 中有一个节点,其中有很多页面,我想将其显示为 4 列的菜单。列的排序应该是从左到右然后环绕。
像这样:
Col1 Col2 Col3 Col4
A B C D
E F G
在我的解决方案中(在 Typo3 LTS 6.2 中完成,但也应该适用于所有当前版本),我使用这种方法来实现列。请注意,格式化是在考虑 bootstrap 的情况下完成的:
# Menu with 4 columns
lib.columnMenu = COA
lib.columnMenu {
10.wrap = <div class="col-sm-3"><ul> | </ul></div>
10 = HMENU
10.special = directory
10.special.value = INSERT YOUR PAGE ID HERE
10.1 = TMENU
10.1.NO{
allWrap=<li>|</li>
stdWrap.if.isFalse.prioriCalc=1
stdWrap.if.isFalse.cObject=TEXT
stdWrap.if.isFalse.cObject.insertData=1
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4
allWrap.if.isFalse.cObject=TEXT
allWrap.if.isFalse.prioriCalc=1
allWrap.if.isFalse.cObject.insertData=1
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4
}
20 < .10
20.wrap = <div class="col-sm-3"><ul> | </ul></div>
20.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4
}
30 < .10
30.wrap = <div class="col-sm-3"><ul> | </ul></div>
30.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4
}
40 < .10
40.wrap = <div class="col-sm-3"><ul> | </ul></div>
40.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4
}
}
}
# End Menu
然后您只需将菜单包含在某些流动模板部分中,如下所示:
<div class="row mb-20">
<f:cObject typoscriptObjectPath="lib.columnMenu"/>
</div>
我在 Typo3 中有一个节点,其中有很多页面,我想将其显示为 4 列的菜单。列的排序应该是从左到右然后环绕。
像这样:
Col1 Col2 Col3 Col4
A B C D
E F G
在我的解决方案中(在 Typo3 LTS 6.2 中完成,但也应该适用于所有当前版本),我使用这种方法来实现列。请注意,格式化是在考虑 bootstrap 的情况下完成的:
# Menu with 4 columns
lib.columnMenu = COA
lib.columnMenu {
10.wrap = <div class="col-sm-3"><ul> | </ul></div>
10 = HMENU
10.special = directory
10.special.value = INSERT YOUR PAGE ID HERE
10.1 = TMENU
10.1.NO{
allWrap=<li>|</li>
stdWrap.if.isFalse.prioriCalc=1
stdWrap.if.isFalse.cObject=TEXT
stdWrap.if.isFalse.cObject.insertData=1
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4
allWrap.if.isFalse.cObject=TEXT
allWrap.if.isFalse.prioriCalc=1
allWrap.if.isFalse.cObject.insertData=1
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4
}
20 < .10
20.wrap = <div class="col-sm-3"><ul> | </ul></div>
20.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4
}
30 < .10
30.wrap = <div class="col-sm-3"><ul> | </ul></div>
30.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4
}
40 < .10
40.wrap = <div class="col-sm-3"><ul> | </ul></div>
40.1.NO{
allWrap = <li>|</li>
stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4
allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4
}
}
}
# End Menu
然后您只需将菜单包含在某些流动模板部分中,如下所示:
<div class="row mb-20">
<f:cObject typoscriptObjectPath="lib.columnMenu"/>
</div>