Typoscript图像每15天更换一次

问题描述 投票:0回答:2

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

我采取了以下的typosript:

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吗?

image typoscript
2个回答
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
            }
    }

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

最好的祝福。


0
投票

您找到了重要的细节:您需要一个.cObject来填充简单属性中的任何数据。

为什么如此复杂的CASE输出与键相同?

所以最简单的方法是:

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

也许这也像你在.30那样工作:

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

和你的.30更直接的方式: 而不是.insertData.wrap使用.dataWrap

    begin.stdWrap.dataWrap = {register:divSem}
    :

30 = TEXT
30.dataWrap = <div class="{register:divSem}">|</div> 
© www.soinside.com 2019 - 2024. All rights reserved.