Beiträge: 213
Themen: 8
Registriert seit: 02.09.2009
MyBB-Version: 1.6.11
Ich habe gesucht und nichts gefunden, daher eine Idee oder auch ein Wunsch von mir:
Wäre es möglich eine Seite zu schreiben, woüber man herausfindet, wo ich in der Buddyliste stehe bzw. wer mich als Freund hinzugefügt hat?
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
Profile Buddies kann zumindest eine PM oder E-Mail versenden, wenn dich jemand in seine Liste aufnimmt. Vielleicht ist das für Anfang erst einmal ok? In Zukunft wollte ich das Plugin noch so erweitern, wie du es angefragt hattest - nicht als eigene Seite, sondern direkt als Box, in deinem Profil (hatte nur keine Zeit bis jetzt).
Beiträge: 213
Themen: 8
Registriert seit: 02.09.2009
MyBB-Version: 1.6.11
Das Profile Buddies Plugin nutze ich bereits. Das funktioniert klasse. Dennoch wäre eine Liste der Leute die einen als Buddy aufgenommen haben sehr hilfreich.
Meine Mitglieder Seiten habe ich zumindestens so editiert, daß man die eigenen Buddys aufgezeigt bekommt. Allerdings wird hier nur die UID angezeigt. Auch hier hätte ich gerne eine Lösung, daß die Mitgliedsnamen angezeigt werden. Selbiges gilt auch für die Referer. Als Anhang mal meine Mitgliederliste mit meinen Daten:
Hat jemand eine Idee wie man das realisieren könnte?
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Ich finde die Idee ganz interessant, auch wenn ich selbst nicht den Bedarf dafür habe. Aber ich habe mal (laienhaft) versucht, mich des Problems zu nähern.
Mit folgendem Code bekomme ich alle Freundeslisten angezeigt, die von den Usern angelegt wurden.
PHP-Code: <?php define("IN_MYBB", 1); require("global.php"); global $db; //add_breadcrumb("Check Buddylist");
$query = $db->query("SELECT uid, buddylist FROM ".TABLE_PREFIX."users WHERE buddylist != '' ORDER BY uid ASC");
// nur zum Testen echo "Meine User-ID lautet: ".$mybb->user['uid']; echo "<br /><br /><br />"; // Test Ende
while($check = $db->fetch_array($query)) { if(in_array($mybb->user['uid'], $check['buddylist'])){ echo $check['uid']." || ".$check['buddylist']; echo "<br />"; } }
//eval("\$checkbuddylist = \"".$templates->get("checkbuddylist")."\";"); //output_page($checkbuddylist); ?>
Lasse ich die if-Anweisung weg und belasse nur die echo-Anweisungen in der while-Schleife, wird die komplette Liste aller vorhandenen Buddylists in Abhängigkeit der zugehörigen User-IDs angezeigt. Nun dachte ich, man könnte mit der Fkt. "in_array" überprüfen, in welcher Buddylist "meine" uid vorkommt, aber irgendwo steckt da ein Fehler drin. Die Seite spuckt dann nur meine eigene ID aus.
Aus diesem Grund habe ich auch noch nicht mit der Erstellung von Templates angefangen.
Würde mich interessieren, wie eine schlussendliche PHP-Lösung aussehen könnte.
Beiträge: 213
Themen: 8
Registriert seit: 02.09.2009
MyBB-Version: 1.6.11
Vielen Dank schonmal für deinen Versuch. Ich werde mit deiner Version mal rumspielen und wäre sehr erfreut, wenn der ein oder andere Plugin Profi mitwirken würde. Wenn wir eine Lösung für die Buddyliste finden sollte diese dann eigentlich auch auf die Referer anwendbar sein. Somit hätte man 2 neue Seiten bzw. Funktionen mehr, die der Übersichtlichkeit dienen.
Beiträge: 2.041
Themen: 10
Registriert seit: 28.06.2007
MyBB-Version: 1.8.x
06.04.2010, 01:57
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2010, 12:15 von doylecc.)
Ich habe auch ein bisschen an Jockls Version rumgebastelt.
Mit diesem Code werden mir die User angezeigt, bei denen ich in der Buddyliste stehe:
PHP-Code: <?php define("IN_MYBB", 1); require("global.php"); global $db;
echo "<b>Ich bin in der Buddyliste von:</b>"; echo "<br /><ul>";
$uid = intval($mybb->user['uid']);
if($uid !=0) { $query = $db->query("SELECT * FROM ".TABLE_PREFIX."users WHERE buddylist !=''"); $check = ""; $i = 0;
while($check = $db->fetch_array($query)) { $buddy[$i]['buddylist'] = explode(',',$check['buddylist']); if(in_array($uid,$buddy[$i]['buddylist'])) { $buddy[$i]['username'] = $check['username']; echo "<li>".$buddy[$i]['username']."</li>"; } $i++; } echo "</ul>"; } else { echo "Kein Eintrag!"; }
?>
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
Hallo,
PHP-Code: $query = $db->query("SELECT * FROM ".TABLE_PREFIX."users");
Das würde ich eher so schreiben:
PHP-Code: $query=$db->simple_select('users','buddylist','buddylist!=""');
Jetzt weiß ich auch wieder, warum ich das nicht in Profile Buddies eingebaut hatte. Das ganze ich nicht sehr performant. Bei einem Forum mit überschaubarer Benutzeranzahl mag das noch gehen, aber bei größeren Foren ist eine while-Schleife über eine unbekannte Anzahl an Arrays extrem unpraktikabel.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
(06.04.2010, 09:11)querschlaeger schrieb: PHP-Code: $query = $db->query("SELECT * FROM ".TABLE_PREFIX."users WHERE buddylist !=''");
Das würde ich eher so schreiben:
PHP-Code: $query=$db->simple_select('users','buddylist','buddylist!=""');
Gibt es dafür einen Grund, querschlaeger? Ist das schneller?
(06.04.2010, 09:11)querschlaeger schrieb: Bei einem Forum mit überschaubarer Benutzeranzahl mag das noch gehen, aber bei größeren Foren ist eine while-Schleife über eine unbekannte Anzahl an Arrays extrem unpraktikabel. Gutes Argument!
OT
Bei so einer Liste bin ich auch generell hin und her gerissen. Stelle mir gerade vor, dass die User dann ständig in die Liste "spitzen" und nachsehen, wer sie denn nun als "Freund" gelinkt hat oder nicht.....
...aber darum geht es ja hier nicht.
OT Ende
Beiträge: 1.443
Themen: 95
Registriert seit: 15.12.2005
MyBB-Version: 1.6.x
06.04.2010, 20:45
(Dieser Beitrag wurde zuletzt bearbeitet: 06.04.2010, 20:46 von querschlaeger.)
(06.04.2010, 20:36)Jockl schrieb: (06.04.2010, 09:11)querschlaeger schrieb: PHP-Code: $query = $db->query("SELECT * FROM ".TABLE_PREFIX."users WHERE buddylist !=''");
Das würde ich eher so schreiben:
PHP-Code: $query=$db->simple_select('users','buddylist','buddylist!=""');
Gibt es dafür einen Grund, querschlaeger? Ist das schneller?
Das ist nicht schneller, aber MyBB bietet nunmal einen Datenbankabstraktionslayer den man auch benutzen sollte. Erstens erspart man sich etwas Arbeit, zweitens übernimmt MyBB alles (im Optimalfall sogar die Fehlerbehandlung) und drittens ist das Konzept kompatibel mit allen Datenbanktypen, welche MyBB versteht (also nicht nur MySQL).
Ich könnte immer verrückt werden, wenn ich Plugins sehe, bei denen die Autoren Funktionen als auch Datenbankzugriffe "selbst schreiben", obwohl MyBB von Haus schon eigene Dinge mitbringt, welche man auch nutzen sollte... Bestes Beispiel sind hardcodierte Links, obwohl MyBB Funktionen bietet um interne Links zu bauen. Dann schreien die ersten nämlich, warum der Link nicht SEO-kompatibel sei.. tja, hätte der Autor mal lieber die MyBB internen Funktionen benutzt... Aber das wird jetzt zu OT.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
(06.04.2010, 20:45)querschlaeger schrieb: ....zweitens übernimmt MyBB alles (im Optimalfall sogar die Fehlerbehandlung) und drittens ist das Konzept kompatibel mit allen Datenbanktypen, welche MyBB versteht (also nicht nur MySQL). Daran hatte ich nicht gedacht. Danke!
|