-->

如何使用选项分割控制TYPO3菜单属性?(How to use option split to co

2019-06-24 03:02发布

我试图解决TYPO3设计问题的实现。 基本上我必须实现一个标签式菜单(仅在活动状态标签)这是从目录中生成的,但每个活动(标签)菜单中必须有一个不同的背景色(匹配的标签盒体)。 我选择了最初使用TMENU但被介绍给前面的路optionsplit功能来实现这一点,但我不能想办法这个使用TMENU所以我目前正在与GMENU实验实现的,但我没有得到正确的结果。 下面是我当前的代码,给了我空白的空间。 我与复制标签图像和集中的图像中的文本,但是在使用optionsplit复制文件试验。

temp.navmenu1 = HMENU
special = directory
special.value = {$idMenu}
entryLevel = 1
temp.navmenu1.1 = GMENU

temp.navmenu1.1 {
  NO = 1
  NO{
  NO.Wrap = <ul style="display: inline; "> | </ul>
  backColor = #d9d9d9
    10 = TEXT
    10.text.field = title
    10.offset = 0,5
    10.align = center
    10.niceText = 1
  }
  ACT < .NO
  ACT{
      XY = [4.w],[4.h]

      4 = IMAGE
      4.file = {$hmtab}|*|{$midtab}|*|{$endtab}
    }

}

# Temp items aren't rendered, so let's copy it into a TSOP
tv.navmenu1 < temp.navmenu1

page = PAGE
page.typeNum = 0
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page

Answer 1:

我不认为一个新的网站应该使用GMENU了。 相反,你应该使用TMENU与CSS。

这是应该让你开始,一个基本的例子:

10 = HMENU
10 {
  special = directory
    # start with pid 3
  special.value = 3
  1 = TMENU
  1 {
    expAll = 1
    wrap = <ul>|</ul>
    NO = 1
    NO {
      wrapItemAndSub = <li>|</li>
      ATagTitle = abstract // description // title
    }
    ACT < .NO
    ACT.wrapItemAndSub = <li class="active">|</li>
    CUR < .NO
    CUR.wrapItemAndSub = <li class="current">|</li>
  }
  2 < .1
  3 < .1
  4 < .1
  4.wrap = <ul class="level-4">|</li>
}

当然,你现在可以使用option splitwrapItemAndSub像这样: wrapItemAndSub = <li class="first">|</li> |*| <li class="normal">|</li> |*| <li class="last">|</li> wrapItemAndSub = <li class="first">|</li> |*| <li class="normal">|</li> |*| <li class="last">|</li>

在随后只是正常的CSS休息。



Answer 2:

如果你的问题是要对不同类的属性相同级别包装不同的子menues,然后看看在TMENU对象的submenuObjSuffixes财产。

虽然这是不可能保鲜膜使用optionsplit(只是因为包装只执行一次),这是非常可能获得使用submenuObjSuffixes期望的结果。

下面是一个例子:

1 = TMENU
1 {
    wrap = <ul>|</ul>
    submenuObjSuffixes =  |*| b |*| c

    NO = 1
    NO {
        wrapItemAndSub = <li>|</li>
    }
}

2 < .1
2.wrap = <ul class="firstItem">|</ul>
2b < .1
2b.wrap = <ul class="middleItems">|</ul>
2c < .1
2c.wrap = <ul class="lastItem">|</ul>

3 < .2
3b < .2b
3c < .2c
4 < .2
4b < .2b
4c < .2c

这将包裹第一第二级菜单带班“与firstItem”,用“lastItem”,并以一流的“middleItems”所有inbetweens最后2级菜单。

请您理解,后缀会附加到所有后续的菜单级。 所以,如果你使用1级submenuObjSuffixes它不仅会影响到2级,而且级别3,4,......,你必须定义相应的这些层面的选项太多,否则将不会被渲染。



文章来源: How to use option split to control typo3 menu properties?