Affichage des membres phpbb sur l'index de mon site

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage des membres phpbb sur l'index de mon site

par kikislater » 22 mai 2005, 23:16

ok merci

Mais Où est-ce que je pourrais plus de détail sur toutes les tables de ce forum.

et encore merci

par pjl » 22 mai 2005, 22:14

pour répondre à la question de départ, le nombre de connectés se trouve dans la table 'ton_prefixe_sessions.

par kikislater » 22 mai 2005, 18:52

ok merci je vais essayer masi pas de suite je suis en exams actuellement
donc ce sera apres le 2juin
merci pour vos réponses

Re: Affichage des membres phpbb sur l'index de mon site

par DocType » 22 mai 2005, 18:10

Bonjour

je veux inclure sur la page d'accueil de mon site le nombre de membres connectés gr^ce à la base de données de Phpbb pas seulement sur l'index du forum un peu comme le cms nuked klan qui utilise un forum phpbb d'ailleurs

En fait je voulais surtout savoir si je peux utiliser la même base de donnée pour une section membre sur mon site => de ce fait les utilisateurs du site n'ont pas besoin de s'inscrire deux fois sur le site (une fois sur la section membre et une autre pour les parties protégées du site)

de plus lorsque je réalise un include sur la page d'accueil j'ai ce message :
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\phpbb\1.php:10) in c:\program files\easyphp1-8\www\phpbb\includes\sessions.php on line 329
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\phpbb\1.php:10) in c:\program files\easyphp1-8\www\phpbb\includes\sessions.php on line 330

J'ai réussi à ne plus faire apparaître ce message en mettant le include dans un tableau.

Mais il ya également un autre problème : J'ai l'impression que les valeurs de "qui est en ligne" s'affiche dans un tableau qui est plus grand que le mien et j'aimerais modifier ce tableau : est-ce possible??

J'espère ne pas être trop exigent et je serais agréablement ravi que quelqu'un puisse m'aider. Vous avez pu vous rendre compte que je suis débutant en php et j'en suis désolé.

Je vous remercie d'avance pour vos réponses
Bonjour à toi,
tout d'abord comme dit au-dessus c'est très fort de débuter en php par du phpbb...
c'est un peu comme un salarié qui débute par un statut de "fin de carrière"...
Je pense que de plutôt recopier, il faudrait apprendre les bases...
Ayant bossé sur du phpbb, je rigole de ton code car il y a tout simplement des tonnes de lignes qui ne servent à rien...
Alors, si tu es prêt à apprendre, lâche ce code (en plus si y gueule pour les include c tout simplement qui trouve peut être pas les fichiers...pkoi donc les inclure? [surtout que ca sert à rien dans ton cas...])
J'ai bien un script créé maison pour les visiteurs on line mais ca le ferait pas de te le refourger sans que tu comprennes...
je t'invite donc à commencer par toi-même à réfléchir sur les moyens possibles pour voir le nombre de connectés en ligne (je t'aide : Base de données, fonction date,...)
hesite pas a presenter ton pseudo code :wink:
la je serais present pour t'aider :wink:

par Cyrano » 22 mai 2005, 15:03

Débuter en PHP en t'attaquant au code de phpBB, c'est pas mal :shock:
Ceci dit, tu auras peut-être noté que phpBB fonctionne avec un système de templates: dont rien ne t'interdit d'aller modifier les templates ou d'en créer un qui récupère les informations que tu veux pour la partie non-forum de ton site en adaptant les dimensions selon ce que tu veux obtenir.

T'aider juste en voyant cette partie de code par rapport à ta question n'a rien de très évident. Mais à priori, ce n'est pas le code phpBB qu'il faut modifier mais le template que tu veux obtenir.

Affichage des membres phpbb sur l'index de mon site

par kikislater » 22 mai 2005, 14:26

Bonjour

je veux inclure sur la page d'accueil de mon site le nombre de membres connectés gr^ce à la base de données de Phpbb pas seulement sur l'index du forum un peu comme le cms nuked klan qui utilise un forum phpbb d'ailleurs

