Typo3 使用LOAD_寄存器和if条件填写列表时出现打字错误

Typo3 使用LOAD_寄存器和if条件填写列表时出现打字错误,typo3,typoscript,extbase,Typo3,Typoscript,Extbase,我正在尝试做的是非常复杂的,并且涉及到一个Extbase扩展 一步一步,我想做的是: Extbase插件决定是否应该标记某些导航元素 此插件对每个导航元素都有一个操作 TS中每个操作的返回值(0或1)存储在堆栈(LOAD_寄存器)上 通过检查存储值(0,1)来生成页面UID列表 使用此页面UID列表修改导航COA 以下是我正在使用的打字稿代码: // load information, if pages lack info, into register 10 = LOAD_REGISTER

我正在尝试做的是非常复杂的,并且涉及到一个Extbase扩展

一步一步,我想做的是:

  • Extbase插件决定是否应该标记某些导航元素
  • 此插件对每个导航元素都有一个操作
  • TS中每个操作的返回值(0或1)存储在堆栈(LOAD_寄存器)上
  • 通过检查存储值(0,1)来生成页面UID列表
  • 使用此页面UID列表修改导航COA
以下是我正在使用的打字稿代码:

// load information, if pages lack info, into register
10 = LOAD_REGISTER
10 {
  lacksAnfahrt {
    cObject = USER_INT
    cObject {
      userFunc = tx_extbase_core_bootstrap->run
      pluginName = Pa_klinik_data_edit
      extensionName = Hplusinfo
      controller = SpitalInfoPA
      switchableControllerActions {
        SpitalInfoPA {
          1 = completeAnfahrt
        }
      }
    }
  }

  lacksAktivitaeten < .lacksAnfahrt
  lacksAktivitaeten.cObject.switchableControllerActions.SpitalInfoPA.1 = completeAktivitaeten

  lacksBildergalerie < .lacksAnfahrt
  lacksBildergalerie.cObject.switchableControllerActions.SpitalInfoPA.1 = completeBildergalerie

  // build a list of PIDs that are going to be marked in navigation
  lackPIDs.cObject = COA
  lackPIDs.cObject {
    10 = TEXT
    10 {
      value = {$config.PIDLists.anfahrt},
      if {
        value = 1
        equals.data = register:lacksAnfahrt
      }
    }

    20 < .10
    20.value = {$config.PIDLists.bildergalerie},
    20.if.equals.data = register:lacksBildergalerie

    30 < .10
    30.value = {$config.PIDLists.aktivitaeten},
    30.if.equals.data = register:lacksAktivitaeten

    // don't let the comma separated list end with a comma
    99 = TEXT
    99.value = 0
  } // lackPIDs
} // REGISTER

// mark incomplete pages with a red exclamation mark
20 {  // = HMENU
  1 {  // = TMENU
    NO {  // = 1
      stdWrap.wrap = |<span class="warning lacksInfo">!</span>
      stdWrap.wrap.if {
        value.data = register:lackPIDs
        isInList.field = uid
      }
    }
  }
}
在任何情况下,此评估都将返回false

我还尝试了不同的if函数,如:

10 {
  value = {$nav.PIDLists.anfahrt},
  if {
    isTrue.data = register:lacksAnfahrt
  }
}

但这并不能解决问题。

只是忽略了其他寄存器也在使用USER_INT

嗨,我开始时没有_INT,它也不起作用。在Tx\u Extbase\u Utility\u Extension::configurePlugin中将操作配置为不可缓存也可能是一个问题吗?你知道这一点吗,我刚才问了一些非常类似的问题[这里]()。。。
10 {
  value = {$nav.PIDLists.anfahrt},
  if {
    isTrue.data = register:lacksAnfahrt
  }
}