我添加了通过flexforms在我的扩展程序中设置detailPid的可能性:
<ROOT>
<type>array</type>
<el>
<settings.detailPid>
<TCEforms>
<label>
LLL:EXT:events/Resources/Private/Language/locallang_db.xlf:flexforms.overview.detailPid
</label>
<config>
<type>group</type>
<internal_type>db</internal_type>
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<show_thumbs>1</show_thumbs>
<wizards>
<suggest>
<type>suggest</type>
</suggest>
</wizards>
</config>
</TCEforms>
</settings.detailPid>
</el>
</ROOT>
我想在我的setup.ts中通过TS设置默认的detailPid:
plugin.tx_events_eventdetail {
settings {
listPid = {$plugin.tx_events_eventdetail.settings.listPid}
detailPid = {$plugin.tx_events_eventdetail.settings.detailPid}
}
}
我的问题是,如果我未在插件中配置detailPid,则不会使用TS中的默认值。我的控制器或FLUID模板中的settings.detailPid为空。有办法解决这个问题吗?
我已经环顾四周,发现新闻扩展名具有相同的行为。
感谢您的帮助和建议!
答案 0 :(得分:1)
至少扩展名tt_address和新闻的配置允许在flexform为空的情况下回退到TS。如果需要,您可以复制代码并在扩展程序中使用它。
核心没有可用的配置。
答案 1 :(得分:1)
您可以将flexforms detailPid路径重命名为settings.flexform.detailPid
之类的内容,然后在您的控制器中将TS中的设置与Flexform中的设置合并,以便仅非空值生效。
ArrayUtility::arrayMergeRecursiveOverrule($this->settings, $this-settings['flexform'])