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

web*_*Man 0 typo3 typo3-7.6.x

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

在后端,合作伙伴按 列出name,但我还想显示展示次数,这应该可以根据> TYPO3 文档进行

在 oververride 中:

    'label' => 'name',
    'label_userFunc' => 'Newred\\WmPartners\\Userfuncs\\Tca->partnerTitle',
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*iel 5

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

<?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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

另请注意,要完成此工作,必须加载您的类(这很可能会自动处理)