Из этого вопроса: Random image with v:iterator.random | cache issueИспользуя выход частичный в качестве переменной в главном шаблоне
Я использую частичный оказывать не-кэшированной материал (в данном случае случайное изображение). я сделать это с помощью этого кода в главном шаблоне:
{v:render.uncache(partial: 'Random-Image', arguments: {iterator: images})}
Имейте это непосредственно в шаблоне выводит правильно (URL-адрес к изображению, например fileadmin/upload/abc.jpg
). Но если я хочу использовать это в качестве переменной для СРК с <f:image
он не работает:
<f:image src="{v:render.uncache(partial: 'Random-Image', arguments: {iterator: images})}" alt="alt text" />
Также установите в качестве переменной она с v:variable.set
не работает.
Все, что я получаю: <!--INT_SCRIPT.0081e57d9fd92c925bb35d79fd9d3f79-->
Кроме того, когда я его отладки:
<f:debug>
{v:render.uncache(partial: 'Random-Image', arguments: {iterator: images})}
</f:debug>
Я получаю <!--INT_SCRIPT.0081e57d9fd92c925bb35d79fd9d3f79-->
Итак, можно ли использовать вывод частично в качестве переменной? Или можно установить переменную в частичном и использовать ее в основном шаблоне?
А .. так, может быть, мой вопрос был немного неправильным. на вашу ** 2) ** часть: можно ли было бы использовать это (вывод '{v: render.uncache') в качестве переменной? Я хотел просто выбрать 1 случайный элемент итератора и использовать его в основном шаблоне (который кэшируется) – nbar
Также вы бы посмотрели мой оригинальный вопрос? Возможно, есть намного лучший способ сделать то, что я хочу, без частичного: http://stackoverflow.com/questions/36597141/random-image-with-viterator-random-cache-issue/36600054#36600054 – nbar
Думаю, вы не может этого достичь. Вы не можете вернуть результат частичного в виде строки или переменной с помощью v: render.uncache, потому что ViewHelper генерирует не кэшируемый контент и поставляет только указатель на него. –