Jump to content
AW73

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 ?

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

J'ai le même souci, uniquement quand les messages sont envoyés depuis le champ "Message" de finalisation de la commande.

Avez-vous pu trouver une solution ? Merci à tous !

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

Apparemment ça se passe par là: AdminCustomerThreadsController.php (/backoffice/controllers/admin/AdminCustomerThreadsController.php) où bien là... /admin/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Edited by BGUERBET (see edit history)

Share this post


Link to post
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)

Share this post


Link to post
Share on other sites

Bonjour, 

On ne doit pas travailler sur la même chose ; ) Je n'ai déjà plus ces lignes de code dans xxxxxxxxxx/themes/default/template/controllers/customer_threads/helpers/view/message.pl

Mais le pb persiste ... depuis ... 1.4 au moins 

Share this post


Link to post
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

 

Share this post


Link to post
Share on other sites
On 12/10/2018 at 12:02 PM, lemiran said:

 

up?

C'est dingue que Prestashop ne règle pas ce pb récurent depuis des lustres!!!

Share this post


Link to post
Share on other sites
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 !

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Bonjour.

J'ai le même soucis et testé les 2 solutions.

Aucune ne fonctionne pour moi

Version 1.7.5.0

 

Share this post


Link to post
Share on other sites

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 1

Share this post


Link to post
Share on other sites

Bravo et merci. Ca fonctionne...
Un problème de moins sur 1.7

Share this post


Link to post
Share on other sites

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 1

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Bonjour,

adminXXX/themes/default/template/controllers/orders/helpers/view/view.tpl

adminXXX/themes/default/template/controllers/customer_threads/helpers/view/message.tpl 

 

  • Like 1

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
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à.

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

Bonjour, merci a vous our cette aide. Pour moi tout fonctionne bien... 🙂 

 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Posted (edited)

Bonjour,

Version 1.7.6.2 

C'est agaçant ces trucs qui viennent sans raison..., Prestashop doit s'user à l'usage... je ne vois que cela ;)

Je vais tester le module (SAVBDD) 

 

 

Edited by PascalB67 (see edit history)

Share this post


Link to post
Share on other sites

Le module corrige les nouveaux messages, pas les anciens. 

C'est déjà ça. 

Merci ! 

Share this post


Link to post
Share on other sites

Bonjour

message pour Arnaud Dohogne

votre module est pour quelle version de Presta ??

merci

Natacha

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More