2013-04-29 135 views
1

我试图做的是相当复杂和Extbase扩展参与...与LOAD_REGISTER Typo脚本问题,如果条件填充列表

一步一步来,我想要做的事:

  • Extbase插件决定是否应该标记某些导航元素。
  • 这个插件对每个导航元素都有一个动作。
  • TS中每个操作的返回值(0或1)存储在堆栈(LOAD_REGISTER)中。
  • 通过检查存储的值(0,1)来构建页面UID的列表。
  • 使用此页面UID列表修改导航COA。

这里是我使用的Typo脚本:

// 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 
     } 
    } 
    } 
} 

如果我打印出register:lacksBildergalerie和所有其他人,他们的价值观是正确的(0或1)。 但lackPIDs列表总是(除0末的)......一定有什么错的中间部分:

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

该评估接缝在任何情况下返回

我也试图与不同如果功能,如:

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

但这并不解决问题。

+0

你有没有想通了这一点,我刚才问非常相似[这里]东西(http://stackoverflow.com/q/40145253/5353105)。 .. – webMan 2016-10-22 12:30:55

回答

0

就忽视了其他寄存器使用USER_INT以及

+1

嗨,我开始没有_INT,它也没有工作。在Tx_Extbase_Utility_Extension :: configurePlugin中,操作是否被配置为不可缓存也可能是一个问题? – rantanplan 2013-04-29 21:33:38