Jump to content

Message client avec caractères spéciaux et entités HTML


Recommended Posts

Bonjour

J'utilise Prestashop 1.7.2.4. Ce n'est pas systématique mais j'ai certains messages de client qui arrivent avec les caractères spéciaux (é,à,ç,è, etc.) qui sont affichés avec leur entité HTML (&agrave, par exemple). Je n'arrive pas à reproduire ce comportement.

Par exemple, voici ce que j'ai sur une commande, dans la fenêtre "Messages". J'ai le même résultat en cliquant sur le message via les interfaces du SAV.

image.png.be43554210f9c7ba4cb5092bc8941368.png

Ce qui est surprenant c'est que dans les listes (SAV par exemple) tout est OK :

image.thumb.png.f4f3b1cd0110ce7006e980c19ce32f51.png

 

Comment puis-je résoudre ce problème ?

  • Like 1
Link to comment
Share on other sites

  • 6 months later...
On 20/02/2018 at 4:05 PM, AW73 said:

Bonjour

J'utilise Prestashop 1.7.2.4. Ce n'est pas systématique mais j'ai certains messages de client qui arrivent avec les caractères spéciaux (é,à,ç,è, etc.) qui sont affichés avec leur entité HTML (&agrave, par exemple). Je n'arrive pas à reproduire ce comportement.

Par exemple, voici ce que j'ai sur une commande, dans la fenêtre "Messages". J'ai le même résultat en cliquant sur le message via les interfaces du SAV.

image.png.be43554210f9c7ba4cb5092bc8941368.png

Ce qui est surprenant c'est que dans les listes (SAV par exemple) tout est OK :

image.thumb.png.f4f3b1cd0110ce7006e980c19ce32f51.png

 

Comment puis-je résoudre ce problème ?

J'ai ce même problème avec un Prestashop 1.7.3.2

Il se produit lorsqu'un client laisse un message dans le processus de commande via le champs prévu à cet effet.

Il s'agit évidemment d'un problème d'encodage UTF-8 mais je ne sais pas le corriger.

Quelqu'un a -t-il une solution?

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

Suscribe...

J'ai été regarder dans la DB (table ps_customer_message) et de temps en temps le message est encodé et parfois pas.

Exemples (ce sont des copiés collés de la colonne "message"):

"Bonjour, pour notre société nous cherchons une ..." -> les "é" ne sont pas encodés

"quel délai à partir du jour de la co..." -> le "é" et le "à" ont été encodés

Link to comment
Share on other sites

  • 3 weeks later...

Je me joins à vous avec le même problème... Dans le Backoffice (1ère image), le résumé du message est OK, mais quand on l'ouvre il n'est pas codé en UTF-8

image.png.9b7f4317a3c3fd847da863c4f9c8cab9.png

image.png.680c2499ada1f9cc0b3cad0f63c516c5.png

Je suis sûr qu'un génie de passage va nous trouver la solution... 🧐

Merci d'avance !

Link to comment
Share on other sites

Les messages du SAV dans le backoffice ne sont pas codés correctement

Dans Prestashop 1.7.(4.2) Vous allez devoir modifier un tout petit template.

Celui-ci se trouve dans /backoffice/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

 
<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

 
<p class="message-item-text">{$message.message nofilter}</p>

Enregistrez... , c’est réglé !

Edited by BGUERBET (see edit history)
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Quote
On 12/5/2018 at 7:13 PM, BGUERBET said:

Les messages du SAV dans le backoffice ne sont pas codés correctement

Dans Prestashop 1.7.(4.2) Vous allez devoir modifier un tout petit template.

Celui-ci se trouve dans /backoffice/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

 
<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

 
<p class="message-item-text">{$message.message nofilter}</p>

Enregistrez... , c’est réglé !

Salut à tous

Merci BGUERBET pour cette solution

Je suis sur la même version que vous et je viens d'appliquer ces modifications. Mais j'ai toujours le même souci de codage sur les nouveaux messages qui arrivent...

Avez-vous une idée?

Miran

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...
On 12/5/2018 at 7:13 PM, BGUERBET said:

Les messages du SAV dans le backoffice ne sont pas codés correctement

Dans Prestashop 1.7.(4.2) Vous allez devoir modifier un tout petit template.

Celui-ci se trouve dans /backoffice/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

 
<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

 
<p class="message-item-text">{$message.message nofilter}</p>

Enregistrez... , c’est réglé !

Pour ma part, merci BGUERBET, cela fonctionne sur les nouveaux messages !

Link to comment
Share on other sites

Bonjour,

au cas où cela puisse vous aider. J'ai réglé le souci sur un prestashop 1.6 en modifiant les fichiers suivants

themes\XXX\order-detail.tpl

et

adm\themes\default\template\controllers\customer_threads\helpers\view\message.tpl

