2009-12-14 4 views
1

Lors de la connexion d'un utilisateur, l'utilisateur sera redirigé vers une page de profil utilisateur, dans laquelle un champ Mon compte est défini.Modifier les champs de formulaire user_profile_form order

Le champ contient 2 champs, "Nom d'utilisateur:", "Adresse email:". ces 2 champs sont générés par drupal.

champ 2 contenu dans un formulaire qui a un ID ("user_profile_form"). Je veux changer l'ordre de ces 2 champs.

J'ai essayé d'intercepter 'user_profile_form', à l'intérieur de hook_form_alter. code comme suit: $form['account']['name']['#weight'] = 1;

mais qui n'a pas de succès, n'a même pas drupal rendu le champ « nom », donc pas le nom d'utilisateur: a montré sur le navigateur.

Répondre

2

Ce que vous avez fait est absolument correct, et probablement travaillé. Vous pouvez changer le poids des champs avec la méthode décrite ci-dessus.

Le champ du nom d'utilisateur n'est pas toujours rendu. La raison en est qu'une participation est requise: change own username. Si cette perm n'est pas définie, vous ne serez pas autorisé à modifier votre nom d'utilisateur et le champ ne sera pas affiché.

Informations sur le débogage.
Votre information seule n'est pas assez pour déboguer. D'après ce que vous décrivez, vous faites la bonne chose, mais d'autres modules pourraient rendre les choses un peu difficiles pour vous. Le module devel est assez bon quand il s'agit de débogage, ti définit deux fonctions que j'utilise beaucoup lors du débogage:

  • dpm() imprime assez la variable dans la zone de message en utilisant Krumo.
  • dd() Imprime/enregistre une variable dans un fichier journal. Utile lorsque vous ne pouvez pas voir les messages sur l'écran.

Je vous suggère de regarder la variable $form avant et après l'avoir modifiée.

choses qui pourraient faire aller mal:

  • Est-ce que vous vous souvenez de passer la variable $form par référence en utilisant la notation &?
  • Un autre module modifie-t-il votre forme après vous?
  • Vérifiez-vous l'ID de formulaire correct, de sorte que vous modifiez le formulaire correct?

Voici quelques conseils, avant d'apporter plus d'informations, tout ce que je peux faire est de deviner ce que votre problème peut être exactement. J'ai fait quelque chose comme ça il y a quelques jours, donc je sais que ce que vous décrivez ne devrait pas poser de problème.

+0

Je travaillais sous le compte d'administrateur – anru

+0

@googletorp - Vous voulez probablement corriger la faute de frappe dans le "vous souvenez-vous de passer ...": vous avez tapé $ au lieu de &! :) A un autre niveau: bonne astuce sur dpm et dd. J'utilise normalement drupalforfirebug qui offre des fonctionnalités similaires mais qui effectue automatiquement des vidages dans la zone firebug, comme des tableaux de formulaires, des objets utilisateur, etc ... il a une fonction similaire à celle des variables supplémentaires. +1 – mac

Questions connexes