0

我正在尝试使用 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>

谢谢你的帮助。

4

3 回答 3

0

您可以使用 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>
  }
}
于 2013-10-24T20:40:28.203 回答
0

您的选项拆分语法错误。一定是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

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

于 2013-10-25T12:34:15.717 回答
0

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

你需要什么:

根据 optionSplit 1的第四条规则:

“如果最后一部分不存在,则重复中间值”

所以最优雅和最短的 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的更多信息。

于 2013-10-27T23:35:49.367 回答