En modifiant l'affichage des messages comme ceci :

{$message.message|escape:'html':'UTF-8'|nl2br}

modifié en :

{$message.message|unescape:'html':'UTF-8'|nl2br}

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...

Bonjour,

J'avais le même soucis à 2 endroits (PS 1.7.3.3):

Dans le récap de la commande que j'ai réglé via  /backoffice/themes/default/template/controllers/orders/helpers/view/view.tpl Ligne 807 :

Remplacer

 <p class="message-item-text">
    {$message['message']|escape:'html':'UTF-8'|nl2br}
 </p>

Par :

<p class="message-item-text">
  {$message['message']|unescape:'html':'UTF-8'|nl2br}
</p>

(fonctionne aussi avec nofilter)

Dans la partie SAV via la solution de BGUERBET

On 12/5/2018 at 7:13 PM, BGUERBET said:

Les messages du SAV dans le backoffice ne sont pas codés correctement

Dans Prestashop 1.7.(4.2) Vous allez devoir modifier un tout petit template.

Celui-ci se trouve dans /backoffice/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

 
<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

 
<p class="message-item-text">{$message.message nofilter}</p>

Enregistrez... , c’est réglé !

En espérant que ça puisse en aider certains !

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

IL est vrai que la, comment expliquer que c'est un utilisateur qui doivent se creuser les méninges pour trouver une solution en quelques jours sur un bug existant depuis les débuts de la 1.7 et donc plusieurs années maintenant.

J'ai quand même l'impression que maintenant, les équipes de prestashop sont dans leurs petites bulles commerciales, profitant financièrement d'une version absolument pas finalisée, grâce aux tonnes de modules payants (dont une grande partie étaient au préalable totalement gratuits) sur lesquelles ils taxent sans même vérifier qu'ils sont optimisés (vu les problèmes générés après ceux que j'ai installé, je n'ai plus de doutes).

 

De plus, cette méprisante habitude de ne plus mettre un pied sur ce forum est franchement symptomatique.

Enfin bref.. Merci BGUERBET pour ces modifs de codes.

  • Like 3
Link to comment
Share on other sites

  • 2 months later...

Merci ce code fonctionne bien mais ne faudrait-il pas l'ajouter dans un override ?

J'ai ajouté les fichiers modifiés dans : /override/controllers/admin/template/controllers/customer_threads/helpers/view/message.tpl ainsi que dans /override/controllers/admin/template/controllers/orders/helpers/view/view.tpl

mais aucun n'est pris en compte. Y a t-il une autre manière de faire ?

Merci pour votre aide

 

Link to comment
Share on other sites

  • 3 months later...

Bonjour à tous, je me retrouve avec le meme probleme sur la version 1.7.6.2. Et ne trouve pas le fichier dont vous parlez ?

Je cherche et cherche mais... !! Auriez vous le chemin exact ? Merci a vous et trés bonne fin d'année.

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

Bonjour à tous,

Les solutions proposées ici reposent principalement sur la modification du template, pour afficher correctement le message mal encodé.
Je vous propose la mienne, qui repose sur un override, et corrige directement l'encodage du message lors de son enregistrement.

/override/classes/CustomerMessage.php
<?php

class CustomerMessage extends CustomerMessageCore
{
    public function add($auto_date = true, $null_values = false)
    {
        $this->message = strip_tags(html_entity_decode($this->message));
        return parent::add($auto_date, $null_values);
    }

    public function save($null_values = false, $auto_date = true)
    {
        $this->message = strip_tags(html_entity_decode($this->message));
        return parent::save($null_values, $auto_date);
    }
}

Cela enlève les entités HTML avant d'enregistrer le message, et s'assure que cela n'a fait apparaître aucune balise HTML non désirée.

 

En espérant avoir pu aider certains 🙂

-- Arnaud Dohogne (AD-DEV)

Link to comment
Share on other sites

Version 1.7.5

Malheureusement, j'ai toujours un mauvais affichage dans la partie "Service Client" ; en sélectionnant le message du client. ;-((

C'est plutôt lors du traitement de l'affichage qu'il devrait y avoir un override, mais je ne sais pas quel php est chargé à ce moment-là.

Link to comment
Share on other sites

40 minutes ago, Phanie said:

Version 1.7.5

Malheureusement, j'ai toujours un mauvais affichage dans la partie "Service Client" ; en sélectionnant le message du client. ;-((

C'est plutôt lors du traitement de l'affichage qu'il devrait y avoir un override, mais je ne sais pas quel php est chargé à ce moment-là.

Effectivement, cela n'enlève pas les entités HTML dans les messages existants...

J'ai créé un petit module, que vous pouvez installer sur votre boutique :

  • Il installera l'override pour corriger automatiquement les nouveaux messages (cf. mon précédent post)
  • Et il corrigera tous les messages existants dans la base de données
