0

我正在尝试将每个第三项包装在使用 TypoScript 生成的菜单中。

这是我的菜单:

tt_content.menu.20.4 >
tt_content.menu.20.4 < tt_content.menu.20.1
tt_content.menu.20.4.stdWrap.outerWrap = <div class="my-menu">|</div>
tt_content.menu.20.4.1.wrap = <ul>|</ul>
tt_content.menu.20.4.1.NO {
    doNotLinkIt = 1
    stdWrap.htmlSpecialChars = 0
    stdWrap.cObject = COA
    stdWrap.cObject {
        # title
        10 = TEXT
        10 {
            field = title
            typolink.parameter.field = uid
            typolink.ATagParams = class="more"
        }

        # abstract
        20 = TEXT
        20 {
            field = abstract
            htmlSpecialChars = 1
            wrap = <span>|</span>
        }
    }
}

通过如何对每个菜单项应用不同的包装?我知道如何包装每件不同的物品,有没有办法将三件物品包装在一起?并且当有超过 3 % x = 0 个项目时,例如 14,最后一个开始标签必须用最后一个项目关闭。

电流输出:

<ul class="csc-menu csc-menu-1">
    <li>
        <a href="index.php?id=1">Page 1</a>
    </li>
    <li>
        <a href="index.php?id=2">Page 2</a>
    </li>
    <li>
        <a href="index.php?id=3">Page 3</a>
    </li>
    <li>
        <a href="index.php?id=4">Page 4</a>
    </li>
    <li>
        <a href="index.php?id=5">Page 5</a>
    </li>
    <li>
        <a href="index.php?id=6">Page 6</a>
    </li>
    <li>
        <a href="index.php?id=7">Page 7</a>
    </li>
    <li>
        <a href="index.php?id=8">Page 8</a>
    </li>
    <li>
        <a href="index.php?id=9">Page 9</a>
    </li>
</ul>

想要的输出,像这样:

<div class="pack">
    <a href="index.php?id=1">Page 1</a>
    <a href="index.php?id=2">Page 2</a>
    <a href="index.php?id=3">Page 3</a>
</div>
<div class="pack">
    <a href="index.php?id=4">Page 4</a>
    <a href="index.php?id=5">Page 5</a>
    <a href="index.php?id=6">Page 6</a>
</div>
<div class="pack">
    <a href="index.php?id=7">Page 7</a>
    <a href="index.php?id=8">Page 8</a>
    <a href="index.php?id=9">Page 9</a>
</div>
<div class="pack">
    <a href="index.php?id=10">Page 10</a>
    <a href="index.php?id=11">Page 11</a>
</div>
4

2 回答 2

4

基本上你问了2个问题。

但对于两者,您都可以使用 optionSplit。[1.]

第一个:“包装每 3 个项目”

您的代码将如下所示:

tt_content.menu.20.4.1.NO.allWrap = |*| <ul>|</ul> || <ul>|</ul> || <ul class="third">|</ul> |*|

第二:“有没有办法将三个项目包装在一起”

您的代码将如下所示:

tt_content.menu.20.4.1.NO.allWrap = |*| <div class="threepack"> <ul>|</ul> || <ul>|</ul> || <ul>|</ul> </div> |*|

optionSplit 在这些情况下如何工作:

  • 您没有第一部分和最后一部分,因此中间部分循环遍历所有项目。
  • 中间部分由三个循环的子部分组成。

希望有帮助。

PS:不要忘记接受答案;-)

链接:

  1. http://wiki.typo3.org/TSref/optionSplit
于 2013-01-24T08:28:22.103 回答
2

下面的排版可能对您有所帮助(页面菜单将3个页面链接组合在一起,您需要根据您的要求进行修改。):

page.234 = COA
page.234{
wrap = <ul> |</ul>
10 = HMENU
10.1 = TMENU
10.special = directory
10.special.value = 1
10.1 {
wrap = <li><ul>|</ul></li>
begin = 1
maxItems = 3
NO {
   allWrap = <li> |</li>
}
}
20 < .10
20.1.begin = 6
30 < .10
30.1.begin = 9
# etc. etc.
}
于 2013-01-23T17:40:09.723 回答