В TYPO3 Fluid, как передать дополнительные аргументы партиалу при использовании {_all}

Контент в гибком стиле использует f:render Viewhelper как таковой:

<f:render partial="Header" arguments="{_all}" />

Я хотел бы передать другую информацию частичному, например

<f:render partial="Header" arguments="{_all, settings : doThis}" />

Но мне кажется, что это неправильный путь, так как выдает ошибку.

Я также пытался получить доступ к settings.doThis с помощью f:alias, но тоже не повезло (точнее, умение).

Как это делается правильно?


person Urs    schedule 13.04.2016    source источник


Ответы (4)


Это возможно с псевдонимом ViewHelper. Я уже использовал его с TYPO3 версии 6 и 7.

Просто расширьте переменную {_all}, как показано ниже.

Частичный

<f:alias map="{additionalVar: 'foobar'}">
        <f:render partial="Partial" arguments="{_all}"/>
</f:alias>

Раздел

<f:alias map="{additionalVar: 'foobar'}">
    <f:render section="Section" arguments="{_all}" />
</f:alias>

Вы можете использовать переменную AdditionalVar как любую другую.

Работает с разделом и частичным.

person fazzyx    schedule 16.06.2017

Вы не можете, поэтому просто измените свой settings (или любую другую переменную) в контроллере или используйте ViewHelper, который позволяет вам объявлять переменные в представлении, например: v:variable.set VHS ext.

person biesior    schedule 13.04.2016
comment
Какое решение вы выбрали, просто из любопытства? Лично у меня все еще есть сомнения, обычно я предпочитаю контроллерный подход - person biesior; 14.04.2016
comment
Поскольку я сделал это до того, как пришло ваше решение, я просто переключил весь Partial. Когда я рефакторинг, я выберу v:variable.set — это обычный шаблонизатор, а не расширение, поэтому у меня нет контроллера (насколько я знаю) - person Urs; 14.04.2016

Можно использовать этот, но не используйте var 'settings'. Этот используется typoscript.

<f:render partial="Header" arguments="{_all, myvar:'myvalue'}" />

Попробуйте тег <f:debug> в частичном заголовке и посмотрите

person Alexander    schedule 18.04.2016
comment
У меня не работает в TYPO3 8: Аргументы аргументов были зарегистрированы с типом массива, но имеют тип строки в помощнике представления TYPO3Fluid\Fluid\ViewHelpers\RenderViewHelper - person Martin Krung; 01.06.2017

Вы можете использовать vhs viewhelper с жидкостью, как показано ниже.

<v:variable.set value="{yourValue}" name="variable">
<f:render partial="Header" arguments="{_all, newVar:variable}" />
person Pravin Vavadiya    schedule 16.06.2017