基于 pid 的 HMENU 中的 TYPO3 CASE

TYPO3 CASE within HMENU based on pid

我正在尝试根据父 ID 使我的 HMENU 的第二级有所不同。

具体来说,我需要在pid为特定数字时,在TMENU中添加COA

我想我应该能够使用 CASE 以某种方式做到这一点,但我还没有找到正确的设置来让它正常工作。

这是我的错误代码,它显示了我想做的事情:

lib.mymenu = HMENU
lib.mymenu { 
  1 = TMENU
  1 {
    ...
  }
  2 = CASE
  2 {
    key.field = pid
    default = TMENU
    default {
      stdWrap.wrap = <ul>|</ul>
      expAll = 1
      NO = 1
      NO.wrapItemAndSub = <li>|</li>
    }
    23 = TMENU
    23 {
      stdWrap.wrap = <ul>|</ul>
      expAll = 1
      NO = 1
      NO.stdWrap.cObject = COA
      NO.stdWrap.cObject {
        ...
      }
    }
  }
}

我怀疑你有那个级别的 pid。
由于主要部分是相同的,我只会在 stdWrap 上使用简单的 if-wrap 有所不同:

2 = TMENU
2 {
  stdWrap.wrap = <ul>|</ul>
  expAll = 1
  NO = 1
  NO {
      wrapItemAndSub = <li>|</li>
      /// what wrap do you want to use???
      stdWrap.wrap {
          cObject = COA
          cObject {
              :
          }
          if.equals.field = pid
          if.value = 23
      }
} 

在您的代码中,您还在 stdWrap 上使用了 cObject,这不匹配,因为 stdWrap 不是活动包装,而是一组(包装)函数的容器。