wake-up-neo.com

twig striptags und html-Sonderzeichen

Ich verwende twig, um eine Ansicht zu rendern, und ich verwende den striptags-Filter, um html-Tags zu entfernen. __ Html-Sonderzeichen werden jetzt jedoch als Text dargestellt, da das gesamte Element von "" ..__ umgeben ist. Wie kann ich das tun? Sonderzeichen entfernen oder rendern, während noch die Funktion Striptags verwendet wird?

Beispiel:

{{ organization.content|striptags(" >")|truncate(200, '...') }}

oder

{{ organization.content|striptags|truncate(200, '...') }}

Ausgabe:

"QUI SOMMES NOUS ? > NOS LOCAUXNOS LOCAUXDepuis 1995,  Ce lieu chargé d’histoire et de tradition s’inscrit dans les valeurs"
14
Sébastien

Wenn es jemand anderem helfen könnte, hier ist meine Lösung

{{ organization.content|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES') }}

Sie können auch einen Trimmfilter hinzufügen, um Leerzeichen davor und danach zu entfernen. Anschließend kürzen oder schneiden Sie den Inhalt Ihrer Organisation

BEARBEITEN November 2017

Wenn Sie die Trennlinien "\ n" mit einem Kürzungszeichen kombinieren möchten, können Sie dies tun

{{ organization.content|striptags|truncate(140, true, '...')|raw|nl2br }}

34
Elyass

Ich hatte ein ähnliches Problem, das funktionierte für mich:

{{ variable |convert_encoding('UTF-8', 'HTML-ENTITIES') | raw }}
5
Jon

Arf, ich habe es endlich gefunden:

Ich verwende einen benutzerdefinierten Zweigfilter, der nur eine PHP-Funktion anwendet:

<span>{{ organization.shortDescription ?: php('html_entity_decode',organization.content|striptags|truncate(200, '...')) }}</span>

Jetzt wird es richtig dargestellt

Meine PHP-Erweiterung:

<?php

namespace AppBundle\Extension;

class phpExtension extends \Twig_Extension
{

    public function getFunctions()
    {
        return array(
            new \Twig_SimpleFunction('php', array($this, 'getPhp')),
        );
    }

    public function getPhp($function, $variable)
    {
        return $function($variable);
    }

    public function getName()
    {
        return 'php_extension';
    }
}
3
Sébastien

Ich habe unter anderem folgende Antworten ausprobiert:

{{ organization.content|striptags|truncate(200, true) }}
{{ organization.content|raw|striptags|truncate(200, true) }}
{{ organization.content|striptags|raw|truncate(200, true) }}
etc.

Und bekam immer noch seltsame Charaktere in der endgültigen Form. Was mir geholfen hat, ist, den raw-Filter am Ende aller Operationen zu setzen, d. H.

{{ organization.content|striptags|truncate(200, '...')|raw }}
2
Krzysztof Trzos

Ich hatte das gleiche Problem, ich habe es mit dieser Funktion unter Verwendung von strip_tags gelöst.

<?php

namespace AppBundle\Extension;

class filterHtmlExtension extends \Twig_Extension
{

    public function getFunctions()
    {
        return array(
            new \Twig_SimpleFunction('stripHtmlTags', array($this, 'stripHtmlTags')),
        );
    }


    public function stripHtmlTags($value)
    {

        $value_displayed = strip_tags($value);


        return $value_displayed ;
    }

    public function getName()
    {
       return 'filter_html_extension';
    }
}
0
goto