IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[Symfony2/twig] Escape html et asset


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Par défaut [Symfony2/twig] Escape html et asset
    Bonjour,

    Je suis bloqué sur un petit problème, j'aimerais afficher une liste d'articles depuis ma base de donnée récupérer avec Doctrine2.
    J'arrive a récupérer la liste des articles, puis grâce a twig, je parvient a les afficher. Toutefois, mes articles étant misent en forme avec du HTML, les balises s'affiche au lieux d'être interprété... Lors de mes recherches sur le net, j'ai découvert qu'il fallait utiliser le filtre "raw".
    Grâce a ce filtre, les balise html ne sont plus échappé, toutefois je n'arrive pas a trouver le moyen d'obtenir l'asset de l'adresse de mes images contenue dans mes articles.

    Savez-vous comment je pourrais faire pour avoir ma liste d'articles qui permet d'être mise en forme avec du html tout en ayant la bonne adresse dynamique pour les images ?

    Merci pour votre aide.

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    par exemple moi je fais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="{{ asset('images/loading.gif') }}"  />
    avec :

    web/images/....


    normalement le mieux est de mettre que le nom du fichier de l'image en base de donnée et non toute son url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="{{ asset('images/' ~ listeObjet.nomFichier   ) }}"  />

    et encore mieux, tu peux mettre 'images' sous forme de paramètre... ainsi si ton dossier images change, tu n'aura qu'à modifier à un seul endroit et non pas dans toutes les balises images

  3. #3
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    bonjour et bienvenue sur le forum,

    si je comprend bien ton html de l'article contient une balise image avec un src qui ne pointe pas vers le path exacte de l'image ?

    si tu peux insérer le bon path de l'image déjà dans la base avec ton formulaire (un wisiwig peut être) ça sera mieux

    sinon faux bricoler un peux ta chaine pour remplacer les src avec leurs équivalents avec le helper asset() (avec une regex )

    de plus un petit bou de code sera toujours mieux

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Par défaut
    Tout d'abord, je souhaitais vous remercier pour l'accueil

    Alors par exemple je met dans la base de donnée dans le champ contenu de la table article cette chaine :
    <h1>exemple</h1><img src="{{ asset('images/exemple.jpg') }} />

    Puis avec le doctrine je récupère le contenu :

    $repository = $this->getDoctrine()->getManager()->getRepository('ProjetWebBundle:Article');
    $article = $repository->find($id);

    return $this->render('ProjetWebBundle:Front:article.html.twig', array('article'=>$article));


    et dans la page article.html.twig je met : {{ article.contenu | raw }}

    donc grâce a ce filtre (raw), les balise html ne sont plus échappé le <h1> par exemple va être interprété normal bien


    mais le problème avec l'asset lorsque je vois le code source avec le firebug je trouve <img src="{{ asset('images/exemple.jpg') }} />
    donc l'asset s'affiche au lieux d'être interprété !! donc l'image ne peut être affichée !!!

  5. #5
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par ZakSdn Voir le message
    je trouve <img src="{{ asset('images/exemple.jpg') }} />
    donc l'asset s'affiche au lieux d'être interprété !! donc l'image ne peut être affichée !!!
    Mais bien sur il va l'afficher tels quel car raw s'en fiche de ta fonction twig et ne elle ne sera pas évaluée!

    Déjà insérer dans la base un code comme cela me semble un peux crade

    faux inserer l'image de cette façon <img src="images/exemple.jpg" /> (la façon standard)

    après à l'aide d'une extension twig tu créer une fonction qui prend en paramêtre le html et une regex qui remplacera le contenu des src avec le resultat de asset("la_valeur_du_src")

    et pourquoi pas insérer un path absolue(http://url-du-site.io/images/xyz.png) et tous le mode sera content

    je ne sais pas autre piste plus facile malheureusement

    Bonne chance

Discussions similaires

  1. [2.x] Symfony2 twig to php
    Par casawia dans le forum Symfony
    Réponses: 1
    Dernier message: 20/06/2014, 09h05
  2. [2.x] [Symfony2] Twig extends
    Par khalid95800 dans le forum Symfony
    Réponses: 1
    Dernier message: 11/02/2014, 13h13
  3. [2.x] Symfony2-Twig Extension:Erreur lors de création d'un test
    Par Jangojacques dans le forum Symfony
    Réponses: 2
    Dernier message: 11/11/2013, 08h53
  4. [2.x] passage de variables symfony2/twig
    Par new_dreams dans le forum Symfony
    Réponses: 2
    Dernier message: 01/05/2012, 11h05
  5. [2.x] [twig] éditeur html
    Par johnbenz dans le forum Symfony
    Réponses: 0
    Dernier message: 20/02/2012, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo