Fusion (Typoscript 2): как получить доступ к переменной из родительского объекта?
Это своего рода вопрос для Как определить и получить доступ к локальной переменной в Typoscript 2 (Neos)?
Если я определю локальную переменную, называется myLocalVar
в приведенном ниже примере, как я могу получить к нему доступ из других объектов, в данном случае из Neos.Fusion:Case
?
prototype(Some.Namespace:SomeNodeType) < prototype(TYPO3.Neos:Content) {
myLocalVar = ${String.split(q(node).property('example'), '/', 2)}
myResult = Neos.Fusion:Case {
a = Neos.Fusion:Matcher {
condition = ${???.myLocalVar[0] == 'aaa'}
renderer = 'first part is aaa'
}
b = Neos.Fusion:Matcher {
condition = ${???.myLocalVar[0] == 'bbb'}
renderer = 'first part is bbb'
}
}
}
В этом конкретном примере: как я могу получить доступ myLocalVar
изнутри Neos.Fusion:Matcher
?
Эта часть является условием: condition = ${???.myLocalVar[0] == 'aaa'}
1 ответ
Решение
Вам необходимо определить myLocalVar как переменную контекста:
@context.myLocalVar = ${String.split(q(node).property('example'), '/', 2)}
контекст наследуется всеми вложенными объектами, так что вы можете просто получить доступ к значению, как это
a = Neos.Fusion:Matcher {
condition = ${myLocalVar[0] == 'aaa'}
renderer = 'first part is aaa'
}