TYPO3 FlexForm: как отключить поле во встроенном элементе? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть плагин TYPO3 с FlexForm.В 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 голосов
/ 20 декабря 2018

Этот ответ на другой вопрос вдохновил меня на решение, которое наконец решило мою проблему!

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>
0 голосов
/ 20 декабря 2018

В общем, вы можете отключить поля flexform. manual заявляет о возможности:

Другие свойства также применяются к полям гибкой формы, в этом случае необходимо задать полный путь свойства, включая ключ структуры данных:
TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[flexFieldName].[propertyName].
[dataStructKey] представляет ключ FlexForm в $GLOBALS['TCA'][<tableName>]['columns'][<field>]['config']['ds'].Этот ключ будет разделен на две части.По умолчанию первая часть будет использоваться в качестве идентификатора FlexForm в TSconfig.Вторая часть переопределит идентификатор, если он не пустой, список или *.
Например, идентификатор ключа my_ext_pi1,list будет my_ext_pi1, а ключа *,my_CType - my_CType.Смотрите раздел Указание на структуру данных ссылки TCA для подробностей.

Некоторые свойства применяются ко всем листам FlexForm, путь к свойствам которых равен TCEFORM.[tableName].[fieldName].[dataStructureKey].[flexSheet].[propertyName].

, это может быть проблематично, есливы используете . внутри идентификаторов.

...