ThWboard Support-Forum (Archiv)
Ort: / Boardübersicht / Code Hack Requests / useronline in Profil
Seite 1 von 1
Heiner schrieb am 26.09.2002 um 11:15 Uhr
Hallo,
in der team.php wird ja angezeigt welche der im Team
vertretenen Mods etc. online ist.
In einem Hack von Bluetooth Postinguser_online-Hack by Bluetooth ...
wird neben den einzelnen Beiträgen angezeigt ob der User online ist (showtopic.php).
Ich wollte diese Funktion in der v_profile.php einbauen, damit dann beim
Aufruf des Profils des jeweiligen User angezeigt wird, ob dieser online ist.
Es funktioniert nicht.
Ich habe nur festgestellt, das die entsprechende Abfrage immer
in einer while Schleife steht.
while( $user = mysql_fetch_array($r_user) )
{
if( $a_online[$user['userid']] && $user['userinvisible'] != 1 )
{
$user['userisonline'] = 'Ja';
}
else............
in der v_profile.php wird jedoch nicht mit einer while Schleife
gearbeitet, sondern:
$user = mysql_fetch_array($r_user);
Liegt das Problem daran? Was kann man dagegen tun?
Bluetooth schrieb am 26.09.2002 um 13:38 Uhr
ich würde tippen, dass du in der SQL-Abfrage, aus der $r_user resultiert, das feld userisonline hinzufügen musst und nur die if-abfrage innerhalb der schleife
Heiner schrieb am 26.09.2002 um 18:10 Uhr
@Bluetooth,
jetzt mal andersrum:
den kennste ja:
//...Postinguser_online-Hack by Bluetooth
$pref = "thwb_";
$r_online = thwb_query("SELECT DISTINCT
online.onlineip,
online.userid,
user.username,
user.userinvisible
FROM
".$pref."online AS online
LEFT JOIN
".$pref."user AS user
ON online.userid=user.userid
WHERE online.onlinetime > " . (time() - 300) . "");
$a_doubleuser = array();
while( $online = mysql_fetch_array($r_online) )
{
if( $online['username'] && !$online['userinvisible'] )
{
if( !in_array($online['userid'], $a_doubleuser) )
{
$a_doubleuser[] = $online['userid'];
}
}
}
if(in_array($post['userid'], $a_doubleuser))
{
$post['userisonline'] = '<b>Status: online</b>';
}
else
{
$post['userisonline'] = ' ';
}
der ist in der showtopic.php
im Template postingrow.html dann $post[userisonline]
funktioniert bestens!
geht aber nicht wenn ich den in die v-profile.php einbaue.
Woran kanns liegen??
Heiner schrieb am 29.09.2002 um 17:24 Uhr
Gibt´s einen Weg das in die v_profile.php
einzubauen?
Bluetooth schrieb am 29.09.2002 um 17:26 Uhr
sicher gibts die, nur im moment zu wenig Zeit - bei mir zumindest.
Heiner schrieb am 29.09.2002 um 17:31 Uhr
Ok, dachte es könnte einfach in die v_profile.php
eingebaut werden.
Hast du vorerst vielleicht einen kleinen Gedankenansatz
wie das zu machen ist, vielleicht bekomme ich da
etwas hin.
Bluetooth schrieb am 29.09.2002 um 19:17 Uhr
kopier den code, pass die abfrage an - useronline verknüpft mit userid aus $g_user und dann hast den status
Heiner schrieb am 30.09.2002 um 09:34 Uhr
Na, vielleicht warte ich doch bis du wieder Zeit hast ;)
Bluetooth schrieb am 30.09.2002 um 09:46 Uhr
Siehe Signatur .. ich weiß net, wann ich Zeit habe - spätestens Juli 2003 :(,
die wenige Freizeit, die ich haben werde, stopf ich natürlich nicht die ganze Zeit mit PHP voll :D
Scrratch schrieb am 03.11.2002 um 12:34 Uhr
hmmm also ich habe auch mal getüftelt aber es ging nich (was mir eigentlich klar war) ;)
Blue, was meinst du damit? ich versteh kein wort :/ erzähl doch ma :)
Braese schrieb am 22.11.2002 um 15:16 Uhr
für 2.8 :
v-profile.php öffnen, zeile 35:
$user = mysql_fetch_array($r_user);
danach einfügen:
$r_online = thwb_query("SELECT DISTINCT
online.onlineip,
online.userid,
user.username,
user.userinvisible
FROM
".$pref."online AS online
LEFT JOIN
".$pref."user AS user
ON online.userid=user.userid
WHERE
online.onlinetime > " . (time() - 300) . "");
$a_doubleuser = array();
while( $online = mysql_fetch_array($r_online) )
{
if( $online['username'] && !($online['userinvisible'] && !$g_user['userlevel']))
{
if( !in_array($online['userid'], $a_doubleuser) )
{
$a_doubleuser[] = $online['userid'];
}
}
}
dann hiernach:
$user['usersignature'] = parse_code($user['usersignature'], 1, 1, 1, $config['smilies']);
folgendes einfügen:
if(in_array($user['userid'], $a_doubleuser))
{
$user['userisonline'] = 'online';
}
else
{
$user['userisonline'] = 'offline';
}
v_profile.php schliessen, im templates ordner die viewprofile.html öffnen
suchen nach:
$user[username]
abändern auf dieses:
$user[username] ($user[userisonline])
speichern, schliessen, aufrufen
Jonas schrieb am 22.11.2002 um 17:25 Uhr
braese, zieh dir mal die 2.8, wir hatten inzwischen versionswechsel... userlevel gibts net mehr ;)
Braese schrieb am 22.11.2002 um 20:51 Uhr
hehe, funzt trotzdem auf 2.8 denn ich hab nur die anzeige genommen die auf der hackpage steht und nur copy paste eingebaut, wunderte mich wieso hier stand es ginge nicht
Jonas schrieb am 22.11.2002 um 21:07 Uhr
ich habs net ausprobiert, ich habe nur darauf hingewiesen, dass das feld userlevel bei einer neuinstallation der 2,8 nicht existiert, der hack also _theoretisch_ fehler produzieren _muss_ ;) =)
Heiner schrieb am 22.11.2002 um 21:47 Uhr
Hallo,
bekomme Fehlermeldung:
Wrong datatype for second argument in call to in_array in v_profile.php
in dieser Zeile:
if(in_array($user['userid'], $a_doubleuser))
Braese schrieb am 22.11.2002 um 22:41 Uhr
schick mal deine v_profile.php an bene.bene@allesklar.de und welche Version benutzt du Heiner
Heiner schrieb am 23.11.2002 um 00:36 Uhr
Moin,
der erste Teil war nicht richtig platziert.
Jetzt läuft es. Danke.
Braese schrieb am 23.11.2002 um 03:38 Uhr
kk ;)
dann kann ich mich jetzt ja an die buddy list machen
Buggyboy schrieb am 19.12.2003 um 11:14 Uhr
Hi!
bei mir hat es gleich gefunzt.
Hab dann noch die Farbe abgeändert.
Online = grün
Offline = rot
Jetzt mal eine Frage:
Wie bekomm ich das in die Postings z.b.: Unter den Namen?
Vielen Dank dafür...
Peter
Seite 1 von 1