block-Who_is_Online.php

Begonnen von modelportal, 18 Januar 2003, 23:24:30

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

modelportal

Ich nutze die Useravatars als Geschlechtsanzeige.
Diese möchte ich im Block block-Who_is_Online.php in kleinerer Form als Geschlechtsanzeige erscheinen lassen.

Ich habe mir das Modul Mitgliederliste angesehen und habe versucht,es dort zu integrieren. Teilweise erschien auch das Geschlechtsbild.
Jedoch nur das von meinem Account. Also männlich.
Ich hoffe,das jemand einen Schnipsel für mich hat.

Würde mich freuen.



EDIT: Name gelöscht

modelportal

Kann mir denn hier keiner helfen? Und alle so im Streß? Schade.

mfg



EDIT: Name gelöscht

Andi

Hallo Kai,

muss Dir gestehen, dass ich das nicht ganz verstehe....

Beschreibe mal bitte genauer, evtl. poste mal was Du bereits gecodet hast.
schön´s Grüssle, Andi

modelportal

Das ist mein block_who_is_online.php

<?php

######################################################################
# BASIS :Replacement block for built in postnuke Who Online.
# CODE FOR NUKE-PHP 5.0 and up
# ver 1.1 - more of a statistical layout
#
# See it in action at http://www.maax-design.de
# Block was modified and fixed  for PHP-Nuke by DarkBoy
# more features and BUDDY Input  for an simple Blocksystem!
# Multilanguage and prefix Build by DarkBoy  (http://www.maax-design.de)
#
# The postnuke blocks version is Copyright (c) by Mark  Smithes
# The NUKE PHP blocks version is Copyright (c) by DarkBoy
######################################################################




   if (eregi("block-maaXoN.php",$PHP_SELF)) {
       Header("Location: index.php");
       die();
   }

   global $anonymous, $user, $user_avatar, $admin, $bgcolor, $prefix, $cookie, $currentlang;


   if(file_exists("language/maaXoN/maaXoN-$currentlang.php")) {
      include("language/maaXoN/maaXoN-$currentlang.php");
   }
   else {
      include("language/maaXoN/maaXoN-english.php");
   }

   cookiedecode($user);
   
    $ip = getenv("REMOTE_ADDR");
    $username = $cookie[1];
    if (!isset($username)) {
        $username = "$ip";
        $guest = 1;
    }

   $result = mysql_query("select * FROM $prefix"._users." WHERE uid >='1' order by uid");
    $nummembers = mysql_num_rows($result);
       
    $past = time()-900;
    mysql_query("DELETE FROM $prefix"._session." WHERE time < $past");
    $result = mysql_query("SELECT time FROM $prefix"._session." WHERE username='$username'");
    $ctime = time();
    if ($row = mysql_fetch_array($result)) {
      mysql_query("UPDATE $prefix"._session." SET username='$username', time='$ctime', host_addr='$ip', guest='$guest' WHERE username='$username'");
    } else {
      mysql_query("INSERT INTO $prefix"._session." (username, time, host_addr, guest) VALUES ('$username', '$ctime', '$ip', '$guest')");
    }

    $result = mysql_query("SELECT username FROM $prefix"._session." where guest=1");
    $guest_online_num = mysql_num_rows($result);

    $result = mysql_query("SELECT username FROM $prefix"._session." where guest=0");
    $member_online_num = mysql_num_rows($result);

    $who_online_num = $guest_online_num + $member_online_num;

    $title = _WHOSONLINE;
   $content = "$who_online";
   
   $content = "<center><TABLE width=100% border=0 cellspacing=0 cellpadding=2 align=center>";

   
   if (is_user($user)) {   
      $content .= "<TR><TD>"._SELFNAME."</TD>";
      $content .= "<TD>$username</TD></TR>";
      
      $result = mysql_query("select uid from $prefix"._users." where uname='$username'");
      list($uid) = mysql_fetch_row($result);
      $result2 = mysql_query("select to_userid from $prefix"._priv_msgs." where to_userid='$uid'");
      $numrow = mysql_num_rows($result2);
      
   $content .= "<center><object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#3,0,0,0\" width=\"135\" height=\"42\">
    <param name=\"SRC\" value=\"flash/messenger.swf\"><param name=bgcolor value=\"#330000\">
     <embed src=\"flash/messenger.swf\" pluginspage=\"http://www.macromedia.com/shockwave/download/\" type=\"application/x-shockwave-flash\" width=\"135\" height=\"42\" bgcolor=\"#330000\">
    </embed></object><center><iframe src=\"buddy5.php\" width=\"140\" height=\"100\" frameborder=\"0\" scrolling=\"auto\"></iframe><br><hr color=\"660000\" size=\"1\"></p></a>";

    $content .= "<p align=\"center\"><img border=\"0\" src=\"images/on.gif\" width=\"22\" height=\"15\"> <a href=\"modules.php?name=Private_Messages\"><img border=\"0\" src=\"images/mail2.gif\" alt=\"Du hast $numrow Nachrichten\"></a>";
      $content .= "<center><font color=\"FFFF00\"><b>$numrow  Nachricht(en)</p></center>";
   
      }





   else
   {
      $content .= "<TR><TD>"._UARELOGGED."</TD>";
      $content .= "<TD>"._UAREANON."<br></TD></TR>";
         $content .= "<TR><TD>"._YOUAREAN."<br></TD>";
   }

   $content .= "<TR><TD>"._TOTALMEMBERS."</TD>";
   $content .= "<TD>$nummembers</TD></TR>";
   $content .= "<TR><TD>"._GUESTES."</TD>";
   $content .= "<TD>$guest_online_num</TD></TR>";
   $content .= "<TR><TD>"._MEMBERS."</TD>";
   $content .= "<TD>$member_online_num</TD></TR></TABLE><TABLE width=100% border=0 cellspacing=0 cellpadding=2>";

   








   if (is_user($user)) {
      $count = 1;
      $resWho = mysql_query ("SELECT username FROM $prefix"._session." where guest=0;");
      $content .= "<TR><hr color=\"660000\" size=\"1\">";
      while (list($userWho) = mysql_fetch_row($resWho)) {
         if ($count > 0) {
            $content .="";
         };
#################################################################################
#
#
#if ($user["user_avatar"]!="" && $user["user_avatar"]!="w.jpg"){
#         echo "<img src=\"images/forum/avatar/$user[user_avatar]\" alt=\"".$user["uname"]."\" width=\"14\" height=\"14\">\n";
#         }
#      
#      
#################################################################################


if (file_exists("modules/My_eGallery/gallery/members/$userWho.jpg")) {
$bild_groesse = getimagesize("modules/My_eGallery/gallery/members/$userWho.jpg");
$width=$bild_groesse[0];
$height=$bild_groesse[1];
         $content .= "<STRONG><BIG>ˇ</BIG></STRONG><a href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a>  <a href=\"foto.php?z=$userWho.jpg\" target=\"foto\" onclick=\"window.open('','foto','height=$height,width=$width,scrollbars=no,resizable=no')\" onMouseOver=\"window.status='mein foto';return true\" onMouseOut=\"window.status='';return true\" ><image border=\"0\" alt=\"User hat ein Foto im Account\" src=\"modules/My_eGallery/gallery/members/$userWho.jpg\" width=\"14\" height=\"14\"></a>";
}
else {
$content .= "<STRONG><BIG>ˇ</BIG></STRONG><a href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a>  <a><image border=\"0\" alt=\"Leider kein Foto\" src=\"images/nobild.gif\"></a>";
}

$content .="</td><tr>";
           $count ++;
      }
      }
      else
      {
      
   }
      $content .= "</TD>";
   $content .= "</TR>";
   $content .= "</TABLE></center>";
   
