Random image with v:iterator.random | cache issue

2019-08-01 17:25发布

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

2条回答
Root(大扎)
2楼-- · 2019-08-01 17:52

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

查看更多
时光不老,我们不散
3楼-- · 2019-08-01 18:01

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.

查看更多
登录 后发表回答