Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Problème d'apostrophe dans un textbox avec un texte d'un module perso
#1

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.
Répondre
#2

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
Répondre
#3

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.
Répondre
#4

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.
Répondre
#5

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

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.
Répondre
#7

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.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)