Mitglieder einer bestimmten Gruppe anzeigen lassen

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
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von timotheus »

Hi @all,

ich würde gerne in unserem Forum auf einer bestimmten Seite Mitglieder einer festgelegten Gruppe anzeigen lasse.

Wie fange ich da am Besten an.

Vmtl. brauchts erstmal eine *.php in der die Datnebank ausgelesen abgefragt wird und dann eine Template Datei die dann die Ergebnisse anzeigt. Leider ist mein Kenntniss Bereich was PHP angeht sehr schlecht. Ich kann eigentlich nur HTML und CSS :oops:

Kann mir jemand sagen wie ich anfangen muss, würde mir das auch gerne aneignen, nur weiss ich noch nicht mal wo ich anfangen soll.

Es genügt im Prinzip die Auflistung wie in der Memberlist nur halt von anfang an nach Gruppe gefiltert und auf einer anderen Seite.

Würde mich freuen wenn mir da jemand den Anfang erklären könnte.

Danke und Grüße
Timotheus
Wie ich bereits sagte, ich wiederhole mich nie!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von Pyramide »

Wenn du noch gar keine Ahnung von PHP hast, solltest du
  1. Erstmal mit den Grundlagen anfangen und ein PHP-Tutorial durcharbeiten
  2. Gucken, ob es einen vorhandenen Mod gibt, der das macht, was du möchtest (ggf. mit kleineren Anpassungen)
  3. oder einen Auftrag in der Jobbörse einstellen, dass es jemand für dich programmiert
KB:knigge
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von timotheus »

Ok Danke für die schnelle Antwort.

Habe mich schon durch ein paar Tutorials gelesen. Da ich es gern selber machen würde (soll kein MOD werden) möächte ich ungern, das mir jemand etwas schreibt, dann wäre es ja fertig und ich müsste nix mehr tun. :oops:

Mein Ansatz wäre folgender gewesen:

Code: Alles auswählen

<?php
$abfragegruppe = "SELECT * FROM phpbb_user_group WHERE group_id = '11'";

$abfrageuser = mysql_query($abfragegruppe);
while($row = mysql_fetch_object($abfrageuser))
   {
   $abfrageusername = "SELECT * FROM phpbb_user WHERE id ='$abfragegruppe'";

$listuser = mysql_query($abfrageusername);

while($row = mysql_fetch_object($listuser))
   {
   echo "$row->username <br>";
   }

   }
?>
Würde das so in etwa funktionieren, wahrscheinlich nicht?!

Falls ich natürlich hier im völlig falschen Bereich bin dann bitte schieben.

Danke.
Wie ich bereits sagte, ich wiederhole mich nie!
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von Miriam »

Der Ansatz ist schon mal nicht schlecht. Du solltest Dich aber, wenn Du schon innerhalb des phpBB3 programmierst an die "Terminologie" halten und auch phpBB3 interne Funktionen verwenden.

Den Start-Ort (memberlist.php) Deiner Suche hast Du ja nun schon gefunden.
Und so kannst Du Dir (bspw.) die Mitglieder der Administratoren Gruppe anzeigen lassen -> memberlist.php?mode=group&g=111545. Achte auf die übergebenen Parameter.
Zuletzt geändert von Miriam am 28.06.2012 18:08, insgesamt 2-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von Pyramide »

Die Variable $abfragegruppe enthält doch die komplette erste SQL-Abfrage, die macht als Bedingung für die user_id doch gar keinen Sinn. Ansonsten brauchst du gar keine zweite Abfrage, sondern kannst einfach einen JOIN verwenden:

Code: Alles auswählen

SELECT u.user_id, u.username, ...
FROM phpbb_user_group ug
JOIN phpbb_users u ON (ug.user_id = u.user_id)
WHERE ug.group_id=123
ORDER BY u.username ASC
Ansonsten noch Lesestoff:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
http://wiki.phpbb.com/Tables
http://www.php-faq.de/q-sql-fehlerbehandlung.html
KB:knigge
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von timotheus »

Hey Miriam,

na super dann wäre meine Abfrage ja hinfällig, trotzdem natürlich danke :)

Mit memberlist.php?mode=group&g=11 bekomme ich somit das gesuchte Ergebnis.

Jetzt habe ich es so gemacht, dass ich den Inhalt der memberlist.php in die userlist.php reinkopiert habe und bekomme nun mit aufruf der userlist.php?mode=group&g=11 die Seite, die ich will allerdings, kann man mit weglassen der Parameter dann unter dem eigentlichen Text alle Mitglieder sehen. LOGISCH! 8)

Mal abgesehen davon kommt für Gäste natürlich die Loginseite, will ich auch nicht, man soll schon die User sehen für registrierte Benutzer natürlich mit Link zum Profil und für Gäste ohne Link zum Profil.

Wär folgendes ein Lösungsansatz?

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

include($phpbb_root_path . 'memberlist.' . $phpEx , 'mode=group&g=');

Ich glaub das wird zuviel Input für mich :o
Wie ich bereits sagte, ich wiederhole mich nie!
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: Mitglieder einer bestimmten Gruppe anzeigen lassen

Beitrag von timotheus »

Pyramide hat geschrieben:Die Variable $abfragegruppe enthält doch die komplette erste SQL-Abfrage, die macht als Bedingung für die user_id doch gar keinen Sinn. Ansonsten brauchst du gar keine zweite Abfrage, sondern kannst einfach einen JOIN verwenden:

Code: Alles auswählen

SELECT u.user_id, u.username, ...
FROM phpbb_user_group ug
JOIN phpbb_users u ON (ug.user_id = u.user_id)
WHERE ug.group_id=123
ORDER BY u.username ASC
Ansonsten noch Lesestoff:
http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten
http://wiki.phpbb.com/Tables
http://www.php-faq.de/q-sql-fehlerbehandlung.html
Hab zulange mit meiner Antwort gebraucht guck ich mir mal an den Lesestoff. Das muss doch gehen so wie ich das will, wird wohl nur ne Weile dauern :grin:

Dank dir Pyramide
Wie ich bereits sagte, ich wiederhole mich nie!
Antworten

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