【问题标题】:TYPO3 uid specific navigationTYPO3 uid 特定导航
【发布时间】:2017-09-20 08:17:14
【问题描述】:

我必须为我的页面的一个 uid(和所有子 uid)编辑一个打字稿。

假设我有以下结构: 0

|-1

|-2

| |-20

| |-21

|-3

我想为 uid 1 和 3 使用相同的导航,但为 uid 2,20 和 21 使用不同的导航。

我已经有一个使用 HMENU 的 Typoscript 记录。

在我的打字稿中,我有一行 SUBNAVI.excludeUidList = 3,754,68,不幸的是,我认为 excludeUidList 会排除这些 uid 的导航,但在 uid 3 上我仍然可以看到菜单。

我的方法是创建第二个 HMENU 对象(类似于

【问题讨论】:

    标签: navigation typo3 typoscript


    【解决方案1】:

    excludeUidList 从生成的菜单中排除这些 uid。

    如果您想为这些页面(uid)生成另一个菜单,您需要使用其他机制。最简单的方法是 TS 条件,因此您也可以使用 .stdWrap.if

    TS-条件:
    + 快速
    - 缓存了两个版本的 TS

    .stdWrap.if:
    + 只有一个版本的 TS - 每次都渲染两个版本并且只显示一个部分

    [PIDinRootline = 2]
    // special HMENU for this pagetree
    [else]
    // HMENU for all other pages
    [global]
    

    如果大部分内容相同(您的问题在句子中间结束),您只能写出条件的差异。
    但请记住:TS 条件仅在顶层,绝不能在打字稿的大括号内!

    例如(为 pagetree 上第 2 页以外的所有菜单更改一个 css 类):

    temp.mainmenu = HMENU
    temp.mainmenu {
        1 = TMENU
        1 {
            NO = 1
            NO.wrap = <li class="red">|</li>
        }
        2 < .1
    }
    [PIDinRootline = 2]
    temp.mainmenu.1.No.wrap = <li class="blue">|</li>
    [global]
    

    【讨论】:

    • 哦,好吧,我没看到。废话。不管怎样,我想你知道我想问什么。我想在 uid 2,20 和 21 上添加一个类,而不是在 uid 1 和 3 上添加一个类。你说它只能在顶层,而不是在大括号内。所以我必须为我的情况制作一套全新的“大括号”才能只使用一个额外的小类?
    • 这进入了另一个方向。如果您想为每个菜单上的这些页面进行特殊渲染 (css),则条件是错误的方法。条件适用于显示菜单的页面其中。如果您想要 特殊范围的 uid 的条件,则只能使用 stdWrap.if 评估 当前 uid(或这些页面的任何其他字段)
    • 也许您应该编辑您的问题以完成文本。
    【解决方案2】:

    我已经解决了这个添加新模板来添加类的问题。另外,我添加了一个新的 css 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多