ilch Forum » Allgemein » HTML, PHP, SQL,... » Avatar in der Online Box

Geschlossen
  1. #1
    User Pic
    gunhartt Mitglied
    Registriert seit
    06.08.2009
    Beiträge
    11
    Beitragswertungen
    0 Beitragspunkte
    Hallo,
    wie kann ich mir anstatt der gruenen Online Maennchen in der Online Box die Avatare der Leute die Online sind anzeigen lassen?
    So das man das Avatar sieht und darunter den Namen.

    betroffene Homepage: localhost
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.676
    Beitragswertungen
    1212 Beitragspunkte
    Statt der Ausgabe des Onlinebildes, das Avatar abrufen und ausgeben!

    zB.:
    $ergavatar = @db_result(db_query('SELECT avatar FROM prefix_user WHERE id='.$row->uid),0);
    if (file_exists($ergavatar)) 
    {
    $avatar = '<img src="'.$ergavatar.'" border="0">';
    } else { 
    $avatar = '<img src="include/images/avatars/noavatar.jpg" border="0">';
    }
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    gunhartt Mitglied
    Registriert seit
    06.08.2009
    Beiträge
    11
    Beitragswertungen
    0 Beitragspunkte
    Moin,
    danke fuer die Hilfe.
    Hab es aber noch nicht ganz geschafft. Bekomme jetzt die Avatare angezeigt, aber nur von denen die welche haben.
    Hab versucht das mit dem noavatar irgendwie reinzubekommen, hat aber nicht geklappt. Ich poste mal meine online php. Vielleicht kannst du mir noch bitte erklaeren wo ich da die Ausgabe fuers noavatar reinsetzen muss.

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', time() - 60);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    
    while ($row = db_fetch_object($resultID)) {
        if ($row->uid != 0 AND $brk!=$row->uid) {
            $ergavatar = @db_result(db_query('SELECT avatar FROM prefix_user WHERE id='.$row->uid),0);
        if (file_exists($ergavatar))
            {
            $avatar = '<img src="'.$ergavatar.'" border="0"  height="40" width="40">';
            } else {
            $avatar = '<img src="include/images/avatars/noavatar.jpg" border="0"  height="40" width="40">';
            }
            
            $name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
            $content.= '<tr><td><a href="index.php?user-details-'.$row->uid.'"><img src="'.$ergavatar.'" border="0"  height="40" width="40" a   ></td>';
            $content.='<td><a href="index.php?user-details-'.$row->uid.'">'.$name.'</a></td></tr>'."\n";
            $uid[] = $row->uid;
        }
        
    }
     
    ?>
    <table align="center"  border="0" cellpadding="4" cellspacing="5" >
     <?php echo $content; ?>
    </table>
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.676
    Beitragswertungen
    1212 Beitragspunkte
    $avatar nicht $ergavatar und noch ein paar Fehler im content

    $content.= '<tr><td><a href="index.php?user-details-'.$row->uid.'">'.$avatar.'<br>'.$name.'</a></td></tr>'."\n";


    $avatar -> beinhaltet img + definierte Größe
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    gunhartt Mitglied
    Registriert seit
    06.08.2009
    Beiträge
    11
    Beitragswertungen
    0 Beitragspunkte
    Danke!
    Hab's jetzt so geloest.

    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', time() - 60);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    
    
    while ($row = db_fetch_object($resultID)) {
        if ($row->uid != 0 AND $brk!=$row->uid) {
            
         
          $ergavatar = @db_result(db_query('SELECT avatar FROM prefix_user WHERE id='.$row->uid),0);
     
          if (file_exists($ergavatar))
      
          {
       
          $avatar = '<img src="'.$ergavatar.'" border="0"  width="40" height="40" >';
     
          } else {
       
          $avatar = '<img src="include/images/avatars/noavatar.jpg"  border="0"  width="40" height="40" >';
      
          }
    
            
            $name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
    
          $content.= '<tr><td><a href="index.php?user-details-'.$row->uid.'"  >'.$avatar.'<br>'.$name.'</a></td></tr>'."\n";
          
    
            $uid[] = $row->uid;
        }
        
    }
     
    ?>
    <table  align="center"  border="0" cellpadding="4" cellspacing="5" >
     <?php echo $content; ?>
    </table>


    Kann man das auch noch umaendern, das 2 oder 3 nebeneinander angezeigt werden? Also 2 oder 3 Spalten machen?
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.676
    Beitragswertungen
    1212 Beitragspunkte
    Möglich ist alles!
    Wie breit ist denn deine Onlinebox?
    Wie soll es genau ausehen?
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    gunhartt Mitglied
    Registriert seit
    06.08.2009
    Beiträge
    11
    Beitragswertungen
    0 Beitragspunkte
    Die Box ist 250px breit.
    Denke da haetten dann 4 Avatare nebeneinander Platz.
    Der 5te der Online ist, geht dann in die naechste Zeile.
    Also 4 Spalten x 5 Zeilen.
    Eigentlich wie bei Facebook die Freunde Anzeige.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.676
    Beitragswertungen
    1212 Beitragspunkte
    <?php
    if (!defined('main')) {die("no direct access");}
    $dif = date('Y-m-d H:i:s', time() - 60);
    $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
    $resultID = db_query($abf);
    $brk='';
    $uid = array();
    $guests = 0;
    $guestn = $lang['guests'];
    $content='';
    $u = 0;
    while ($row = db_fetch_object($resultID)) {
        if ($row->uid != 0 AND $brk!=$row->uid) {
          $ergavatar = @db_result(db_query('SELECT avatar FROM prefix_user WHERE id='.$row->uid),0);
          if (file_exists($ergavatar))
          {
          $avatar = '<img src="'.$ergavatar.'" border="0"  width="40" height="40" >';
          } else {
          $avatar = '<img src="include/images/avatars/noavatar.jpg"  border="0"  width="40" height="40" >';
          }
          $name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
          $content.= '<div style="float:left;margin:2px;"><a href="index.php?user-details-'.$row->uid.'" title="'.$name.'">'.$avatar.'</a></div>';
    	  $u++; if ($u % 4 == 0) {$content.= "<br>";}
          $uid[] = $row->uid;
        }
    }
    
    ?>
    <table  align="center"  border="0"><tr><td><?php echo $content; ?></td></tr></table>
    rules :: doku :: faq :: linkus
    1 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    gunhartt Mitglied
    Registriert seit
    06.08.2009
    Beiträge
    11
    Beitragswertungen
    0 Beitragspunkte
    Super, hat geklappt! Natuerlich! lächeln

    Danke fuer die Hilfe!
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Deathman Mitglied
    Registriert seit
    26.06.2007
    Beiträge
    35
    Beitragswertungen
    0 Beitragspunkte
    Geht es auch das Passende Avatar hinter dem Namen des jenigen der gerade Online ist anzeigen zu lassen ??
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.676
    Beitragswertungen
    1212 Beitragspunkte
    Klar geht das, schau Dir mal den obn geposteten Code an, der zeigt wie es geht!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    CaZper Mitglied
    Registriert seit
    03.01.2011
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    Vielen Lieben Dank hierfür lächeln

    Dazu hätte ich noch ne Idee / Frage

    Könnte man statt des Links zu den Usr.details
    auch ein kleines menü anzeigen lassen ?

    z.B

    User details
    PM schicken
    E-mail senden


    das wäre toll lächeln
    kann dochmal passieren lachen
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Möchte die Online box nur auf Freunde bezogen haben wie mach ich daS?
    auf das freundes modul was hier zum download angeboten wird anpassen


    Zuletzt modifiziert von Nex4T am 30.08.2011 - 14:52:42
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    sry push :/

    im prinzip

    diese datei
    <?php
    defined('main') or die('no direct access');
    
    if (loggedin()) {
      $dif = date('Y-m-d H:i:s', time() - 60);
      $sql = db_query("SELECT a.fid as aktfid, b.name, IF(MAX(c.uptime) > '$dif','online','offline') as status
                       FROM `prefix_friends` a
                       LEFT JOIN `prefix_user` b ON a.fid = b.id
                       LEFT JOIN `prefix_online` c ON a.fid = c.uid
                       WHERE a.uid = {$_SESSION['authid']}
    				   GROUP BY a.fid, b.name
    				   ORDER BY status DESC");
      while ($r = db_fetch_object($sql)) {
        echo '<img src="include/images/icons/'.$r->status.'.gif" alt="'.$r->status.'" border="0" /><a href="index.php?forum-privmsg-new=0&amp;empfid='.$r->aktfid.'">'.$r->name.'</a>
    	
    	<br />';
      }
      
      echo '<br /><a href="index.php?freunde">Freundeliste bearbeiten</a><br />';
    } else {
      echo 'Nur für angemeldete User.<br />';
    }
    ?>


    mit dieser hier kombinieren :/

        <?php
        if (!defined('main')) {die("no direct access");}
        $dif = date('Y-m-d H:i:s', time() - 60);
        $abf = "SELECT uid FROM `prefix_online` WHERE uptime > '". $dif."'";
        $resultID = db_query($abf);
        $brk='';
        $uid = array();
        $guests = 0;
        $guestn = $lang['guests'];
        $content='';
        $u = 0;
        while ($row = db_fetch_object($resultID)) {
            if ($row->uid != 0 AND $brk!=$row->uid) {
              $ergavatar = @db_result(db_query('SELECT avatar FROM prefix_user WHERE id='.$row->uid),0);
              if (file_exists($ergavatar))
              {
              $avatar = '<img src="'.$ergavatar.'" border="0"  width="40" height="40" >';
              } else {
              $avatar = '<img src="include/images/avatars/noavatar.jpg"  border="0"  width="40" height="40" >';
              }
              $name=@db_result(db_query('SELECT name FROM prefix_user WHERE id='.$row->uid),0);
              $content.= '<div style="float:left;margin:4px;"><a href="index.php?user-details-'.$row->uid.'" title="'.$name.'">'.$avatar.'</a></div>';
              $u++; if ($u % 4 == 0) {$content.= "<br>";}
              $uid[] = $row->uid;
            }
        }
         
        ?>
        <table  align="center"  border="0"><tr><td><?php echo $content; ?></td></tr></table>



    Zuletzt modifiziert von Nex4T am 30.08.2011 - 14:56:30
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    So?

    <?php
    defined('main') or die('no direct access');
     
    if (loggedin()) {
      $dif = date('Y-m-d H:i:s', time() - 60);
      $sql = db_query("SELECT a.fid as aktfid, b.name, b.avatar, IF(MAX(c.uptime) > '$dif','online','offline') as status
                       FROM `prefix_friends` a
                       LEFT JOIN `prefix_user` b ON a.fid = b.id
                       LEFT JOIN `prefix_online` c ON a.fid = c.uid
                       WHERE a.uid = {$_SESSION['authid']}
                       GROUP BY a.fid, b.name
                       ORDER BY status DESC");
      while ($r = db_fetch_object($sql)) {
        if (file_exists($r->avatar)) {
            $avatar = '<img src="'.$ergavatar.'" border="0"  width="40" height="40" title="'.$r->name.'">';
        } else {
            $avatar = '<img src="include/images/avatars/noavatar.jpg"  border="0"  width="40" height="40" >';
        }
        echo '<img src="include/images/icons/'.$r->status.'.gif" alt="'.$r->status.'" border="0" /><a href="index.php?forum-privmsg-new=0&amp;empfid='.$r->aktfid.'">'.$avatar.'</a>
        
        <br />';
      }
      
      echo '<br /><a href="index.php?freunde">Freundeliste bearbeiten</a><br />';
    } else {
      echo 'Nur für angemeldete User.<br />';
    }
    ?>
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    So ists schon richtig das problem an der ganzen sache ist er zeigt kein avater an und kein namen ; also ich möchte es gern so haben :

    Avater___user 1______IM-Chatbutton_on/off-img
    Avater___user 2______IM-Chatbutton_on/off-img
    Avater___user 3______IM-Chatbutton_on/off-img
    Avater___user 4______IM-Chatbutton_on/off-img

    kanste dir eine vorstellung davon machen ? lächeln

    ps. Mairu ich danke dir das du dir die zeit nimmst meine probleme zu bewältigen zwinker hast was gut bei mir !


    Zuletzt modifiziert von Nex4T am 31.08.2011 - 10:20:22
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh stimmt, hatte da ne Variable vergessen umzubenennen, naja also ich habs nicht getestet, hoffe aber wenige bis keine Fehler eingebaut zu haben.

    <?php
    defined('main') or die('no direct access');
    
    if (loggedin()) {
        $dif = date('Y-m-d H:i:s', time() - 60);
        $sql = db_query("SELECT a.fid as aktfid, b.name, b.avatar, IF(MAX(c.uptime) > '$dif','online','offline') as status
                       FROM `prefix_friends` a
                       LEFT JOIN `prefix_user` b ON a.fid = b.id
                       LEFT JOIN `prefix_online` c ON a.fid = c.uid
                       WHERE a.uid = {$_SESSION['authid']}
                       GROUP BY a.fid, b.name
                       ORDER BY status DESC");
        echo '<table>';
    
        while ($r = db_fetch_object($sql)) {
            if (file_exists($r->avatar)) {
                $avatar = '<img src="'.$r->avatar.'" border="0"  width="40" height="40" title="'.$r->name.'">';
            } else {
                $avatar = '<img src="include/images/avatars/noavatar.jpg"  border="0"  width="40" height="40" >';
            }
            echo '<tr><td>'.$avatar.'</td>'
                .'<td><a href="index.php?user-details-'.$r->aktfid.'">'.$r->name.'</a></td><td>'
                .'<a href="index.php?forum-privmsg-new=0&amp;empfid='.$r->aktfid.'">PM</a>'
                .'<img src="include/images/icons/'.$r->status.'.gif" alt="'.$r->status.'" border="0" />'
                .'</td></tr>';
        }
    
        echo '</table><br /><a href="index.php?freunde">Freundeliste bearbeiten</a><br />';
    } else {
        echo 'Nur für angemeldete User.<br />';
    }
    ?>
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    Hay super klappt genau so wioe ichs haben wolte zwinker Danke dir lächeln

    nur eine frage noch kann ich statt PM , chat machen damit sich der IM Messenger öffnet von hier ?

    als ichs probiert hatte zeigte er mir direckt fehler an :/

    edit:

    hab da auch noch eine frage wie kann ich einem Input einen background image geben ? habs mit class versucht ging aber nicht :/


    Zuletzt modifiziert von Nex4T am 31.08.2011 - 11:05:39
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ich muss dazu natürlich auch wissen, wie du den Chat öffnen willst, also einen Link etc.

    Zum Brackground, du kannst das schon mit einer Klasse machen, nur musst du die Klasse dann natürlich auch in einer deiner css Dateien erstellen und ein background-image dafür festlegen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Nex4T Moderator
    Registriert seit
    28.02.2007
    Beiträge
    3.414
    Beitragswertungen
    213 Beitragspunkte
    so das ich auf den kleiner avater klicke und der im messenger sich öffnet ;

    habs so gemacht wie hier :/

    www.dhtmlgoodies.com/?whichTipsAndTricks=input-with-background
    while(!asleep()) sheep++;
    www.movely.biz
    www.webplant.eu
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Das mit dem Avatar hab ich schon verstanden, ich meine nur dass ich nicht weiß wie dein Messenger geöffnet wird, also kann ich dir dazu auch nix schreiben, ich geh mal davon aus dass das Avatar einfach mit <a href=... verlinkt werden muss, aber dafür bräuchte ich halt ein Beispiellink.

    Und genau wie es bei dem Link beschrieben ist, sollte es auch gehen, deinen Fehler, falls du einen gemacht hast, kann ich aber nur an einer Seite, die ich selbst aufrufen kann nachvollziehen, also müsstest du einen Link angeben oder Code posten.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten