User Colour ( Snippet ) für Externe Seiten

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
HumanK
Mitglied
Beiträge: 3
Registriert: 15.03.2010 09:24

User Colour ( Snippet ) für Externe Seiten

Beitrag von HumanK »

Hallo liebe phpbb Community,

ich arbeite schon seit einer weile mit phpbb 2/3 und bin immer begeisteter Benutzer dieser Plattform.
Nun fällt es mir etwas schwer einen ( Snippet ) zu finden die mir die Benutzerfarbe eines Mitglieds
Extern auf einer Webseite darstellt. Ich habe folgenden Code zur Darstellung der Mitglieder die
Online sind wie Gäste / registrierte Mitglieder und die Ausgabe der Namen der registrierten Mitglieder.

Das Session handling ist bereits in der Seite integriert und dies funktioniert auch wunderbar, das sollte
daher kein Problem sein. Ich habe bereits ein wenig mit der Abfrage der Datenbank gewerkelt, leider bin
ich dort auf keinen nenner gekommen.

Code: Alles auswählen


<!-- Aktueller Code ohne Colour / Farbausgabe -->


<?php

include ("connect.php");

if ($dba) {
   $counter = 1;
   $time = time() - 300;
   
   $query = "SELECT DISTINCT session_user_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id > '1'";
   $result = mysql_query($query);
   if (mysql_num_rows($result) <= 0) {
      $registerd_count = 0;
   } else {
      $registerd_count = mysql_num_rows($result);
   }
   
   $query_b = "SELECT DISTINCT session_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id = '1'";
   $result_b = mysql_query($query_b);
   if (mysql_num_rows($result_b) <= 0) {
      $guest_count = 0;
   } else {
      $guest_count = mysql_num_rows($result_b);
   }
   
   print "Benutzer Online: ".$registerd_count." <br /> Gäste Online: ".$guest_count."<br /><br />";

   if ($registerd_count >= 1) {
      while($row = mysql_fetch_array($result)) {
         $query_c = "SELECT username FROM phpbb_users WHERE user_id = '".$row['session_user_id']."'";
         $result_c = mysql_query($query_c);
         $row_c = mysql_fetch_array($result_c);
         $user_name[$counter] = $row_c['username'];
         
         if ($counter != $registerd_count) {
            print "<a href='forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."'><b>".$user_name[$counter]."</b></a> || ";
         } else {
            print "<a href='forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."'><b>".$user_name[$counter]."</b></a>";
         }
         
         $counter += 1;
      }
   }

   mysql_close($dba);
}

?>


Dies ist mein aktueller Code zur Abfrage der Mitglieder Online.

-------------------------------------------------------------------------------------------------------

Jetzt meine frage. Wie müsste der Code aussehen damit ich die Farbe des jeweiligen Benutzers darstellen kann ?

Code: Alles auswählen

   

<!-- Getesteter Mysql zur Abfrage der Farbe, ohne Erfolg -->

 $query_c = "SELECT username, user_colour FROM phpbb_users WHERE user_id = '".$row['session_user_id']."'"; 
Diese Mysql Abfrage habe ich bereits getestet, leider ohne Erfolg. Vielleicht wüsste ja jemand von euch Rat und könnte mir ein wenig
unter die Arme greifen.

Ich danke euch sehr im Vorraus, und wünsche euch noch einen schönen Tag.

Gruß HumanK :grin:
HumanK
Mitglied
Beiträge: 3
Registriert: 15.03.2010 09:24

Re: User Colour ( Snippet ) für Externe Seiten

Beitrag von HumanK »

Ich habe den Code soweit angepasst das er $user->data['user_colour'] mit ausgibt,
leider ist es nun so das wenn ein Mitglied aus einer anderen Grp angemeldet ist das
er in der selben Benutzerfarbe dargestellt wird wie ich selbst.

So sieht der Code aus.

Code: Alles auswählen



<?php

include ("includes/connect.php");

