Forum CMS Made Simple FR
Problème d'apostrophe dans un textbox avec un texte d'un module perso - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : Problème d'apostrophe dans un textbox avec un texte d'un module perso (/thread-1710.html)



Problème d'apostrophe dans un textbox avec un texte d'un module perso - heriquet - 17/01/2012

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.2
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~ PHP : 5.2.13-pl0-gentoo
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour,

J'ai un petit problème avec un texte placé dans le fichier lang/ext/fr_FR.php d'un module perso...

Code :
[== Indéfini ==]
$lang['contact_subject_contact']="[WebSite] Recherche d'un bien à louer ou à vendre";

Je dois mettre ce texte dans un input text et les apostrophes ne sont pas converties pour le moment.. Mais tout le reste bien !

Résultat :

Citation :[WebSite] Recherche d'un bien à louer ou à vendre

Mon code PHP :

Code :
[== PHP ==]
$smarty->assign('Subject',  $this->addContactCSSClass($this->CreateInputTextWithLabel($id, 'Subject', isset($params['contact_message_subject'])?html_entity_decode($this->Lang($params['contact_message_subject']), ENT_QUOTES, "UTF-8"):'', 70, 100, '', $this->Lang('contact_subject')), 'Subject', 'InputText', $contact_required, $contact_optionnal));

Est-ce que quelqu'un aurait une idée de l'erreur que je fais pour que ces satanées apostrophes ne soient pas converties normalement ?

Je ne dois pas être le premier a avoir le problème mais mes recherches n'ont rien donné qui résolve le problème !

D'avance merci !

Heriquet


Problème d'apostrophe dans un textbox avec un texte d'un module perso - bess - 17/01/2012

Tu dois avoir un double encodage je parie

' => &amps;#39;

et donc

html_entity_decode($this->Lang($params['contact_message_subject'])

fait son travail

&amps;#39; => '

Regarde en mettant des points d'arrêts dans ton code


Problème d'apostrophe dans un textbox avec un texte d'un module perso - heriquet - 17/01/2012

Je viens de modifier le texte qui apparaît à l'écran.

Je vais encore un peu gratter...


Problème d'apostrophe dans un textbox avec un texte d'un module perso - heriquet - 17/01/2012

Voila ce que j'ai quand je met juste : $this->Lang($params['contact_message_subject'])

[WebSite] Recherche d'un bien à louer ou à vendre
[WebSite] Demande d'informations pour un bien du site Espace habitat

=> double encodage

Avec html_entity_decode :

J'ai ceci dans le textbox : [WebSite] Recherche d'un bien à louer ou à vendre, mais quand je m'envoi une trace par email, l'apostrophe est correctement remplacée.

Je continue à chercher... (ca m'aura couté cher au caractère encodé cette histoire...)


Problème d'apostrophe dans un textbox avec un texte d'un module perso - Jean le Chauve - 17/01/2012

Et l'échapper avec une antislash, tu n'as pas essayé, \' ?


Problème d'apostrophe dans un textbox avec un texte d'un module perso - heriquet - 17/01/2012

Affirmatif !

En fait html_entity_decode fait bien son boulot... puis une fois le texte placé dans l'input text, ca part en vrille ! Comme si cette fonction modifiait également la chaine.

Je continue mes recherches !

Je crains devoir hacker la chaine avec du str_replace ou un truc du genre pour que ca passe... Soit carrément faire ma propre fonction CreateInputTextWithLabel...


Problème d'apostrophe dans un textbox avec un texte d'un module perso - heriquet - 17/01/2012

Bon j'ai trouvé...

Dans le fichier de langues :

Citation :$lang['contact_subject_contact']="[WebSite] Recherche d'un bien à louer ou à vendre";

Dans le fichier "action" qui appelle cette chaîne de caractères :

Code :
[== PHP ==]
$smarty->assign('Subject',  html_entity_decode($this->addContactCSSClass($this->CreateInputTextWithLabel($id, 'Subject', isset($params['contact_message_subject'])?html_entity_decode($this->Lang($params['contact_message_subject']), ENT_QUOTES, 'UTF-8'):'', 70, 100, '', $this->Lang('contact_subject')), 'Subject', 'InputText', $contact_required, $contact_optionnal)));

Qui avait trouvé ? =)

J'ai rien touché à la chaine. Juste placé l'appel à CreateInputTextWithLabel dans un html_entity_decode...

Franchement j'avoue j'ai du faire de l'essai-erreur... Nooon...