0

我有一个后端用户有权使用一种语言。但是这个后端用户仍然可以创建内容或将内容切换到“所有语言”语言。

如何禁用此用户的“所有语言”选项。

或者我怎样才能完全禁用它?我们根本不需要它。

到目前为止我的尝试:

我编辑了sys_language_uidin 的配置typo3\sysext\frontend\Configuration\TCA\tt_content.php

'sys_language_uid' => array(
    'exclude' => 1,
    'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
    'config' => array(
        'type' => 'select',
        'renderType' => 'selectSingle',
        'special' => 'languages',
       /* 'items' => array(
            array(
                'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
                -1,
                'flags-multiple'
            ),
        ),*/
        'default' => 0,
    )
),

在所有正常的 tt_content 元素中,“all”语言不再可用。但是有两个缺点:

  • 它会覆盖核心文件并且不是更新安全的。
  • 它仅禁用 tt_content 元素中的“所有”语言,而不禁用扩展中的其他元素(例如新闻)。
4

1 回答 1

0

是的,您可以使用 Page TSConfig 从 TCEFORM 选择框中删除选项:

TCEFORM.tt_content.sys_language_uid.removeItems = -1

您需要为每个受影响的表进行这样的配置:

TCEFORM.tx_news_domain_model_news.sys_language_uid.removeItems = -1

不幸的是,核心中没有钩子可以影响具有特殊类型的选择框的语言列表languages。如果你真的需要这个低级,你可以 XCLASS\TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseSystemLanguageRow.php并删除[All languages]那里的语言。

于 2016-06-02T15:34:37.137 回答