TYPO3 FlexForm:如何禁用内联元素中的字段?

时间:2018-12-19 16:01:04

标签: 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禁用字段?

2 个答案:

答案 0 :(得分:0)

通常,您可以禁用flexform字段。 manual指出了可能性:

  

其他属性也适用于弹性表单字段,在这种情况下,必须设置包括数据结构键的完整属性路径:
  TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[flexFieldName].[propertyName]
  [dataStructKey]代表FlexForm在   $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]

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

答案 1 :(得分:0)

This answer to a different question启发了我解决方案,终于解决了我的问题!

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>