首页 > 解决方案 > TYPO3 FlexForm:如何禁用内联元素中的字段?

问题描述

我有一个带有 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 禁用字段?

标签: typo3flexform

解决方案


一般来说,您可以禁用 flexform 字段。该手册说明了这种可能性:

其他属性也适用于弹性表单字段,在这种情况下,必须设置包含数据结构键的完整属性路径
TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[flexFieldName].[propertyName]:代表 FlexForm 中的
键。此密钥将最多分为两部分。默认情况下,第一部分将用作 TSconfig 中 FlexForm 的标识符。如果标识符不为空、列表或 *,第二部分将覆盖标识符。 例如,密钥的标识符将是 ,密钥的标识符将是。有关详细信息,请参阅指向 TCA 参考的数据结构部分。[dataStructKey]$GLOBALS['TCA'][<tableName>]['columns'][<field>]['config']['ds']
my_ext_pi1,listmy_ext_pi1*,my_CTypemy_CType

一些属性适用于整个 FlexForm 工作表,它们的属性路径是 TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[propertyName].

如果您.在标识符内部使用它可能会出现问题。


推荐阅读