【问题标题】:Overriding TCA values in pageTS覆盖 pageT'S 中的值
【发布时间】:2019-04-30 13:31:22
【问题描述】:

我想更改 tt_address 记录在列表视图中显示时的标签。应该使用字段 "organization" 的值而不是 "name" 作为默认标签。我想通过 pageTS 中的 TypoScript 覆盖 TCA(如果可能的话)来实现这一点。不幸的是,以下尝试没有达到预期的效果:

TCEFORM {
    tt_address {
        ctrl {
            label = company
            label_alt = name, last_name, first_name
        }
    }
}

我尝试使用TCADefaults 代替TCEFORM,但这并没有改变任何东西。 实现该目标的正确定义是什么?

提前致谢!

【问题讨论】:

    标签: typo3 typo3-9.x typo3-tca


    【解决方案1】:

    要更改列表模块中显示的列,您必须在自己的扩展程序中覆盖 TCA。在文件 EXT:xyz/Configuration/TCA/Overrides/tt_content.php

    $GLOBALS['TCA']['tt_address']['ctrl']['label'] = 'company';
    $GLOBALS['TCA']['tt_address']['ctrl']['label_alt'] = 'name, last_name, first_name';
    

    【讨论】:

      【解决方案2】:

      您必须使用列名来覆盖标签。表格是TCEFORM.[tableName].[fieldName].[propertyName]

      在您的情况下,您想覆盖字段“名称”。

      TCEFORM.tt_address.name.label = Company
      

      详情请见:https://docs.typo3.org/typo3cms/TSconfigReference/PageTsconfig/TceForm.html

      【讨论】:

      • 感谢您的回答,但您误会了。我不想更改编辑表单的任何标签。我试图实现的是更改 tt_address 记录列表视图中的标签。
      • 对不起。创建一个文件typo3conf/AdditionalConfiguration.php。试试$GLOBALS['TCA']['tt_address']['ctrl']['label'] = 'company';$GLOBALS['TCA']['tt_address']['ctrl']['label_alt'] = 'name, last_name, first_name';
      • 所以没有办法通过 TypoScript 操作 TCA?太糟糕了,将这些更改应用于页面树的特定入口点会很酷。感谢有关 AdditionalConfiguration 的提示,不知道这种可能性。不幸的是,这在这种情况下没有效果。刷新缓存后,我在后端查找了配置,labellabel_alt 的初始值仍然存在。
      • 我自己测试过,你是对的。但是在扩展中它可以工作。在文件 EXT:xyz/Configuration/TCA/Overrides/tt_content.php 添加这一行 $GLOBALS['TCA']['tt_address']['ctrl']['label'] = 'company';
      • 我得到了控制,如下所示:我将(传统的 TYPO3)站点更改为站点包扩展,并使用 tt_content.php 文件操作 TCA,如您所推荐的。谢谢@Heinz,你给了我重要的提示!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2019-10-04
      相关资源
      最近更新 更多