Feature: #89573 - Allow flexible base url for slug fields in FormEngine

See forge#89573

Description

It is now possible to add a custom base url for TCA columns of type slug. The base url is displayed in front of the input field in FormEngine.

To add a custom base url a userFunc can be assigned to the new setting prefix which is available under ['columns'][*]['config']['appearance'] at the fields TCA definition.

'config' => [
    'type' => 'slug',
    'appearance' => [
        'prefix' => \Vendor\Extension\UserFunctions\FormEngine\SlugPrefix::class . '->getPrefix'
    ]
]

The userFunc receives two parameters. The first parameter is the parameters array containing the site object, the language id, the current table and the current row. The second parameter is the reference object TcaSlug. The userFunc should return the string which is then used as the base url in FormEngine.

<?php
declare(strict_types = 1);

namespace Vendor\Extension\UserFunctions\FormEngine

use TYPO3\CMS\Backend\Form\FormDataProvider\TcaSlug;

class SlugPrefix
{
    public function getPrefix(array $parameters, TcaSlug $reference): string
    {
        return 'custom base url';
    }
}

Impact

Developers are enabled to provide custom base urls for their slug fields. If you are already using slug fields in your TCA, nothing changes as the current behaviour is still used as the default.