Quote

⚠️ ATTENTION : N'oubliez pas de faire un backup de votre base de données avant l'installation !
Je ne pourrai en aucun cas être tenu responsable si un problème survient !

Cordialement,
-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip

  • Thanks 1
Link to comment
Share on other sites

Bonjour,

J'ai ajouté le fichier CustomerMessage.php qui résout bien le problème des accents.
Par contre, les apostrophes restent en défaut.
Voici ci dessous ma phrase type telle qu'elle m'est retranscrite: 

Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à côté de l&#039;alcôve ovoïde, où les bûches se consument dans l&#039;âtre, ce qui lui permet de penser à la caenogénèse de l&#039;être dont il est question dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui, pense-t-il, diminue çà et là la qualité de son œuvre.

Une solution??

Merci pour l'aide apportée passée et à venir.

CC

Link to comment
Share on other sites

On 1/29/2020 at 4:49 PM, AD-DEV said:

Effectivement, cela n'enlève pas les entités HTML dans les messages existants...

J'ai créé un petit module, que vous pouvez installer sur votre boutique :

  • Il installera l'override pour corriger automatiquement les nouveaux messages (cf. mon précédent post)
  • Et il corrigera tous les messages existants dans la base de données

Cordialement,
-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip 5.63 kB · 2 downloads

Je vais prendre le temps de regarder. mais le test que j'avais effectué était bien avec un nouveau message après la mise en place de votre override...

Merci beaucoup

Stéphanie.

Link to comment
Share on other sites

On 1/29/2020 at 6:46 PM, Cricridam said:

Bonjour,

J'ai ajouté le fichier CustomerMessage.php qui résout bien le problème des accents.
Par contre, les apostrophes restent en défaut.
Voici ci dessous ma phrase type telle qu'elle m'est retranscrite: 

Portez ce vieux whisky au juge blond qui fume sur son île intérieure, à côté de l&#039;alcôve ovoïde, où les bûches se consument dans l&#039;âtre, ce qui lui permet de penser à la caenogénèse de l&#039;être dont il est question dans la cause ambiguë entendue à Moÿ, dans un capharnaüm qui, pense-t-il, diminue çà et là la qualité de son œuvre.

Une solution??

Merci pour l'aide apportée passée et à venir.

CC

Bonjour,

Merci d'avoir pointé ce bug, je n'avais pas remarqué.
Voici le module corrigé 🙂

Le mieux est de le désinstaller et réinstaller complètement, afin que l'override se mette bien à jour (j'ai testé un simple upgrade mais ca n'a pas fonctionné).
RAPPEL : N'oubliez pas de faire un backup de votre base de données avant l'installation !

Merci,
Bien à vous,

-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip

Edited by AD-DEV (see edit history)
  • Thanks 2
Link to comment
Share on other sites

  • 1 month later...
On 2/6/2020 at 11:31 AM, AD-DEV said:

Bonjour,

Merci d'avoir pointé ce bug, je n'avais pas remarqué.
Voici le module corrigé 🙂

Le mieux est de le désinstaller et réinstaller complètement, afin que l'override se mette bien à jour (j'ai testé un simple upgrade mais ca n'a pas fonctionné).
RAPPEL : N'oubliez pas de faire un backup de votre base de données avant l'installation !

Merci,
Bien à vous,

-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip 5.68 kB · 6 downloads

Bonjour,

j'ai le même problème avec le mail de test envoyé depuis "Paramètres avancés/Email/ envoyez un email test, le message reçu est le suivant :

Ceci est un e-mail test, votre serveur est pr&ecirc;t pour envoyer des e-mails.

le ê n'est pas reconnu

merci,

cordialement

Philippe

Link to comment
Share on other sites

  • 2 months later...

sur la 1.6 il y avait un fichier dans le theme utilisé / mail / index (plusieurs post à ce sujet)

il y a des titres dedans, et certain ont des caractères spéciaux.

Donc si vous modifiez uniquement dans les traduction, ca ne fonctionne pas. Il faut vérifier le fichier dans le FTP.

Et peut-être que le fichier n'est pas au bon format.

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...
  • 6 months later...
On 2/6/2020 at 5:31 AM, AD-DEV said:

Bonjour,

Merci d'avoir pointé ce bug, je n'avais pas remarqué.
Voici le module corrigé 🙂

Le mieux est de le désinstaller et réinstaller complètement, afin que l'override se mette bien à jour (j'ai testé un simple upgrade mais ca n'a pas fonctionné).
RAPPEL : N'oubliez pas de faire un backup de votre base de données avant l'installation !

Merci,
Bien à vous,

-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip 5.68 kB · 71 downloads

Sur Prestashop 1.7.6.5 ça fonctionne! Merci !

