问题描述
我正在尝试通过FLUIDTEMPLATE传递变量。但是我的尝试每次都失败了。我已经通过ext-builder创建了一个simpleblog扩展。因此,我的模板文件位于 simpleblog / Resources / Private / Templates / Blog / List.html。。我正在使用此basic example来使用FLUIDTEMPLATE访问数据。我将以下代码放在扩展程序的setup.typoscript中。
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
file = EXT:simpleblog/Resources/Private/Templates/Blog/List.html
settings {
copyrightYear = 2013
}
}
}
,并以模板文件形式访问
...
<h3>{settings.copyrightYear}</h3>
我知道这很简单。但是我不知道是什么阻止了我访问数据。
解决方法
如果使用FLUIDTEMPLATE
对象,则可以添加类似于示例的变量。但具有属性variables
:
10 = FLUIDTEMPLATE
10 {
file = EXT:simpleblog/Resources/Private/Templates/Blog/List.html
variables {
copyrightYear = 2013
}
}
但是您正在谈论扩展。
扩展名有其自己的模板,而没有在打字稿中明确声明。
模板和变量是在扩展的PHP代码(可能是控制器)中准备的。
经常将(!)复制到流体的一些变量是插件的设置。然后可以在流体变量setting
中找到这些值。
阅读扩展程序的手册,您会发现类似的内容
plugin {
myextension {
settings {
mySetting = myValue
}
}
}
但是对于每个扩展名或插件而言可能是不同的,因此路径可能会因插件名称而不是扩展名而有所不同,或针对不同操作而具有其他路径。
plugin {
myplugin {
list {
settings {
myListSetting = myListValue
}
}
show {
settings {
myShowSetting = myShowValue
}
}
}
}
不要忘记,这些设置可能会被PHP代码中插件内容元素中的值覆盖。
,如何填充Blog变量?如果您已经创建了扩展,则逻辑和设置应在plugin.tx_yourext.settings中设置,而不是在全局范围内设置。我认为您在这里混淆了一些事情。参见https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/b-ExtbaseReference/Index.html#typoscript-configuration