Custom viewhelper

Jeder Viewhelper verwendet eine entsprechende PHP-Klasse.

In einer Extension muß unter Classes ein Ordner ViewHelpers angelegt werden.
Wichtig: Auf die richtige Schreibweise achten!

Insert new file in this directory , f. e. MyTestViewHelper.php (since TYPO3 13.4):

 

<?php
    namespace Vendor\Extension\ViewHelpers;

    use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;

    class MyTestViewHelper extends AbstractViewHelper
    {
         protected $escapeOutput = false;

public function initializeArguments(): void {
// registerArgument($name, $type, $description, $required, $defaultValue, $escape)
$this->registerArgument('emailAddress', 'string', 'The email address to resolve the gravatar for', true);
}

public function render(): string {
$emailAddress = $this->arguments['emailAddress'];

return sprintf('<img src="http://www.gravatar.com/avatar/%s" />', md5($emailAddress));
} }

 

 

In Fluid:

 

{namespace m=Vendor\Extension\ViewHelpers}

<m:myTest emailAddress="example@nothing.com" />

 

Output:

 

<img src="www.gravatar.com/avatar/234234234234" />

 

Source: