typo3扩展两次在页面上,不同的设置?

时间:2012-02-16 15:16:23

标签: typo3

我写了一个Typo3扩展,我想在同一个Typo3页面上放两次(实际上是通过templavoila模板定义的两个部分),但这两个实例需要不同的设置!
当我通过“页面”模块向页面添加内容时,我可以根据需要添加任意数量的扩展实例。但是在“模板”模块中,每页只有1个配置。

所以我的问题是:在同一页面上为单个插件的不同实例设置不同的typoscript设置的最佳方法是什么?

感谢任何提示!

3 个答案:

答案 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),因此可以自定义每个实例。