?>

ich möchte gerne das avatar neben den onlineuser angezeigt haben,das das avatar das geschlecht darstellt. männlich,weiblich oder ob es ein paar ist,welches online ist.

das was ich eingetragen habe,habe ich ersteinmal auskommentiert.

Andi

yep, jetzt hab ich's kapiert ;)....

So wird es aber nicht gehen. Die Variable $user["user_avatar"] kommt ja aus Deinem cookie, nicht aus der Tabelle nuke_users.
Du müsstest eine zusätzliche Abfrage auf diese Tabelle ausführen und den Avatar dort auslesen. Bzw. mit einer join Abfrage nuke_session <> nuke_users ....
Ich schau mir das Zuhause nochmal genauer an.
Später.... ;)
schön´s Grüssle, Andi

modelportal

das ist aber nett von dir. ich hatte es schon mal geschafft,das das avatar angezeigt wurde vor jedem namen. jedoch es war immer meins gewesen.

Andi

Hai Kai,

sorry, bin noch nicht dazu gekommen. Hatte Gestern Abend nen Plattencrash. Muss erst mal die Kiste wieder flott bringen......
schön´s Grüssle, Andi

modelportal

kann ich natürlich verstehen. hoffe,das alles wieder funktioniert. grins
kenne das auch zu gut. passiert immer dann,wenn mal kein backup gemacht wird.
mfg



