Typo3:常量为Page UID

时间:2014-01-07 10:52:26

标签: typo3 fluid

我有一个分配给各种页面ID的常量列表(例如myConstant = 22)。现在我想替换以下链接

<f:link.page pageUid="22" >Link</f:link.page>

类似

<f:link.page pageUid="{myConstant}" >Link</f:link.page>

我无法找到正确的语法。有什么帮助吗?

3 个答案:

答案 0 :(得分:3)

我认为您无法直接访问常量,但您可以使用ts-setup中的常量。

在ts-setup中使用plugin.tx_myplugin.settings.myPid = {$myConstant}

,您可以使用{settings.myPid}

访问插件中的pid

如果你没有使用插件而是使用TS FluidTemplate,你可以像这样分配它们:

page = PAGE
page {
    10 = FLUIDTEMPLATE
    10 {
        file = fileadmin/templates/Home.html
        variables {
            pidList {
                myConstant = {$myConstant}
                myConstant2 = {$myConstant2}
            }
        }
    }
}

<f:link.page pageUid="{pidList.myConstant}" >Link</f:link.page>

答案 1 :(得分:2)

如果您使用的是FLUIDTEMPLATE typoscript-Object,则可以在TypoScript中执行以下操作:

lib.output = FLUIDTEMPLATE
lib.output {
#   ...
    variables {
        myPageID = {$myConstant}
    }
#   ...
}

在流体模板中,您可以使用您想要的变量:

<f:link.page pageUid="{myPageID}" >Link</f:link.page>

如果模板由控制器操作中的扩展程序呈现,您可以将该值分配给插件的设置:plugin.tx_<extkey>[_pi1].settings.myPageID = {$myConstant}。然后你可以在流体模板中使用它,如下所示:

<f:link.page pageUid="{settings.myPageID}">Link</f:link.page>

在任何情况下,您都可以将该值分配给某些TypoScript对象,并使用f:cObject ViewHelper或扩展程序v:var.typoscript中的vhs ViewHelper在模板中读取该值。< / p>

答案 2 :(得分:0)

我在t3 7.6中尝试了类似的东西如果你想在页面流体模板的某个地方使用ts常量(在ts-constants字段中定义为oneConst),你必须做这样的事情:

page.10 = FLUIDTEMPLATE
page.10 {         
    variables{
        const_one=TEXT
        const_one.value={$oneConst}
        }
    }
}

如果没有TEXT定义,将无法获得值。在模板中访问它:

{const_one} 

提示:我无法在数组中组织const。喜欢

const{
   one=TEXT
   one.value={..}
}