我有一个带有flexform的typo3插件。在Flexform中,我将关系添加到外国表中。我现在需要禁用外国桌子的一些领域。我不能通过用户权利来做到这一点,因为这是上下文的问题,而不是权利。
我的Flexform看起来像这样:
<settings.moreinfo>
<TCEforms>
<label>my label</label>
<config>
<type>inline</type>
<foreign_table>tx_foo_domain_model_bar</foreign_table>
<foreign_field>content_uid</foreign_field>
<foreign_sortby>sorting</foreign_sortby>
<maxitems>50</maxitems>
</config>
</TCEforms>
</settings.moreinfo>
我考虑过TCEFORM
,但不知道如何解决该领域:
TCEFORM.tt_content.pi_flexform.foobar.general {
settings.moreinfo {
# maybe here?
}
}
是否有可能通过tsconfig或php禁用字段?
通常您可以禁用FlexForm字段。该手册说明了可能性:
其他属性也适用于Flex表单字段,在这种情况下,必须设置包括数据结构密钥在内的完整属性路径:
TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[flexFieldName].[propertyName]
。
[dataStructKey]
代表弹性形式的关键$GLOBALS['TCA'][<tableName>]['columns'][<field>]['config']['ds']
。这 钥匙最多将分为两部分。默认情况下,第一部分将 用作TSCONFIG中FlexForm的标识符。第二部分 如果标识符不是空的,则将覆盖标识符,列表或 *。
例如,密钥my_ext_pi1,list
的标识符将为my_ext_pi1
在密钥*,my_CType
中,它将是my_CType
。请参阅指向的部分 TCA参考的数据结构以获取详细信息。某些属性适用于整个Flexform张,其属性路径是
TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[propertyName]
。
如果您在标识符内使用.
,这可能是有问题的。
这个对另一个问题的答案激发了我的解决方案,该解决方案最终解决了我的问题!
foreign_types
是我正在寻找的解决方案:
<settings.moreinfo>
<TCEforms>
<label>my label</label>
<config>
<type>inline</type>
<foreign_table>tx_foo_domain_model_bar</foreign_table>
<foreign_field>content_uid</foreign_field>
<foreign_sortby>sorting</foreign_sortby>
<maxitems>50</maxitems>
<foreign_types type="array">
<numIndex index="1" type="array">
<showitem>
title, link, --div--;LLL:EXT:cms/locallang_ttc.xlf:tabs.access, hidden;;1, starttime, endtime
</showitem>
</numIndex>
</foreign_types>
</config>
</TCEforms>
</settings.moreinfo>