if ($dba) {
   $counter = 1;
   $time = time() - 300;
   
   $query = "SELECT DISTINCT session_user_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id > '1'";
   $result = mysql_query($query);
   if (mysql_num_rows($result) <= 0) {
      $registerd_count = 0;
   } else {
      $registerd_count = mysql_num_rows($result);
   }
   
   $query_b = "SELECT DISTINCT session_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id = '1'";
   $result_b = mysql_query($query_b);
   if (mysql_num_rows($result_b) <= 0) {
      $guest_count = 0;
   } else {
      $guest_count = mysql_num_rows($result_b);
   }
   
   print "".$registerd_count." Mitglieder Online  <br />".$guest_count." Gäste Online<br /><br />";

   if ($registerd_count >= 1) {
      while($row = mysql_fetch_array($result)) {
         $query_c = "SELECT username, group_id FROM phpbb_users WHERE user_id = '".$row['session_user_id']."'";
         $result_c = mysql_query($query_c);
         $row_c = mysql_fetch_array($result_c);
         $user_name[$counter] = $row_c['username'];
         
         if ($counter != $registerd_count) {
            print "<a href=\"forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."\" style=\"color:#".$user->data['user_colour'].";text-decoration:none;\"><b>".$user_name[$counter]."</b></a> || ";
         } else {
            print "<a href=\"forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."\" style=\"color:#".$user->data['user_colour'].";text-decoration:none;\"><b>".$user_name[$counter]."</b></a>";
         }
         
         $counter += 1;
      }
   }

   mysql_close($dba);
}

?>



gibt es eine möglichkeit die Gruppenzugehörigkeit also row group_id in ein strg_replace einzubinden ?

Code: Alles auswählen


$user->data['group_id'] = str_replace("1","ff0000",$user->data['group_id']);

Bin ehrlich gesagt ein wenig überfragt ? Vllt. hat von Euch ja jemand mehr Ahnung und könnte mir einen
Tipp geben wie das zu bewerkstelligen ist.

Gruß HumanK
HumanK
Mitglied
Beiträge: 3
Registriert: 15.03.2010 09:24

Re: User Colour ( Snippet ) für Externe Seiten

Beitrag von HumanK »

Nunja ein bisschen peinlich is des ja schon :D Aber jetzt hab ich des so wie ich es fast wollte,
das einzige Problem bei der Sache ist nun das des Script nicht die phpBB Datenbank Connection
benutzt. Wie kann ich das Realisieren ? Vielen dank im Vorraus für Eure hilfe.

Code: Alles auswählen


<?

    include("includes/connect.php");

    if ($db) {
       $counter = 1;
       $time = time() - 300;
       
       $query = "SELECT DISTINCT session_user_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id > '1'";
       $result = mysql_query($query);
       if (mysql_num_rows($result) <= 0) {
          $registerd_count = 0;
       } else {
          $registerd_count = mysql_num_rows($result);
       }
       
       $query_b = "SELECT DISTINCT session_id FROM phpbb_sessions WHERE session_time > '" . $time . "' AND session_user_id = '1'";
       $result_b = mysql_query($query_b);
       if (mysql_num_rows($result_b) <= 0) {
          $guest_count = 0;
       } else {
          $guest_count = mysql_num_rows($result_b);
       }

       
       print "".$registerd_count." Mitglieder Online  <br />".$guest_count." Gäste Online<br /><br />";


        if ($registerd_count >= 1) {
       
       while($row = mysql_fetch_array($result)) {
            
            $query_c = "SELECT username, user_colour FROM phpbb_users WHERE user_id = '".$row['session_user_id']."'";
             $result_c = mysql_query($query_c);
             $row_c = mysql_fetch_array($result_c);
             $user_name[$counter] = $row_c['username'];
           $user_colour = $row_c['user_colour'];
       
         if ($counter != $registerd_count) {
                print "<a href=\"forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."\" style=\"color:#".$row_c['user_colour'].";text-decoration:none;\"><b>".$user_name[$counter]."</b></a> - ";
             } else {
                print "<a href=\"forum/memberlist.php?mode=viewprofile&u=".$row['session_user_id']."\" style=\"color:#".$row_c['user_colour'].";text-decoration:none;\"><b>".$user_name[$counter]."</b></a>";
             }
             
             $counter += 1;
          }
       }
       
    }


       

?>


Antworten

Zurück zu „[3.0.x] Mod Bastelstube“