Valeurs par défaut pour un formulaire

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous !

Je viens vers vous aujourd'hui parce qu'il y a un point sur lequel je butte.

Dans le cadre d'un formulaire d'enregistrement sur un site Drupal 7, avec des champs supplémentaires gérés par le module Profile 2, j'essaie de pré-populer certains de ces champs à partir d'un autre module. D'après ce que j'ai saisi, je devrais pouvoir enregistrer des valeurs dans l'entité et ainsi avoir les champs correspondants remplis.
Mais, malgré divers essais et la lecture de ceci, je n'arrive pas à remplir mes champs.

Je suis sûr que mon implémentation de hook_form_user_register_alter() est la dernière à être appelée (ou du moins que l'appel vient après celui de profile2_form_user_register_alter()), et si je vérifie mon formulaire avant de l'afficher, les données semblent s'y trouver, mais il faut croire qu'elles ne sont pas à la bonne place. J'ai aussi vérifié les noms des champs.

Est-ce que quelqu'un a déjà eu ce genre de souci ?

Merci d'avance  :)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
function mytheme_form_user_register_form_alter(&$form, &$form_state) {
  if (!empty($_SESSION['oneall_social_login_session_open']) &&
      !empty($_SESSION['oneall_social_login_social_data'])) {
    $social_data = @unserialize($_SESSION['oneall_social_login_social_data']);

    $firstName = '';
    $lastName = '';

    if (!empty($social_data['response']['request']['status']['code'])
      && $social_data['response']['request']['status']['code'] == 200
    ) {
      $user_data = $social_data['response']['result']['data']['user'];

      $firstName = mytheme_first_name_from_social($user_data);
      $lastName = mytheme_last_name_from_social($user_data);
    }
    // Retrieving the Profile entity containing data
    $entity = &$form['profile_main']['#entity'];

    $entity->field_nom[LANGUAGE_NONE][0]['value'] = $firstName;
    $entity->field_prenom[LANGUAGE_NONE][0]['value'] = $lastName;
    // Ensuring the user name contains no space but dots instead
    $form['account']['name']['#default_value'] = str_replace(
      ' ',
      '.',
      $form['account']['name']['#default_value']
    );
  }
}

Ce que j'ai tenté suite à la lecture du lien mentionné plus haut

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -0
Auteur du sujet

Il n'y a pas de spécialiste Drupal ici ?

Dommage…

Edit

C'est top de mettre des -1 sans même pouvoir répondre à la question… C'est dans la V1.3 qu'on aura droit à ça

En attendant, j'ai posté mon message sur sur drupalfr

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+0 -1
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte