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

时间:2016-11-30 06:52:11

标签: typo3 typo3-7.6.x

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

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

应该可以实现的展示次数。 在ovverride中

    '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;
}

有人看到我犯错的地方,这会让我[列表中没有标题]

2 个答案:

答案 0 :(得分:1)

您需要将用户功能置于 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;
    }
}

您可以随时在其中放置die()或调试,以查看您的方法是否实际被调用。

另请注意,为了完成这项工作,您的课程必须加载(最有可能自动处理)

答案 1 :(得分:1)

In case the brackets were optional and you just wanted to display the value of the field 'impressions' you could alternatively simply use the label_alt feature in combination with 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