Afficher les données d'un membre qui se connecte

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le développement d'un de vos MODs, ou l'adaptation d'un MOD phpBB2 pour phpBB3.

Modérateur: Equipe

Afficher les données d'un membre qui se connecte

Messagepar dulaque » 12 Oct 2009 à 13:23

Bonjour chers membres et désolés si la question a déjà été posée, j'ai fais quelques recherches mais étant fievreux, j'ai du mal a me concentrer sur l'ecran. :cry:

Je souhaite utiliser le code postal que le membre a rentré lors de son inscription sur le forum et faire apparaitre une liste de professionnels se trouvant localement implantés.

Pour cela, j'ai juste besoin, sil vous plait, de récupérer le user_id aprés la connexion du membre, ensuite je ferais ma soupe SQL, mais je ne sais pas dans quel fichier trouver la variable, pour le reste ça devrait aller...

Merci de votre compréhension.

Désolés, je suis crevé.

Guillaume
http://www.forum-rachatdecredits.com
phpBB3.0.5 avec phpBBSEO


----------------------------------------
Avancement de la recherche :

Pour l'instant la seule piste que j'ai, c'est rajouter ces lignes dans functions.php :

$user_id => $user->data['user_id'], //avant $template->assign_vars(array(
et
'S_USERID' => $user->data['user_id'], // aprés $template->assign_vars(array(


Je récupére bien la valeur dans overall_header.html en mettant {S_USERID}

Je vais tester ma sequence SQL maintenant :
$use = mysql_query("SELECT * FROM `phpbb305_users` where user_id='$user_id'");
while($listU = mysql_fetch_assoc($use))
{
$template->assign_block_vars('userIOB', array(
'LANGUE' => $listU['user_lang'],
));
}

-----------------------------------------
Rien ne marche, j'en ai mal a la tete :?
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 13 Oct 2009 à 13:50

dulaque a écrit:$use = mysql_query("SELECT * FROM `phpbb305_users` where user_id='$user_id'");
while($listU = mysql_fetch_assoc($use))
{
$template->assign_block_vars('userIOB', array(
'LANGUE' => $listU['user_lang'],
));
}

Cette requête est inutile, le contenu du champ user_lang (et même, tous les champ de la table users) est directement accessible via $user->data['user_lang']
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 13 Oct 2009 à 18:10

ErnadoO a écrit:
dulaque a écrit:$use = mysql_query("SELECT * FROM `phpbb305_users` where user_id='$user_id'");
while($listU = mysql_fetch_assoc($use))
{
$template->assign_block_vars('userIOB', array(
'LANGUE' => $listU['user_lang'],
));
}

Cette requête est inutile, le contenu du champ user_lang (et même, tous les champ de la table users) est directement accessible via $user->data['user_lang']


Cette requete me permet de mettre la valeur LANGUE dans un tableau que je rappelerai cote .html
en faisant :
<!-- BEGIN userIOB -->{userIOB.LANGUE}<!-- END userIOB -->

Je ne comprends pas pourquoi cette requete est inutile, d'autant que c'est pour illustrer mon propos, mais j'ai besoin avant tout d'obtenir la valeur exploitable de user_id et non sous forme d'un tableau
afin que je fasse une fonction SQL dependant de l'user_id pour récupérer d'autre valeur telle que le code postal par exemple.

Merci de tes precisions.
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 13 Oct 2009 à 18:26

inutile car elle te sert à récupérer un champ de al table users, qui a déjà été récupéré en amont.

