限制为一种语言的后端用户不应该能够为所有语言创建内容

时间:2016-05-24 12:17:19

标签: typo3 typo3-7.6.x

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

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

或者我该如何禁用它?我们根本不需要它。

到目前为止我的尝试:

我在sys_language_uid编辑了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元素中的“all”语言,而不禁用扩展名中的其他元素(例如新闻)。

1 个答案:

答案 0 :(得分: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]语言。