EDIT: Name gelöscht

modelportal

vielleicht hat ja noch ein anderer eine idee?
mfg



EDIT: Name gelöscht

DarkBoy

So, mal auf die schnelle eine Kleine  Sache dazu:
Zitat$content .= "<TR><TD>"._SELFNAME."</TD>";
$content .= "<TD>$username  = = $geschlecht</TD></TR>";
 
das austauschen  wo es in deinem code steht. Dann folgendes oben irgendwo hinzu.
Zitat$result = mysql_query("select user_avatar FROM $prefix"._users." WHERE username='$username'");
$geschlecht = mysql_num_rows($result);

Sollte im groben so funktioníeren, aber wie gesagt nur auf die schnelle

modelportal

Warning: Supplied argument is not a valid MySQL result resource in /home/www/doc/500/xxxxgeil.de/hardcore/blocks/block-Who_is_Online.php on line 18

 das ist die fehlermeldung die angezeigt wird.

ich habe aber auch keine tabelle mit dem namen geschlecht.
ich möchte ja das die tabelle user_avatar ausgelesen wird und neben dem usernamen in der onlineliste angezeigt wird.
mfg



EDIT: Name gelöscht

modelportal

an siteadmin andi

würde mich freuen,wenn dein rechner wieder funktioniert,das du mir dann mal kurz helfen kannst.
mfg



EDIT: Name gelöscht

modelportal

hi darkboy
nach einigem email hin und her und nachdem du auch auf meiner kleinen website warst, meintest du ja,ich solles es hier weiter probieren,da du ja probleme mit einem server hattest.
das hattest du mir ein der letzten mail geschrieben:
-------------------------------------------------------------------------------------
Du musst den Usernamen aus der  nuke_sessions auslesen, dann mit dem
  usernamen einen query auf die nuke_user wo du das avatar ausliest.
  Dann kannst du den content schreiben.
-------------------------------------------------------------------------------------
ich gehe mal davon aus,dass das was damit zu tun hat:

$result = mysql_query("SELECT time FROM $prefix"._session." WHERE username='$username'");

--------------------------------------------------------------------------------------
aber wie lese ich nun das avatar aus dem usenamen aus? sorry,aber ich bekomme es einfach nicht gebacken. wenn ich was erreicht habe, erscheint wie du ja schon weist,immer mein avatar vor jedem der usernamen die online sind.

ich frage auch andere user des forums,denn die admins haben eine menge arbeit hier. ich hoffe,das mir da jemand weiter helfen kann.

einen schönen wochenanfang wünsche ich. mfg



EDIT: Name gelöscht

modelportal

hat keine eine idee,die ich auch verstehe?

modelportal

