【发布时间】:2014-01-25 00:36:39
【问题描述】:
我有一个分配给各种页面 ID 的常量列表(例如 myConstant = 22)。现在我想替换以下链接
<f:link.page pageUid="22" >Link</f:link.page>
类似的东西
<f:link.page pageUid="{myConstant}" >Link</f:link.page>
我一直无法找到正确的语法来执行此操作。有什么帮助吗?
【问题讨论】:
我有一个分配给各种页面 ID 的常量列表(例如 myConstant = 22)。现在我想替换以下链接
<f:link.page pageUid="22" >Link</f:link.page>
类似的东西
<f:link.page pageUid="{myConstant}" >Link</f:link.page>
我一直无法找到正确的语法来执行此操作。有什么帮助吗?
【问题讨论】:
我认为你不能直接访问常量,但你可以在 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>
【讨论】:
如果您使用的是 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 或扩展程序 vhs 中的 v:var.typoscript ViewHelper 在模板中读取该值。
【讨论】:
myPageID 在某处未正确设置。尝试使用<f:debug>{[settings.]myPageID}</f:debug> 输出它(仅在需要时添加“设置”)。
我在 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={..}
}
【讨论】: