PHP-Code:
// src/Helper/UmlautHelper.php
namespace App\Helper;
class UmlautHelper
{
private static $umlautMapping = ['Ä' => 'AE', 'Ö' => 'OE', 'Ü' => 'UE', 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', ' ' => '-'];
public function __invoke(string $buffer): string
{
return strtr($buffer, self::$umlautMapping);
}
}
PHP-Code:
// src/EventListener/ParseTemplateListener.php
namespace App\EventListener;
use App\Helper\UmlautHelper;
use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\Template;
use Terminal42\ServiceAnnotationBundle\ServiceAnnotationInterface;
/**
* @Hook("parseTemplate")
*/
class ParseTemplateListener implements ServiceAnnotationInterface
{
private $umlautHelper
public function __construct(UmlautHelper $umlautHelper)
{
$this->umlautHelper = $umlautHelper;
}
public function __invoke(Template $template): void
{
$umlautHelper = $this->umlautHelper;
$template->convertUmlauts = function (string $buffer) use ($umlautHelper): string {
return $umlautHelper($buffer);
};
}
}
HTML-Code:
<!-- templates/ce_text.html5 -->
<?= $this->convertUmlauts($this->headline) ?>