Link to comment
Share on other sites

  • 2 weeks later...

Merci a vous pour votre aide!

Je suis nouveau par ici et je vois que l'on peut trouver a peu prêt tout ce qu'on cherche par ici 😉

J'avais le même problème qui à été réglé (v.1.7.7.1) sauf pour le message de test du menu de configuration, mais bon c'est pas trop grave.

Link to comment
Share on other sites

Bonjour, 

Cette méthode fonctionne bien : 

Celui-ci se trouve dans /admin/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

<p class="message-item-text">{$message.message nofilter}</p>

 

Mais j'ai toujours les caractères spéciaux dans la timeline en dessous.

Une idée de comment corriger ce message SAV aussi ?

 

Merci

  • Like 2
Link to comment
Share on other sites

  • 4 weeks later...
On 2/6/2020 at 5:31 AM, AD-DEV said:

Bonjour,

Merci d'avoir pointé ce bug, je n'avais pas remarqué.
Voici le module corrigé 🙂

Le mieux est de le désinstaller et réinstaller complètement, afin que l'override se mette bien à jour (j'ai testé un simple upgrade mais ca n'a pas fonctionné).
RAPPEL : N'oubliez pas de faire un backup de votre base de données avant l'installation !

Merci,
Bien à vous,

-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip 5.68 kB · 86 downloads

Bonjour,

J'ai installé le plugin, tout fonctionne bien quand le client rentre son message et ne fait aucune autre manipulation en arrière. Je m'explique:

J'ai plusieurs clients qui se sont plaignent donc j'ai vérifié et effectivement si le client rentre le message et revient en arrière sur la section adresse, quand il va revenir à la section du message alors ces mots vont contenir du code HTML.

Auriez-vous une solution ?

 

Link to comment
Share on other sites

On 2/12/2021 at 3:38 PM, Cocomo said:

Bonjour, 

Cette méthode fonctionne bien : 

Celui-ci se trouve dans /admin/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

<p class="message-item-text">{$message.message nofilter}</p>

 

Mais j'ai toujours les caractères spéciaux dans la timeline en dessous.

Une idée de comment corriger ce message SAV aussi ?

 

Merci

As-tu trouvé une solution?

Link to comment
Share on other sites

  • 2 weeks later...
On 2/6/2020 at 5:31 AM, AD-DEV said:

Bonjour,

Merci d'avoir pointé ce bug, je n'avais pas remarqué.
Voici le module corrigé 🙂

Le mieux est de le désinstaller et réinstaller complètement, afin que l'override se mette bien à jour (j'ai testé un simple upgrade mais ca n'a pas fonctionné).
RAPPEL : N'oubliez pas de faire un backup de votre base de données avant l'installation !

Merci,
Bien à vous,

-- Arnaud Dohogne (AD-DEV)

addevhtmlentities.zip 5.68 kB · 86 downloads

Je fais mon message à nouveau car aucun suivi... le module fonctionne sauf que si le client revient en arrière sur la section adresse par exemple et revient sur l'étape livraison. Le HTML s'affiche.

Pouvez-vous SVP me donner une piste de solution?

Link to comment
Share on other sites

  • 2 months later...
Le 12/02/2021 à 9:38 PM, Cocomo a dit :

Bonjour, 

Cette méthode fonctionne bien : 

Celui-ci se trouve dans /admin/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Repérez en fin de fichier la ligne suivante :

<p class="message-item-text">{$message.message|escape:'html':'UTF-8'|nl2br}</p>

Et remplacez-la par ceci :

<p class="message-item-text">{$message.message nofilter}</p>

 

Mais j'ai toujours les caractères spéciaux dans la timeline en dessous.

Une idée de comment corriger ce message SAV aussi ?

 

Merci

Pour la timeline-> meme modif dans le fichier timeline_item.tpl ligne 33:

 

<span>{$timeline_item.content|unescape:'html':'UTF-8'|nl2br}</span>

 

Link to comment
Share on other sites

  • 6 months later...
  • 3 months later...
On 5/10/2019 at 10:59 AM, ValentinSV said:

Bonjour,

J'avais le même soucis à 2 endroits (PS 1.7.3.3):

Dans le récap de la commande que j'ai réglé via  /backoffice/themes/default/template/controllers/orders/helpers/view/view.tpl Ligne 807 :

Remplacer

 <p class="message-item-text">
    {$message['message']|escape:'html':'UTF-8'|nl2br}
 </p>

Par :

<p class="message-item-text">
  {$message['message']|unescape:'html':'UTF-8'|nl2br}
</p>

(fonctionne aussi avec nofilter)

Dans la partie SAV via la solution de BGUERBET

En espérant que ça puisse en aider certains !

Fonctionne parfaitement pour moi/ Merci!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...