En fait je voulais surtout savoir si je peux utiliser la même base de donnée pour une section membre sur mon site => de ce fait les utilisateurs du site n'ont pas besoin de s'inscrire deux fois sur le site (une fois sur la section membre et une autre pour les parties protégées du site)

Le but est également de voir rapidement qui est présent sur le site

Quellles sont les tables à utiliser phpbb_users uniquement ou d'autres


J'ai modifié le fichier viewonline et renommé autrement pour pouvoir l'inclure dans la page d'accueil de mon site ce qui donne ca :

Citation:

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_VIEWONLINE);
init_userprefs($userdata);
//
// End session management
//

//
// Output page header and load viewonline template
//
$page_title = $lang['Who_is_Online'];

$template->set_filenames(array(
'body' => 'viewonline_body.tpl')
);

$template->assign_vars(array(
'L_WHOSONLINE' => $lang['Who_is_Online'],
'L_ONLINE_EXPLAIN' => $lang['Online_explain'],
'L_USERNAME' => $lang['Username'],
'L_LAST_UPDATE' => $lang['Last_updated'])
);

//
// Forum info
//
$sql = "SELECT forum_name, forum_id
FROM " . FORUMS_TABLE;
if ( $result = $db->sql_query($sql) )
{
while( $row = $db->sql_fetchrow($result) )
{
$forum_data[$row['forum_id']] = $row['forum_name'];
}
}
else
{
message_die(GENERAL_ERROR, 'Could not obtain user/online forums information', '', __LINE__, __FILE__, $sql);
}

//
// Get auth data
//
$is_auth_ary = array();
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata);

//
// Get user list
//
$sql = "SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip
FROM ".USERS_TABLE." u, ".SESSIONS_TABLE." s
WHERE u.user_id = s.session_user_id
AND s.session_time >= ".( time() - 300 ) . "
ORDER BY u.username ASC, s.session_ip ASC";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain regd user/online information', '', __LINE__, __FILE__, $sql);
}

$guest_users = 0;
$registered_users = 0;
$hidden_users = 0;

$reg_counter = 0;
$guest_counter = 0;
$prev_user = 0;
$prev_ip = '';

while ( $row = $db->sql_fetchrow($result) )
{
$view_online = false;

if ( $row['session_logged_in'] )
{
$user_id = $row['user_id'];

if ( $user_id != $prev_user )
{
$username = $row['username'];

$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$username = '<b style="color:#' . $theme['fontcolor3'] . '">' . $username . '</b>';
}
else if ( $row['user_level'] == MOD )
{
$username = '<b style="color:#' . $theme['fontcolor2'] . '">' . $username . '</b>';
}

if ( !$row['user_allow_viewonline'] )
{
$view_online = ( $userdata['user_level'] == ADMIN ) ? true : false;
$hidden_users++;

$username = '<i>' . $username . '</i>';
}
else
{
$view_online = true;
$registered_users++;
}

$which_counter = 'reg_counter';
$which_row = 'reg_user_row';
$prev_user = $user_id;
}
}
else
{
if ( $row['session_ip'] != $prev_ip )
{
$username = $lang['Guest'];
$view_online = true;
$guest_users++;

$which_counter = 'guest_counter';
$which_row = 'guest_user_row';
}
}

$prev_ip = $row['session_ip'];