Das ist die Komplettlösung. Danke Dir Andi
----------------------------------------------------------------------------------------
if (is_user($user) && $member_online_num > 0) {
   #### UserAvatar eingebaut & HTML-Fehler behoben------ mods by Andi www.pragmamx.org #####
   $qry = "SELECT ${prefix}_session.username, ${user_prefix}_users.uname, ${user_prefix}_users.user_avatar
               FROM ${prefix}_session LEFT JOIN ${user_prefix}_users ON ${prefix}_session.username = ${user_prefix}_users.uname
               WHERE ${prefix}_session.guest=0;";
   $resWho = mysql_query ($qry);
   $content .= "<hr color=\"660000\" size=\"1\">\n<TABLE width=100% border=0 cellspacing=0 cellpadding=2>\n";
   while (list($sessuser, $userWho, $userAvatar) = mysql_fetch_row($resWho)) {
      if(empty($userWho)) {
         mysql_query ("DELETE FROM ${prefix}_session WHERE username='$sessuser';");
         }
      else {
         $userAvatar = (empty($userAvatar)) ? "nicht_auswaehlen.gif" : $userAvatar;
         $content .= "<tr><td><A HREF=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\"><img src=\"images/forum/avatar/$userAvatar\" border=\"0\" alt=\"$userWho\"></a></td><td>";
         if (file_exists("modules/My_eGallery/gallery/members/$userWho.jpg")) {
            $bild_groesse = getimagesize("modules/My_eGallery/gallery/members/$userWho.jpg");
            $width=$bild_groesse[0];
            $height=$bild_groesse[1];
            # funktioniert das richtig ??
            $content .= "<a href=\"foto.php?z=$userWho.jpg\" target=\"foto\" onclick=\"window.open('','foto','height=$height,width=$width,scrollbars=no,resizable=no')\" onMouseOver=\"window.status='mein foto';return true\" onMouseOut=\"window.status=''; return true;\"><img border=\"0\" alt=\"User hat ein Foto im Account\" src=\"images/foto.gif\"></a></td><td><a href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a>";
            #### sollte es nicht so heissen ??
            # $content .= "<a href=\"#\" target=\"foto\" onclick=\"window.open('foto.php?z=$userWho.jpg','foto','height=$height,width=$width,scrollbars=no,resizable=no'); return false;\" onMouseOver=\"window.status='mein foto';return true\" onMouseOut=\"window.status=''; return true;\"><img border=\"0\" alt=\"User hat ein Foto im Account\" src=\"images/foto.gif\"></a></td><td><a href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a>";
            }
         else {
            $content .= "<img border=\"0\" alt=\"Leider kein Foto\" src=\"images/nobild.gif\"></td><td><a href=\"modules.php?name=Your_Account&op=userinfo&uname=$userWho\">$userWho</a>";
            }
         $content .="</td><tr>";
         $count ++;
         }
      }
   }

Andi

 :luxhello:   :phantom:  
schön´s Grüssle, Andi

modelportal

die user auf meiner website finden die angaben jetzt echt klasse. einfach genial der andi. auch danke an darkboy,auch wenn sein vorschlag nicht ganz funzte.

Andi

Hehehe, mach langsam mit dem Lob :D  

Habe gerade beim Lesen des posts einen kleinen Fehler entdeckt.

Zeile 131 muss so lauten:

$content .="</td></tr>";

es fehlt der slash vor dem tr ;)  

ach ja, und Zeile 132 ist überflüssig....

[Editiert am 27.1.2003 von SiteAdmin Andi]
schön´s Grüssle, Andi

modelportal

hi andi. habe den block komplett so kopiert und eingefügt. trotzdem funzt er. habe mal eine andere frage. bin gerade über einen anderen rechner auf meine website gegangen und stellte fest,das meine website von dem rechner hier eigenartig aussieht.ich sende dir mal den link zu meiner website. schaue es dir mal bitte an. normalerweise sollten als unangemeldeter user dennoch alle blöcke auf der linken seite erscheinen.die mitteilung ist unter dem letzten block sowie put in home auch. woran könnte das liegen?