Что я пытаюсь сделать, это довольно сложный и расширение Extbase участвует ...TypoScript проблема с LOAD_REGISTER и если условие, чтобы заполнить список
шаг за шагом, что я пытаюсь сделать:
- Плагин Extbase решает, если определенные элементы навигации должны быть отмечены.
- Этот плагин имеет одно действие для каждого элемента навигации.
- Возвращаемое значение (0 или 1) от каждого действия в TS хранится в стеке (LOAD_REGISTER).
- Список UID-страниц страницы создается путем проверки на хранящиеся значения (0,1).
- Навигационный COA изменяется с использованием этого списка UID.
Вот код TypoScript Я использую:
// 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