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'
}
Другие вопросы по тегам