Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2014-11-27T10:14:41+01:00Les derniers messages parus sur le forum de Zeste de Savoir.Valeurs par défaut pour un formulaire, message #313682014-11-27T10:14:41+01:00elyppire/@elyppirehttps://zestedesavoir.com/forums/sujet/1733/valeurs-par-defaut-pour-un-formulaire/?page=1#p31368<p>Non, désolé <img alt=":(" src="/static/smileys/triste.png"> (Joomla! un peu)</p>Valeurs par défaut pour un formulaire, message #312852014-11-26T17:53:22+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/1733/valeurs-par-defaut-pour-un-formulaire/?page=1#p31285<p>Il n'y a pas de spécialiste Drupal ici ?</p>
<p>Dommage…</p>
<h4>Edit</h4>
<p>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 href="http:////github.com/zestedesavoir/zds-site/issues/1729">ça</a></p>
<p>En attendant, j'ai posté mon message sur sur drupalfr</p>Valeurs par défaut pour un formulaire, message #304102014-11-21T13:49:45+01:00Ymox/@Ymoxhttps://zestedesavoir.com/forums/sujet/1733/valeurs-par-defaut-pour-un-formulaire/?page=1#p30410<p>Bonjour à tous !</p>
<p>Je viens vers vous aujourd'hui parce qu'il y a un point sur lequel je butte.</p>
<p>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.<br>
Mais, malgré divers essais et la lecture de <a href="https://www.drupal.org/node/1377614">ceci</a>, je n'arrive pas à remplir mes champs.</p>
<p>Je suis sûr que mon implémentation de <code>hook_form_user_register_alter()</code> est la dernière à être appelée (ou du moins que l'appel vient après celui de <code>profile2_form_user_register_alter()</code>), 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.</p>
<p>Est-ce que quelqu'un a déjà eu ce genre de souci ?</p>
<p>Merci d'avance <img alt=":)" src="/static/smileys/smile.png"></p>
<figure><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 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</pre></div></td><td class="code"><div class="codehilite"><pre><span class="cp"><?php</span>
<span class="k">function</span> <span class="nf">mytheme_form_user_register_form_alter</span><span class="p">(</span><span class="o">&</span><span class="nv">$form</span><span class="p">,</span> <span class="o">&</span><span class="nv">$form_state</span><span class="p">)</span> <span class="p">{</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">empty</span><span class="p">(</span><span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">'oneall_social_login_session_open'</span><span class="p">])</span> <span class="o">&&</span>
<span class="o">!</span><span class="k">empty</span><span class="p">(</span><span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">'oneall_social_login_social_data'</span><span class="p">]))</span> <span class="p">{</span>
<span class="nv">$social_data</span> <span class="o">=</span> <span class="o">@</span><span class="nb">unserialize</span><span class="p">(</span><span class="nv">$_SESSION</span><span class="p">[</span><span class="s1">'oneall_social_login_social_data'</span><span class="p">]);</span>
<span class="nv">$firstName</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
<span class="nv">$lastName</span> <span class="o">=</span> <span class="s1">''</span><span class="p">;</span>
<span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="k">empty</span><span class="p">(</span><span class="nv">$social_data</span><span class="p">[</span><span class="s1">'response'</span><span class="p">][</span><span class="s1">'request'</span><span class="p">][</span><span class="s1">'status'</span><span class="p">][</span><span class="s1">'code'</span><span class="p">])</span>
<span class="o">&&</span> <span class="nv">$social_data</span><span class="p">[</span><span class="s1">'response'</span><span class="p">][</span><span class="s1">'request'</span><span class="p">][</span><span class="s1">'status'</span><span class="p">][</span><span class="s1">'code'</span><span class="p">]</span> <span class="o">==</span> <span class="mi">200</span>
<span class="p">)</span> <span class="p">{</span>
<span class="nv">$user_data</span> <span class="o">=</span> <span class="nv">$social_data</span><span class="p">[</span><span class="s1">'response'</span><span class="p">][</span><span class="s1">'result'</span><span class="p">][</span><span class="s1">'data'</span><span class="p">][</span><span class="s1">'user'</span><span class="p">];</span>
<span class="nv">$firstName</span> <span class="o">=</span> <span class="nx">mytheme_first_name_from_social</span><span class="p">(</span><span class="nv">$user_data</span><span class="p">);</span>
<span class="nv">$lastName</span> <span class="o">=</span> <span class="nx">mytheme_last_name_from_social</span><span class="p">(</span><span class="nv">$user_data</span><span class="p">);</span>
<span class="p">}</span>
<span class="c1">// Retrieving the Profile entity containing data</span>
<span class="nv">$entity</span> <span class="o">=</span> <span class="o">&</span><span class="nv">$form</span><span class="p">[</span><span class="s1">'profile_main'</span><span class="p">][</span><span class="s1">'#entity'</span><span class="p">];</span>
<span class="hll"> <span class="nv">$entity</span><span class="o">-></span><span class="na">field_nom</span><span class="p">[</span><span class="nx">LANGUAGE_NONE</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$firstName</span><span class="p">;</span>
</span><span class="hll"> <span class="nv">$entity</span><span class="o">-></span><span class="na">field_prenom</span><span class="p">[</span><span class="nx">LANGUAGE_NONE</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'value'</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$lastName</span><span class="p">;</span>
</span> <span class="c1">// Ensuring the user name contains no space but dots instead</span>
<span class="nv">$form</span><span class="p">[</span><span class="s1">'account'</span><span class="p">][</span><span class="s1">'name'</span><span class="p">][</span><span class="s1">'#default_value'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">str_replace</span><span class="p">(</span>
<span class="s1">' '</span><span class="p">,</span>
<span class="s1">'.'</span><span class="p">,</span>
<span class="nv">$form</span><span class="p">[</span><span class="s1">'account'</span><span class="p">][</span><span class="s1">'name'</span><span class="p">][</span><span class="s1">'#default_value'</span><span class="p">]</span>
<span class="p">);</span>
<span class="p">}</span>
<span class="p">}</span>
</pre></div>
</td></tr></table>
<figcaption><p>Ce que j'ai tenté suite à la lecture du lien mentionné plus haut</p></figcaption></figure>