Twig Filter html_entity_decode integrieren

Wo kann ich diesen Filter aktivieren/integrieren? Finde leider keinen Anhaltspunkt. Möchte das auf der Detailseite in der Beschreibung html entities entfernt werden, die aus meiner WaWi übertragen werden.

Würde mich über Hilfe sehr freuen.

Wahrscheinlich muss du dir einen eigenen Filter schreiben.
Mir hat damals dieser Thread dabei geholfen:

Leider geht der github Link nicht mehr.

new TwigFilter(‚html_entity_decode‘, ‚html_entity_decode‘, [‚is_safe‘ => [‚html‘]]),

Diesen Filter müßte ich in meinem Theme einbinden, dann läuft alles, was ich brauche. Evtl. kann mir hier noch jemand helfen.

Deine service.xml muss du erweitern:

<service id="ThemeNamespace\Twig\Filter\KlassenName" >
            <tag name="twig.extension" />
        </service>

Und dann die Klasse erstellen „ThemeNamespace\Twig\Filter\KlassenName.php“

<?php

namespace ThemeNamespace\Twig\Filter;

use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;

class JsonDecodeFilter extends AbstractExtension
{
    public function getFilters(): array
    {
        return [
            new TwigFilter(‚html_entity_decode‘, ‚html_entity_decode‘, [‚is_safe‘ => [‚html‘]]),
        ];
    }

}

Da es in meinem Theme nicht funktioniert hat, hatte ich das Ganze mal im Core getestet, mit Erfolg. Leider geht es seit dem heutigen Update auf die Version 6.4.8.1 nicht mehr.

Bevor Fragen aufkommen, ich habe die Änderung natürlich wieder im Core gemacht:

ReplaceRecursiveFilter.php

<?php declare(strict_types=1);

namespace Shopware\Core\Framework\Adapter\Twig\Filter;

use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;

class ReplaceRecursiveFilter extends AbstractExtension
{
    public function getFilters(): array
    {
        return [
            new TwigFilter('replace_recursive', [$this, 'replaceRecursive']),
            new TwigFilter('html_entity_decode', 'html_entity_decode', ['is_safe' => ['html']]),
        ];
    }

    public function replaceRecursive(array ...$params): array
    {
        return array_replace_recursive(...$params);
    }
}

Im Pfad: /dev_sw6/vendor/shopware/core/Framework/Adapter/Twig/Filter

Hat sich etwas bei Shopware geändert?

{{ beschreibung|e }}
oder
{{ beschreibung|e('html') }}

funktioniert wohl nicht? Das entspricht etwa dem htmlspecialchars aus php

Du meinst (zum Test) in der description.html.twig

{{ product.translated.description|e }}

Wenn ja, funktioniert das leider nicht.