[résolu] Problème avec un form_alter

Catégories:

Bonjour à tous,

j’ai un problème pour faire un form_alter sur le formulaire d’inscription.
J’utilise le module «profile» de Drupal pour gérer les champs des utilisateurs.

Avec profile j’ai défini une catégorie «Informations complémentaires» que je souhaiterai modifier avec un form_alter.
Problème ça ne passe pas à cause des accents :(
J’ai essayé ceci :

<?php
unset($form['Informations%20compl%c3%a9mentaires']);
      unset(
$form['Informations compl%c3%a9mentaires']);
      unset(
$form[urldecode('Informations complémentaires')]);
      unset(
$form['Informations complémentaires']);
     
     
$form['Informations complémentaires'] = null;
     
$form['Informations%20compl%c3%a9mentaires'] = null;
     
$form['Informations compl%c3%a9mentaires'] = null;
     
$form[urldecode('Informations complémentaires')] = null;
?>

ça ne marche pas :(
Pourtant j’ai une autre catégorie «newsletter» et la :

<?php
unset($form['Newsletter']);
?>

ça marche ! Donc le problème vient bien de l’accent.

Si je fais :

<?php
watchdog
("form", "<pre>".print_r($form, 1)."</pre>");
?>

J’ai bien :

<?php
 
Message   

Array
(
    [
#uid] =>
   
[Informations complémentaires] => Array
        (
            [
#type] => fieldset
           
[#title] => Informations complémentaires
           
[#weight] => 1
...
?>

Est-ce que quelqu’un à une solution à proposer ?

#

As-tu essayé avec les caractères en html à la place ?
&nbsp; pour un espace.
&eacute; pour un accent aigüe.

Si ça marche toujours pas faudra voir avec une fonction php qui traite les chaines de caractères avec accents.

#

Merci de ta réponse.

ça ne marche pas non plus avec les caractères HTML.

Quand tu parle d’une fonction PHP qui ‘traite’ les chaines de caractères c’est à dire ?

#

Ce type de fonction :
http://fr3.php.net/utf8-decode et la version encode aussi.
http://www.php.net/manual/fr/function.htmlentities.php

Tu peux encoder en utf-8 pour être sûr d’avoir de l’utf-8 par exemple.

Ceci dit, il se peut que ce qui coince dans ton script soit lié au nom de tableau utilisé (array).
Fais un print-r sur neweletter (le form pour lequel ça marche) afin de voir comment il est constitué et si c’est la même chose que informations complémentaires.

#

En faite il suffisait que je mette mon éditeur de texte en utf-8 …

#

Egalement bien penser à mettre utf8 SANS BOM, la version utf8 de base proposant souvent un petit caractère invisible qui vient de glisser en haut du texte pour indiquer son encodage (je crois). Ce caractère peut avoir moults effets indésirables et n’apparait pas en utf8 sans bom.

Syndiquer le contenu