繁体   English   中英

如何在TYPO3中拆分和包装HMENU项目?

[英]How can I split and wrap HMENU items in TYPO3?

我正在尝试使用TypoScript创建自定义菜单,我有8个菜单项,并且我想删除前2个菜单项的CSS类“ dropdown_1column和dropdown_1column”,但我不知道如何?

我已经体验过Typoscript onSplit函数可能存在的问题,这段代码有什么问题?

 wrap = <ul class="levels">|</ul>|| <ul class="levels">|</ul>|*|<div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div>||<ul class="levels">|</ul>

前两项应包装在:

 <ul class="levels">|</ul>

其余物品应包装在:

 <div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div>

这是我的html输出:

<li>
   <a class="drop" href="blblbl/">item</a>
      <div class="dropdown_1column">
          <div class="col_1 firstcolumn">
            <ul class="levels">
               <li>
               <li>
               <li>
            </ul>
      </div>
 </li>

而且一定是这样

<li>
   <a class="drop" href="blblbl/">item</a>
      <div>
          <div>
            <ul class="levels">
               <li>
               <li>
               <li>
            </ul>
      </div>
 </li>

谢谢你的帮助。

您可以使用optionSplit来根据项目的位置设置格式,也可以将菜单分为两部分,并使用begin和maxItems定义要使用的项目范围。

后者不太复杂,但应该可以为您提供良好的服务:

10 = COA
10 {
  10 = HMENU
  10 {
    # your menu definition here
    maxItems = 2
    wrap = <ul class="levels">|</ul>
  }
  20 = HMENU
  20 {
    # your menu definition here
    begin = 3
    wrap = <div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div>
  }
}

您的选项拆分语法错误。 它必须是first |*| middle |*| last first |*| middle |*| last first |*| middle |*| last 元素从头开始归档。 您可以使用双管道( || )进一步拆分每个属性。

first || second |*| middle |*| second last || last

因此应该

wrap = <ul class="levels">|</ul>|| <ul class="levels">|</ul>|*| <div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div> |*|  <div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div>

具有以下格式

first || second |*| middle |*| last

而中间部分和最后部分共享相同的代码

我会说没有人在这里读过TSref :)

您需要什么:

根据optionSplit 1的第4条规则:

“如果没有最后一部分,则重复中间值”

因此,最优雅,最短的optionSplit语法为:

first || second |*| the_rest

在Typoscript代码中,它将类似于:

<ul class="levels">|</ul> || <ul class="levels">|</ul> |*| <div class="dropdown_1column"><div class="col_1 firstcolumn"><ul class="levels">|</ul></div></div>

你有什么:

您编写的optionSplit具有如下语法:

F || S |*| M1 || M2

产生如下菜单:

F S M1 M2 M1 M2 M1 M2....

因为中间部分(最后一个,或者如果没有)将在第一部分之后连续重复。

有关optionSplit的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM