TYPO3:自定义扩展:label_userfunc BE 列表视图中的自定义标题

TYPO3: Custom Extension: label_userfunc custom title in BE list view

我为 TYPO3 写了一个自定义扩展,我在其中存储合作伙伴列表并计算他们的徽标在 front-end 中显示的次数 ...

在后端,合作伙伴按 name 列出,但我还想显示根据 > TYPO3 documentation

应该可能的展示次数

在覆盖范围内:

    'label' => 'name',
    'label_userFunc' => 'Newred\WmPartners\Userfuncs\Tca->partnerTitle',

Classes\Userfuncs\Tca\PartnerTitle.php 中:

<?php
namespace Newred\WmPartners\Userfuncs\Tca;

public function partnerTitle(&$parameters, $parentObject) {
    $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $parameters['row']['uid']);
    $newTitle = $record['name'];
    $newTitle .= ' (' . substr(strip_tags($record['impressions']), 0, 10) . '...)';
    $parameters['title'] = $newTitle;
}

有人看到我哪里错了吗,这让我在列表中 [没有标题]

您的用户函数需要在 class Newred\WmPartners\Userfuncs\Tca 中。为此,在文件夹 wm_partners/Classes/Userfuncs 中创建文件 Tca.php,内容如下:

<?php
namespace Newred\WmPartners\Userfuncs;

class Tca
{
    public function partnerTitle(&$parameters, $parentObject)
    {
        $record = \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord($parameters['table'], $parameters['row']['uid']);
        $newTitle = $record['name'];
        $newTitle .= ' (' . substr(strip_tags($record['impressions']), 0, 10) . '...)';
        $parameters['title'] = $newTitle;
    }
}

您始终可以在其中放置一个 die() 或调试以查看是否实际调用了您的方法。

另请注意,要使此工作正常进行,您的 class 必须加载(这很可能会自动处理)

如果括号是可选的,而您只想显示字段 'impressions' 的值,您也可以简单地将 label_alt 功能与 label_alt_force 结合使用。

'label' => 'name',
'label_alt' => 'name,impressions',
'label_alt_force' => true

https://docs.typo3.org/typo3cms/TCAReference/Reference/Ctrl/Index.html?highlight=ctrl#label-alt-force