2013-04-29 132 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