我写了一个Typo3扩展,我想在同一个Typo3页面上放两次(实际上是通过templavoila模板定义的两个部分),但这两个实例需要不同的设置!
当我通过“页面”模块向页面添加内容时,我可以根据需要添加任意数量的扩展实例。但是在“模板”模块中,每页只有1个配置。
所以我的问题是:在同一页面上为单个插件的不同实例设置不同的typoscript设置的最佳方法是什么?
感谢任何提示!
答案 0 :(得分:3)
如果配置选项不能用作flexform,或者还有其他原因可以通过TypoScript更改选项,您可以这样做:
temp.tx_yourextension < plugin.tx_yourextension
plugin.tx_yourextension >
plugin.tx_yourextension = CASE
plugin.tx_yourextension {
# check for the uid of the content element (the plugin)
key.field = uid
# if nothing special is defined
default < temp.tx_yourextension
# the plugin with the uid 1234 needs different configuration
1234 < temp.tx_yourextension
1234 {
property = whatever
}
}
您可以检查section_frame或任何其他字段,而不是请求uid。
但请记住,有些扩展程序会通过$GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_yourextension.']['property']
直接访问TypoScript,这会阻止此选项。
您可以在tt_content.list上执行相同操作。*
# without tx_ prefix
temp.yourextension < tt_content.list.20.yourextension
tt_content.list.20.yourextension >
tt_content.list.20.yourextension = CASE
...
答案 1 :(得分:1)
您可以使用flexform进行不同的设置。每个flexform都存储在一个单独的数据库字段中。
答案 2 :(得分:1)
为什么要使用模板配置?您可以为前端插件本身定义一些配置(使用flexforms),因此可以自定义每个实例。