Так что мне удается решить это самому.Ответ заключается в том, чтобы использовать так называемый регистр, чтобы отметить, передали мы текущий объект или нет.Например:
lib.menu = HMENU
lib.menu {
1 = TMENU {
NO = 1
NO = {
# Render using Common Object Array (COA)
stdWrap.cObject = COA
stdWrap.cObject {
# Normal Case (However the an item should normally be rendered
10 = TEXT
10 {
if {
isTrue.data = register:cid
value = NORMAL RENDERING
}
}
20 = TEXT
20 {
if {
isTrue.data = register:data
value = RENDERING (IMMEDIATELY) AFTER THE CURRENT ITEM
}
}
# Unset the register (after we've done with our special formatting)
30 = LOAD_REGISTER
30.cid= 0
}
}
...
# The currently selected item
CUR = 1
CUR {
# Render using Common Object Array (COA)
stdWrap.cObject = COA
stdWrap.cObject {
# However the Current item should normally be rendered
10 = TEXT
10.field = title
# Mark that we've reached the current item
20 = LOAD_REGISTER
20.cid= 1
}
}
}
}
Регистр, установленный с помощью LOAD_REGISTER, в основном представляет собой тип переменной времени выполнения, которую можно устанавливать и сбрасывать в ходе итерации по пунктам меню (или как угодно).Как таковой, он может использоваться, чтобы отметить наш прогресс в пунктах меню, особенно, если мы пропустили текущий пункт меню (CUR) или нет.
rant begin Вряд ли элегантное решениеучитывая, что typoscript является предметно-ориентированным языком, который в основном используется для такого нормирующего материала, как меню. / rant end