TYPO3中通过TypoScript读取插件配置选项的问题求助
我来帮你搞定TypoScript里读取插件配置的问题,你试的几种写法都有小问题,下面给你拆解正确的操作方式:
首先要明确:插件的配置存在plugin.tx_parser.settings路径下,但TypoScript不会自动解析你写的{变量}格式,得用正确的语法触发解析:
方式1:用
data直接读取
这是最直接的方式,适合直接获取配置值:ajax.30 = TEXT ajax.30.data = plugin.tx_parser.settings.numVar方式2:用
insertData解析变量
如果想在字符串中插入配置值(比如拼接其他内容),需要加上insertData = 1来启用变量解析:ajax.30 = TEXT ajax.30.value = 当前配置的numVar是:{plugin.tx_parser.settings.numVar} ajax.30.insertData = 1
⚠️ 你之前用< {tx_parser.settings.numVar}的写法是错误的,<是用来复制整个TypoScript对象的,不是读取变量值的,别搞混了。
ext_conf_template.txt中的全局扩展配置 如果你的配置是写在ext_conf_template.txt里的全局扩展设置,它的存储路径和插件配置不一样,要这样读取:
ajax.30 = TEXT ajax.30.data = extension.tx_parser.numVar
或者用insertData的方式:
ajax.30 = TEXT ajax.30.value = 全局配置的numVar是:{extension.tx_parser.numVar} ajax.30.insertData = 1
注意:一定要先在扩展管理器里保存过这些配置,否则TypoScript上下文里不会有这些值。
Constants里看不到插件配置:插件配置默认是在Setup里,不是Constants。如果想在Constants编辑器里看到,需要在扩展的
ext_typoscript_constants.txt里定义常量:plugin.tx_parser.settings.numVar = 10之后在Constants面板就能看到这个选项,Setup里可以用
{$plugin.tx_parser.settings.numVar}来引用这个常量值。添加插件后显示的选项不对:这说明你的插件FlexForm配置有问题。要检查扩展的
Configuration/FlexForms/目录下的配置文件,确保numVar字段已经正确定义在FlexForm里,这样添加插件时才能看到对应的配置项。
内容的提问来源于stack exchange,提问作者christian2222

