2010-08-09 3 views
1

Im en utilisant theme_user_profile_form($form) et mettre dans la ligneforme modifier le profil de l'utilisateur Redéfinition

unset ($form['timezone']); 

Mais il ne marche pas supprimer cet élément de la page

J'essaie:

theme_preprocess_user_profile_form 

mais il ne marche pas apparais travailler.

Tout ce que je veux faire est de retirer certaines parties du profil de l'utilisateur sous forme d'édition, comme thème sélectionner, fuseau horaire, etc.

Répondre

2

La façon de le faire, le plus simple est d'utiliser hook_form_alter. Cela doit être dans un module personnalisé et non dans votre thème.

+0

J'essaie unset (forme $ [ « fuseau horaire »]); dans le hook_form_alter et ne supprime pas cet élément de la page dans drupal7. Quelle est mon erreur ??? – cabita

+0

@cabita Peut-être que vous n'avez pas passé le formulaire par référence en utilisant '&' – googletorp

+0

Ceci est mon code dans drupal 7: fonction mymodule_form_alter (& $ form, & $ form_state, $ form_id) { if ($ form_id == 'user_profile_form ') { unset ($ form [' account '] [' timezone ']);} et ne supprime pas cet élément de la page. Merci pour votre réponse et votre aide. – cabita

1

La meilleure chose est que vous devez le faire sous forme de crochet alter, mais faites le unset dans après la construction de la forme à savoir

function example_form_alter(&$form, &$form_state, $form_id) { 
    $form["#after_build"][] = "example"; 
} 

function example($form, &$form_state) {` 
    //dpm($form); /*devel module dependency for looking for the correct object*/ 
    //unset 
    return $form; 
} 
Questions connexes