Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [phpbb] wysietlenie osob ONLINE z PHPBB - poprawa
Forum PHP.pl > Forum > Gotowe rozwiązania
lucek
Witam.
Jakie kodziki wrzucic do pliku index.php swojej strony - aby tworzylo SESJE (tak jak to robi forum phpBB po uruchomieniu pliku index.php) a ponadto aby na mojej stronie wyswietlalo mi:
ONLINE:
Gosci: xx
Userow: xxx
Razem: www

Osoby zalogowane:
NICK 1
NICK 2
...itp.

POKAZ ONLINE:
nick1 - IP, HOST, LOCAL IP
nick3 - IP, HOST, LOCAL IP
gosc - IP, HOST, LOCAL IP
goscxx- IP, HOST, LOCAL IP

Z logowaniem na wlasnej stronie do PHPBB juz sobie poradzilem.
Prosze o pomoc.

Jeszcze jedno:
Jak na stronie forum jest kilka GOSCI z 1 adresu IP to skrypt zlicza WSZYSKIE te osoby czy wtedy te osoby sa traktowane jako JEDNA questionmark.gif
Mnichasso
Tutaj masz linki do modów które pokazują osoby online smile.gif
http://phpbb.pl/index.php?m=mod_detal&h=52
http://phpbb.pl/index.php?m=mod_detal&h=107
lucek
Plik z tego adresu: http://phpbb.pl/index.php?m=mod_detal&h=52 troche mi mieszal wiec znalazlem taki kod, ktory dziala poprawnie.

[php:1:85d371e642]<?php
define('IN_PHPBB', true);

$phpbb_root_path = "forum/"; //path to below files!!!!
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userdata = session_pagestart($user_ip, PAGE_INDEX, $session_length);
init_userprefs($userdata);

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

$userlist_ary = array();
$userlist_visible = array();

$prev_user_id = 0;
$prev_user_ip = '';

while( $row = $db->sql_fetchrow($result) )
{
// User is logged in and therefor not a guest
if ( $row['session_logged_in'] )
{
// Skip multiple sessions for one user
if ( $row['user_id'] != $prev_user_id )
{
$style_color = '';
if ( $row['user_level'] == ADMIN )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:# . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
$row['username'] = '<b>' . $row['username'] . '</b>';
$style_color = 'style="color:# . $theme['fontcolor2'] . '"';
}

if ( $row['user_allow_viewonline'] )
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'>' . $row['username'] . '</a>';
$logged_visible_online++;
}
else
{
$user_online_link = '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&amp;" . POST_USERS_URL . "=" . $row['user_id']) . '"' . $style_color .'><i>' . $row['username'] . '</i></a>';
$logged_hidden_online++;
}

if ( $row['user_allow_viewonline'] || $userdata['user_level'] == ADMIN )
{
$online_userlist .= ( $online_userlist != '' ) ? ', ' . $user_online_link : $user_online_link;
}
}

$prev_user_id = $row['user_id'];
}
else
{
// Skip multiple sessions for one user
if ( $row['session_ip'] != $prev_session_ip )
{
$guests_online++;
}
}

$prev_session_ip = $row['session_ip'];
}
$db->sql_freeresult($result);

if ( empty($online_userlist) )
{
$online_userlist = $lang['None'];
}
$online_userlist = ( ( isset($forum_id) ) ? $lang['Browsing_forum'] : $lang['Registered_users'] ) . ' ' . $online_userlist;

$total_online_users = $logged_visible_online + $logged_hidden_online + $guests_online;

if ( $total_online_users == 0 )
{
$l_t_user_s = $lang['Online_users_zero_total'];
}
else if ( $total_online_users == 1 )
{
$l_t_user_s = $lang['Online_user_total'];
}
else
{
$l_t_user_s = $lang['Online_users_total'];
}

if ( $logged_visible_online == 0 )
{
$l_r_user_s = $lang['Reg_users_zero_total'];
}
else if ( $logged_visible_online == 1 )
{
$l_r_user_s = $lang['Reg_user_total'];
}
else
{
$l_r_user_s = $lang['Reg_users_total'];
}

if ( $logged_hidden_online == 0 )
{
$l_h_user_s = $lang['Hidden_users_zero_total'];
}
else if ( $logged_hidden_online == 1 )
{
$l_h_user_s = $lang['Hidden_user_total'];
}
else
{
$l_h_user_s = $lang['Hidden_users_total'];
}

if ( $guests_online == 0 )
{
$l_g_user_s = $lang['Guest_users_zero_total'];
}
else if ( $guests_online == 1 )
{
$l_g_user_s = $lang['Guest_user_total'];
}
else
{
$l_g_user_s = $lang['Guest_users_total'];
}

if ($userdata['user_level'] != 0)
{
$l_online_users = sprintf($l_t_user_s, $total_online_users);
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
$l_online_users .= sprintf($l_h_user_s, $logged_hidden_online);
$l_online_users .= sprintf($l_g_user_s, $guests_online);
}
else
{
$l_online_users = sprintf($l_t_user_s, ($total_online_users - $logged_hidden_online));
$l_online_users .= sprintf($l_r_user_s, $logged_visible_online);
$l_online_users .= sprintf($l_h_user_s, 0);
$l_online_users .= sprintf($l_g_user_s, $guests_online);
}

$onlinet="$l_online_users<br>$online_userlist";
?>
[/php:1:85d371e642]


Jednak mam problem gdyz wyswietla mi te dane praktycznie w jednej linijce i nie wiem co zmienic aby wysiwetlalo mi tak:
ONLINE:
Userzy: xx
Gosci: ww
Razem: xxwwwf
Zalogowani:
01: login1
02: login2
.......

Z gory dzieki za pomoc[/code]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.