Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
17/01/2012, 13:42:34
(Modification du message : 17/01/2012, 15:40:45 par heriquet.)
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
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 10,864
Sujets : 164
Inscription : Dec 2008
Réputation :
0
Tu dois avoir un double encodage je parie
' => &s;#39;
et donc
html_entity_decode($this->Lang($params['contact_message_subject'])
fait son travail
&s;#39; => '
Regarde en mettant des points d'arrêts dans ton code
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
Je viens de modifier le texte qui apparaît à l'écran.
Je vais encore un peu gratter...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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...)
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 8,242
Sujets : 58
Inscription : Dec 2007
Réputation :
0
Et l'échapper avec une antislash, tu n'as pas essayé, \' ?
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Messages : 1,975
Sujets : 81
Inscription : Jan 2009
Réputation :
0
17/01/2012, 23:51:06
(Modification du message : 17/01/2012, 23:52:20 par heriquet.)
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
|