De plus, ta requête est mal foutue, comme elle ne va retourner que un seul résultat, ton while ne sert à rien, il va être exécuté qu'une fois, du coup, faire un block n'a plus aucune raison (le but d'un block étant de se répéter plusieurs fois)
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 10:45

ErnadoO a écrit:inutile car elle te sert à récupérer un champ de al table users, qui a déjà été récupéré en amont.

De plus, ta requête est mal foutue, comme elle ne va retourner que un seul résultat, ton while ne sert à rien, il va être exécuté qu'une fois, du coup, faire un block n'a plus aucune raison (le but d'un block étant de se répéter plusieurs fois)


Je sais que le bloc sert a répeter plusieurs fois, je me suis mal expliqué.

Bon je vais détailler plus finement ce que je veux, comme ça peut etre que je serai plus clair :

En s'inscrivant, le membre remplit la case Code postal (phpbb305_profile_fields_data)

Dés que le membre se connecte, je souhaiterai que l'on vérifie le code postal qu'il a enregistré et que l'on le compare a une table "phpbb305_pro" et que l'on affiche une liste de professionnels domicilés dans le code postal du Membre.

Donc dés que j'ai une valeur aprés connexion de USER_ID

Je vais faire :

$sql = mysql_query("SELECT * FROM `phpbb305_profile_fields_data` d, `phpbb305_pro` p where d.codepostal=p.codepostal and d.user_id='$user_id'");

while($list = mysql_fetch_assoc($sql))
{
$template->assign_block_vars('userIOB', array(
'PROFESSIONNEL' => $list['professionnel'],
'ADRESSE' => $list['adresse'],
'VILLE' => $list['ville'],
'TEL' => $list['telephone'],
));
}

et du coté HTM

JE vais mettre mon BLOC :
<!-- BEGIN userIOB -->{userIOB.PROFESSIONNEL}<br>{userIOB.ADRESSE}{userIOB.VILLE}<br>{userIOB.TELEPHONE}<br><br><!-- END userIOB -->


Merci de votre aide
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 14 Oct 2009 à 10:59

D'accord je vois.

Pourquoi ne pas utiliser les fonctions de phpBB permettant de récupérer le contenu des champs perso d'un membre donné, à savoir generate_profile_fields_template()?
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 11:31

Ah, je ne la connais pas :cry:
Je vais voir ça sur GG en tapant : generate_profile_fields_template()

Je reviendrais vers vous aprés
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 14 Oct 2009 à 11:35

laisse tomber google,n cherche directement dans includes/functions_profile_fields.php
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 11:37

Ok,

J'ai trouvé ça ; function generate_profile_fields_template($mode, $user_id = 0, $profile_row = false)

J'ai compris que grace a cette fonction je peux récupérer la valeur de user_id :

//Donc ici je peux mettre ma fonction SQL, je doute... et comment la récupérer, car elle ne s'affiche pas dans le HTM, je n'ai pas du comprendre son fonctionnement.
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 14 Oct 2009 à 11:47

/**
* Assign fields to template, used for viewprofile, viewtopic and memberlist (if load setting is enabled)
* This is directly connected to the user -> mode == grab is to grab the user specific fields, mode == show is for assigning the row to the template
* @access public
*/


inutile de mettre le code de cette fonction dans ton message hein, je sais ouvrir un fichier pour aller voir cette fonction.

appelles là comme ceci:
Code: Tout sélectionner
generate_profile_fields_template('grab', X) 
le "X" est bien évidemment à rempalcer par un user_id ou un tableau d'user_id
et fait un print_r() juste avant le return pour voir ce qu'elle te retourne, tu comprendras comment exploiter ce qu'elle te retourne.

Si je te recommande d'utiliser cette fonction, c'est pour ne pas utiliser ta requête, donc ne cherche pas à l'implanter dans cette fonction
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 12:12

C'est super important ce que tu me dis et je t'en remercie, mais cela me parait trop compliqué pour mes connaissances.

Je vais essayer bien ententu au moins par respect au temps que tu investis a me répondre, mais je ne comprends pas quel code se substitu au mien et comment je dois utiliser tout ça.

Je ne sais pas sincèrement si je dois tenter de comprendre un code qui m'oblige à reprendre tout à zero ou si je dois me creuser la tête encore plus pour faire quelques choses de moche mais dont j'avais compris une partie.

Merci pour tout en tout cas
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 12:33

Je pense que je n'ai rien compris :

function generate_profile_fields_template('grab', 'user_id', '')
{
$user_id = array($user_id);
print_r($user_id);
}

J'aim is ce code et cela me retourne une erreur :

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/clients/www/forum-rachatdecredits.com/www/index.php on line 139
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar ErnadoO » 14 Oct 2009 à 12:38

oulhala, là tu redéclares la fonbction (en faisant une faute) tu ne l'appelles pas.

Je t'ai dis comment l'appeler:
ErnadoO a écrit:appelles là comme ceci:
Code: Tout sélectionner
generate_profile_fields_template('grab', X)  
le "X" est bien évidemment à rempalcer par un user_id ou un tableau d'user_id

cette fonction te retourne un tableau, avec le contenu des champs perso, donc appeler cette fonction t"vite de faire ta requête.

Le truc c'est que je ne sais plus sous quelle forme cette fonction retourne les résultats, d'où la suggestion de mettre, dans la déclaration de la fonction, un print_r($user_fields); avant return $user_fields;
afin de voir sous quelle forme sont renvoyées les données, car si tu ne sais pas comment elles sont organises, tu ne peux pas les exploiter
ErnadoO
 

Re: Afficher les données d'un membre qui se connecte

Messagepar dulaque » 14 Oct 2009 à 12:48

Comme ça :

function generate_profile_fields_template('grab', 5)
{
print_r($user_fields);
}


Mais j'ai une erreur :

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/clients/www/forum-rachatdecredits.com/www/test.php on line 139
voir : http://www.forum-rachatdecredits.com/test.php
un rachat de crédits sinon rien - http://www.forum-rachatdecredits.com
Merci a la communauté de PHPBB-fr pour sa sympathie
dulaque
Apprenti-posteur
Apprenti-posteur
 
Messages: 198
Inscription: 01 Fév 2006 à 11:49
Localisation: Paris

Re: Afficher les données d'un membre qui se connecte

Messagepar Dakin Quelia » 14 Oct 2009 à 12:49

Bonjour dulaque,

Non, pas du tout. Il ne faut pas la déclarer à nouveau. :)

Dans ton code php, tu dois juste mettre:
Code: Tout sélectionner
generate_profile_fields_template('grab'5);
print_r($user_fields);     


A bientôt,
Image Aucun support par mail, MP ou msn.
Développeur d'une framework phpBB (outil)
Ouvrir un compte Gratuit chez Free-H? Détail complet en cliquant ici | Créer votre forum phpBB facilement: MyFF
Mon blogue: Mon blogue | Mon jeu de rôles: Sénat Galactique | Mon hébergeur: Free-H | phpBB Forge: cliquez ici

Image
Avatar de l’utilisateur
Dakin Quelia
Supporter
Supporter
 
Messages: 20391
Inscription: 31 Oct 2006 à 18:33
Localisation: Belgique

Suivante

Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Partenaires : phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB3 Styles • phpBB podpora • phpBB Portugal    Liens : Net Avenir • PromoBenef • Ticket Gagnant