Typoscript图像每15天更换一次

时间:2018-06-11 12:47:45

标签: image typoscript

我想每隔15天更换一次图片。或者一个月两次。当日期介于1和15之间时是一个图像,如果它是16到30,则另一个,等等,是一年中的24个图像。我希望它是管理图像变化的typoscript。

我接受了以下的错字:

lib.headerlogo1 = COA
lib.headerlogo1 {
10 = LOAD_REGISTER
10 {
    divSem.cObject = TEXT
    divSem.cObject {
        data = date:U
        strftime = %U 

        current = 1
        setCurrent.data = date:U
        setCurrent.wrap = |/2
        prioriCalc = 1
    }
}

20 = FILES
20 {
    references {
        data = levelmedia: -1, slide
    }

    renderObj = IMAGE
    renderObj {
        file.import.dataWrap = {file:current:storage}:{file:current:identifier}
        #file.import.listNum = 0
        altText.data = file:current:title

        # Affiche bien la valeur de : divSem
        #stdWrap.insertData = 1
        #stdWrap.wrap = <div class="banner{register:divSem}">|</div>
    }

    # insertData = 1
    insertData = 1

    # IT'S FAILLED !!
    begin = {register:divSem}
    maxItems = 1 
} 

30 = TEXT
30 {
    stdWrap.insertData = 1
    stdWrap.wrap = <div class="{register:divSem}">|</div> 
}
}

问题是我无法启动注册表begin = {register:divSem}的值...它始终从0开始!你有好主意吗 ? 30 = TEXT中的寄存器显示是正确的。

你有一个好主意来修改typoscript吗?

2 个答案:

答案 0 :(得分:0)

我刚刚找到了解决方案,而不是begin = {register: divSem},我这样做了:

    begin.cObject = TEXT
    begin.cObject {
            value = 0
            value.override.cObject = CASE
            value.override.cObject {                    
                key.data = register:divSem
                1 = TEXT
                1.value = 1

                2 = TEXT
                2.value = 2

                ...

                24 = TEXT
                24.value = 24

                default = TEXT
                default.value = 2
            }
    }

也许有更简单的,如果你有想法,我很感兴趣。

最好的问候。

答案 1 :(得分:0)

您发现了重要的细节:您需要.cObject来填充简单属性中的所有数据。

为什么与输出与密钥相同的CASE这么复杂?

最简单的方法是:

begin.cObject = TEXT
begin.cObject.data = register:divSem

也许这也像您在.30中一样工作:

begin = {register:divSem}
begin.insertData = 1

以及您的.30的更直接方式:
代替.insertData的{​​{1}}使用.wrap

.dataWrap