Information importante
En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".
Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact
De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.
Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".
Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.
Pas testé mais apparemment
Permalien Soumis par davidm le 13 Octobre, 2009 - 09:30
Pas testé mais apparemment tu peux modifier user-profile.tpl.php avec ce code :
http://drupal.org/node/271472#comment-1003199
En fait, je suis
Permalien Soumis par Marie-Hélène le 13 Octobre, 2009 - 10:11
En fait, je suis complètement gourde, elle fait partie des champs montrables dans une vue utilisateurs (et j'ai une vue utilisateurs), on peut même y mettre un mailto: et tout et tout. Donc dans mon cas cette solution suffira. Mais merci d'avoir fait la recherche, elle servira sans doute à quelqu'un d'autre -qui-pensera-à-chercher-avant-de-demander,LUI.
En revanche, je vais corser un peu l'exercice : j'ai un type de contenu avec un champ UserReference. Je voudrais afficher (dans le node-type.tpl.php cette fois) l'adresse électronique de l'utilisateur en question (son nom, et entre parenthèses son adresse sans mailto:). Sachant que le champ s'appelle field_event_qui, quelqu'un pourrait-il m'indiquer la variable à récupérer (j'ai examiné ce que contemplate me renvoyait, mais que nenni).
Avec toute ma reconnaissance enthousiaste.
Hello Si tu fais un <?php
Permalien Soumis par juliendubreuil le 13 Octobre, 2009 - 15:20
Hello
Si tu fais un
ca te donnes quoi ?
Salut je pense que
Permalien Soumis par sahuni le 13 Octobre, 2009 - 15:52
Salut
je pense que c'est
print $node->field_event_qui[0]['view'];
@julien : un gros caca !
Permalien Soumis par Marie-Hélène le 13 Octobre, 2009 - 19:20
@julien : un gros caca ! :-)
@sahuni : je ne cherche pas à afficher la valeur du champ, mais à récupérer l'adresse mail de l'utilisateur référencé (j'avais dis que je corsais la sauce)...
Ca sent la petite fonction
Permalien Soumis par emerya le 13 Octobre, 2009 - 21:57
Ca sent la petite fonction Drupal de derrière les fagots, ça...
Le $uid étant ton champ user reference. Cela devrait aussi marcher avec 'name'.
ce n'est pas très loin,
Permalien Soumis par Marie-Hélène le 13 Octobre, 2009 - 23:37
ce n'est pas très loin, mais
me ramène l'utilisateur qui a créé le noeud
et
me ramène l'utilisateur 1
Voilà une demi-heure que je tourne en rond à tâtonner, là il faut vraiment que je me mette au lit ; c'est frustrant !!
Merci pour le coup de pouce ...
Je croyait que tu avais une
Permalien Soumis par emerya le 14 Octobre, 2009 - 10:39
Je croyait que tu avais une vue utilisateur où tu récupérait ton user reference, non? Donc installe Views CustomField, et ajoute un champs Customfield PHP à ta vue, du genre :
Ce ne sera sans doute pas $data->node_field_event_qui qu'il faudta mettre, mais fait juste print_r($data) dans le customfield php, et il te donnera tous les noms, par ex. dans mon cas [node_field_event_qui] (ca dépend de comment est construite ta requête).
Customfield PHP est sans doute le champs de vue que j'utilise le plus!
p.s. : j'espère que tu as bien dormi quand même!
Alors, excuse moi si je n'ai
Permalien Soumis par Marie-Hélène le 14 Octobre, 2009 - 23:25
Alors, excuse moi si je n'ai pas été assez claire, cet affichage je le veux dans le noeud lui-même, pas dans la vue. Donc j'ai travaillé hier en insérant ton code dans le
node-evenement.tpl.php
.Je n'avais pas pensé à intituler la variable $data (je n'y connais rien en code drupal, c'est la première fois que je travaille sur une fonction, donc je ne sais pas utiliser la doc de l'API). Je ne pourrai vérifier que vendredi soir car je ne suis pas chez moi (et j'ai un réseau un peu pourri), mais je ferai le test et je te tiens au courant.
Merci !
Oulà, non, $data est une
Permalien Soumis par emerya le 15 Octobre, 2009 - 10:02
Oulà, non, $data est une variable spécifique à customfield PHP qui ne te donnera rien de bon dans un fichier template.
Dans un fichier template, je ne suis plus sûr du code, mais essaie plutôt $node->field_event_qui[0]['uid'].
ah ! dans mes tâtonnements
Permalien Soumis par Marie-Hélène le 15 Octobre, 2009 - 12:10
ah ! dans mes tâtonnements j'avais essayé $node->field_event_qui[0]['view'] que renvoie Contemplate mais drupdrup n'était pas content du tout. A priori c'est plutôt pour afficher la valeur que pour la récupérer.
Ca veut dite que
Permalien Soumis par emerya le 15 Octobre, 2009 - 12:20
Ca veut dite que $node->field_event_qui[0]['uid'] fonctionne, donc?
Si oui, dernier conseil pour la route : la fonction menu_get_object() renvoie notamment la variable $node courante. Donc dans une page, si dans un champs cck ou dans le corps tu écris print_r(menu_get_object()); tu pourra voir comment s'appellent toutes tes variables.
Ca veut dite que
Permalien Soumis par Marie-Hélène le 15 Octobre, 2009 - 12:34
Ca veut dite que $node->field_event_qui[0]['uid'] fonctionne, donc?
Non, je ne pourrai le savoir que demain soir (ou samedi matin).
C'était bien ça ! :-))) Je
Permalien Soumis par Marie-Hélène le 17 Octobre, 2009 - 16:50
C'était bien ça ! :-)))
Je donne le code final pour qui en aura besoin :
Supermerci à toi emerya, c'était ma toute première fonction Drupal, me voici officiellement codeuse Drupal :->> !
Ah, il reste un souci : ça
Permalien Soumis par Marie-Hélène le 17 Octobre, 2009 - 17:05
Ah, il reste un souci : ça ne me renvoie que la première valeur du userreference. Oui, je fignole, c'est un champ à valeurs multiples (illimitées). Puis-je abuser de ton aide ?...
Hé bien il va te falloir un
Permalien Soumis par emerya le 17 Octobre, 2009 - 17:11
Hé bien il va te falloir un foreach ou un while pour afficher toutes les valeurs.
Le [0] indique que c'est la première valeur. [1] sera la seconde, etc..
Un petit code du genre :
A tester...
Je ne comprends pas ; ton
Permalien Soumis par Marie-Hélène le 17 Octobre, 2009 - 17:33
Je ne comprends pas ; ton code parait logique, pourtant il me retourne
Parse error: syntax error, unexpected '}' in .../node-evenement.tpl.php on line 32
. Il est logique de fermer l'accolade qu'on a ouvert !??..Je continue à chercher, à tâtons... si tu vois quelque chose... ?
Oui, c'est normal, j'ai
Permalien Soumis par emerya le 17 Octobre, 2009 - 17:42
Oui, c'est normal, j'ai copié/collé ton code, mais il manquait un ; à la fin de "print t(')')"
Avant ton code marchait car c'était la dernière ligne.
Oui mais là j'ai droit à
Permalien Soumis par Marie-Hélène le 17 Octobre, 2009 - 17:54
Oui mais là j'ai droit à un message rouge de drupal qui me dit
* warning: Illegal offset type in .../node-evenement.tpl.php on line 30.
* warning: Illegal offset type in .../node-evenement.tpl.php on line 30.
Et en dessous je vois juste s'afficher " (son adresse : ) (son adresse : ) "
(La bonne nouvelle, c'est qu'il y a effectivement deux valeurs à ce champ dans mon node de test).
J'ai cherché ce que signifiat le illegal offset type, apparemment c'est propre à la programmation orientée objet ; ce ne sont pas mes quelques notions en prog fonctionnelle qui vont m'aider (la POO je n'y connais rien !) !!...
Bon allez, pour clôturer la
Permalien Soumis par emerya le 17 Octobre, 2009 - 18:27
Bon allez, pour clôturer la question, on va faire un while :
Ce n'est pas ce qu'il y a de plus propre, mais ça devrait fonctionner sans trop de pb.
edit : ha, oui, j'ai fait une erreur dans le foreach, vu que c'est un tableau qui contient des tableaux. Mais en fait le while est plus approprié car si tu met par ex. la limite à 4 entrées et que l'utilisateur n'en rentre que 2, tu aura 2 champs vides. Avec le while, il s'arrête dès qu'une case du tableau est vide.
yalla ! ça marche ! merci !!
Permalien Soumis par Marie-Hélène le 17 Octobre, 2009 - 18:31
yalla !
ça marche !
merci !!