if ( $view_online )
{
if ( $row['session_page'] < 1 || !$is_auth_ary[$row['session_page']]['auth_view'] )
{
switch( $row['session_page'] )
{
case PAGE_INDEX:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx";
break;
case PAGE_POSTING:
$location = $lang['Posting_message'];
$location_url = "index.$phpEx";
break;
case PAGE_LOGIN:
$location = $lang['Logging_on'];
$location_url = "index.$phpEx";
break;
case PAGE_SEARCH:
$location = $lang['Searching_forums'];
$location_url = "search.$phpEx";
break;
case PAGE_PROFILE:
$location = $lang['Viewing_profile'];
$location_url = "index.$phpEx";
break;
case PAGE_VIEWONLINE:
$location = $lang['Viewing_online'];
$location_url = "viewonline.$phpEx";
break;
case PAGE_VIEWMEMBERS:
$location = $lang['Viewing_member_list'];
$location_url = "memberlist.$phpEx";
break;
case PAGE_PRIVMSGS:
$location = $lang['Viewing_priv_msgs'];
$location_url = "privmsg.$phpEx";
break;
case PAGE_FAQ:
$location = $lang['Viewing_FAQ'];
$location_url = "faq.$phpEx";
break;
case PAGE_SITE:
$location = $lang['On_the_site'];
$location_url = $adresse_site;
break;
default:
$location = $lang['Forum_index'];
$location_url = "index.$phpEx";
}
}
else
{
$location_url = append_sid("viewforum.$phpEx?" . POST_FORUM_URL . '=' . $row['session_page']);
$location = $forum_data[$row['session_page']];
}

$row_color = ( $$which_counter % 2 ) ? $theme['td_color1'] : $theme['td_color2'];
$row_class = ( $$which_counter % 2 ) ? $theme['td_class1'] : $theme['td_class2'];

$template->assign_block_vars("$which_row", array(
'ROW_COLOR' => '#' . $row_color,
'ROW_CLASS' => $row_class,
'USERNAME' => $username,

'U_USER_PROFILE' => append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . '=' . $user_id),
'U_FORUM_LOCATION' => append_sid($location_url))
);

$$which_counter++;
}
}

if( $registered_users == 0 )
{
$l_r_user_s = $lang['Reg_users_zero_online'];
}
else if( $registered_users == 1 )
{
$l_r_user_s = $lang['Reg_user_online'];
}
else
{
$l_r_user_s = $lang['Reg_users_online'];
}

if( $hidden_users == 0 )
{
$l_h_user_s = $lang['Hidden_users_zero_online'];
}
else if( $hidden_users == 1 )
{
$l_h_user_s = $lang['Hidden_user_online'];
}
else
{
$l_h_user_s = $lang['Hidden_users_online'];
}

if( $guest_users == 0 )
{
$l_g_user_s = $lang['Guest_users_zero_online'];
}
else if( $guest_users == 1 )
{
$l_g_user_s = $lang['Guest_user_online'];
}
else
{
$l_g_user_s = $lang['Guest_users_online'];
}

$template->assign_vars(array(
'TOTAL_REGISTERED_USERS_ONLINE' => sprintf($l_r_user_s, $registered_users) . sprintf($l_h_user_s, $hidden_users),
'TOTAL_GUEST_USERS_ONLINE' => sprintf($l_g_user_s, $guest_users))
);

if ( $registered_users + $hidden_users == 0 )
{
$template->assign_vars(array(
'L_NO_REGISTERED_USERS_BROWSING' => $lang['No_users_browsing'])
);
}

if ( $guest_users == 0 )
{
$template->assign_vars(array(
'L_NO_GUESTS_BROWSING' => $lang['No_users_browsing'])
);
}

$template->pparse('body');


?>



donc voilà ca fonctionne (je précise que j'ai essayé en local sous easy php) mais j'aimerai virer le texte "Ces données sont basées sur les utilisateurs actifs des cinq dernières minutes" et également les textes "nom d'utilisateur" et "derniere mise à jour". Comment faire??
Pour ceux qui ne voient pas ce que je veux dire voici une copie d'ecran : http://kikiesttoujoursla.free.fr/whosonline.jpg

de plus lorsque je réalise un include sur la page d'accueil j'ai ce message :
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\phpbb\1.php:10) in c:\program files\easyphp1-8\www\phpbb\includes\sessions.php on line 329
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\phpbb\1.php:10) in c:\program files\easyphp1-8\www\phpbb\includes\sessions.php on line 330

J'ai réussi à ne plus faire apparaître ce message en mettant le include dans un tableau.

Mais il ya également un autre problème : J'ai l'impression que les valeurs de "qui est en ligne" s'affiche dans un tableau qui est plus grand que le mien et j'aimerais modifier ce tableau : est-ce possible??

J'espère ne pas être trop exigent et je serais agréablement ravi que quelqu'un puisse m'aider. Vous avez pu vous rendre compte que je suis débutant en php et j'en suis désolé.

Je vous remercie d'avance pour vos réponses