0

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

4

2 回答 2

1

一般来说,您可以禁用 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].

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

于 2018-12-20T10:15:27.610 回答
0

这个对不同问题的回答启发了我最终解决了我的问题的解决方案!

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>
于 2018-12-20T15:18:58.940 回答