我試圖做的是相當複雜和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
}
}
但這並不解決問題。
你有沒有想通了這一點,我剛纔問非常相似[這裏]東西(http://stackoverflow.com/q/40145253/5353105)。 .. – webMan 2016-10-22 12:30:55