Random image with v:iterator.random | cache issue

自作多情 提交于 2019-12-24 16:42:33

问题


I try to output 1 random image with VHS (version 2.4.0) RandomViewHelper v:iterator.random.

This is my code:

{namespace flux=FluidTYPO3\Flux\ViewHelpers}
{namespace v=FluidTYPO3\Vhs\ViewHelpers}

    <f:layout name="Content" />

    <f:section name="Configuration">
        <flux:form id="random-image" label="Random Image" options="{icon: 'Icons/Content/Example.gif', group: 'Joya'}">
            <flux:field.input name="classname" label="Classname" />
        </flux:form>

        <flux:form.section name="images" label="Images">
            <flux:form.object name="image" label="Image">
                <flux:field.file name="imagesrc" label="Image" allowed="png,jpg" maxItems="1" size="1" />

            </flux:form.object>
        </flux:form.section>

    </f:section>

    <f:section name="Preview">
        Random Image
    </f:section>

    <f:section name="Main">
        <div class="random-image">
        <v:iterator.random as="img" subject="{images}">
            {img.image.imagesrc}
        </v:iterator.random>

        </div>
    </f:section>

I added 3 images to test, but it always outputs the same image. Edit: the output of random is cached. So it outputs another image after the cache is cleared.

Can I disable the cache just for this line of code?

https://fluidtypo3.org/viewhelpers/vhs/2.4.0/Iterator/RandomViewHelper.html


回答1:


The solution is to use the VHS ViewHelper v:render.uncache and creatre a partial with the part that shall not be cached. Its not the best solution as you need an extra file. But right now the only other way I can think of is to use some Typoscript, and thats also something I want to avoid.




回答2:


Another approach is to load the image true an ajax call, this way you can cache the page, but not the random image.



来源:https://stackoverflow.com/questions/36597141/random-image-with-viterator-random-cache-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!