10.03.2014, 15:03 (Dieser Beitrag wurde zuletzt bearbeitet: 10.03.2014, 15:04 von Gobee129.)
Hey Leute,
ich würde gerne wissen wie ich
1. Die genaue Anzahl an Threads eines Users in einem bestimmten Forum bekomme, und
2. Wie ich diese Anzahl als Variable auf das Userprofil einbinden kann.
Beispiel:
Forum A, mit Unterforum A1
User XYZ hat insgesamt 100 threads erstellt, 10 davon in Forum A, und 5 in A1.
Auf dem Userprofil sollte dann idealerweise soetwas stehen wie:
"Anzahl an Threads in Forum A = 15" (Click to see all threads.)
Oder soetwas in der Art.
Wirklich 100% wichtig wäre mir nur, dass ich die genaue Anzahl der Threads direkt sehen kann, denn ich möchte ungern jedesmal eine Datenbankabfrage eingeben müssen. ^^
Wenn Du das im Benutzerprofil einbauen möchtest, dann ist die member.php entsprechend anzupassen, sowie das jeweilige Template für die richtige Positionierung und den Style.
Wenn Du die Threads haben möchtest, dann musst Du in dem Query "posts" und "pid" durch "threads" und "tid" ersetzen....
(11.03.2014, 07:20)Jockl schrieb: Wenn Du das im Benutzerprofil einbauen möchtest, dann ist die member.php entsprechend anzupassen, sowie das jeweilige Template für die richtige Positionierung und den Style.
Wenn Du die Threads haben möchtest, dann musst Du in dem Query "posts" und "pid" durch "threads" und "tid" ersetzen....
Ja aber was heißt "entsprechend anpassen"? Genau da brauch ich ja die Anweisung von dir, Chef.^^ Ich bin mir nicht sicher ob wir auf der gleichen Wellenlänge sind. :/
Im Userprofil wird ja Registrierungsdatum, Postanzahl, etc. angezeigt, und genauso möchte ich auch "Total posts in forum A: ***" anzeigen lassen.
Also ich schreibe
PHP-Code:
$query = $db->simple_select("threads", "count(tid) AS countpostnum", "uid=X AND fid = Y"); $result = $db->fetch_array($query); $var = $result[countpostnum];
ganz ans Ende der member.php (mit angepasster fid für das entsprechende forum)?
Wie setze ich die uid? Denn ich kann die ja nicht fest vorgeben, es soll ja im profil des users angezeigt werden, dem diesen profil "gehört".^^
Funktioniert dafür
PHP-Code:
$query = $db->simple_select("threads", "count(tid) AS countpostnum", "uid=$memprofile['uid'] AND fid = Y");
??
Und dann setze ich $var in das memberprofile_template.
$my_fid = "(2,16,17)"; // passe bitte die Foren-IDs entsprechend an $query = $db->simple_select("threads", "count(tid) AS countpostnum", "uid= ".$memprofile['uid']." AND fid IN ".$my_fid.""); $result = $db->fetch_array($query); $var = $result[countpostnum];
Wie oben erwähnt, musst Du noch die Foren-IDs anpassen....
Das sollte es gewesen sein.....und sieht so aus, wie im Anhang zu sehen ist.
12.03.2014, 01:14 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2014, 01:41 von Gobee129.)
Okay, ersteinmal: Super Arbeit, wow Vielen Dank!
Eine kleine Hilfe bräuchte ich allerdings noch: Und zwar möchte ich, dass alle threads einer Kategorie gezählt werden (also alle foren + unterforen), bzw. alle threads eines forums + alle unterforen. Mit der momentan fid=** bekomme ich ja nur die anzahl der threads, die auch wirklich in diesem forum sind, nciht aber die anzahl der dazugehörigen threads aus den unterforen, verstehst du?
Ist das irgendwie möglich? Kann ich vllt in der Suche "angeben", dass alle foren/unterforen berücksichtigt werden sollen?
Oh und noch etwas ist mir aufgefallen:
Wenn ich auf die Anzahl an threads klicke, dann werde ich zu der Suchergebnisseite weitergeleitet, die mir allerdings ALLE threads in dem Forum anzeigt, nicht nur meine eigenen.
Wenn ich normal die Suche betätigte, das Häkchen bei "Nur Titel suchen" setze, und nur in dem bestimmten Forum suchen lasse, dann listet die normale Suche mir als Ergebnis auch nur meine eigenen threads auf, und nicht alle threads in dem forum/der kategorie. Außerdem zählt die normale Suche auch alle threads mit auf, die in den Unterforen sind. Das wäre dann ja genau das, was ich auch fürs Profil haben möchte, idealerweise. Kann man das für das memberprofil nicht genauso machen/ irgendwie diese genaue Suchfunktion übernehmen?? Wäre doch top
(12.03.2014, 01:14)Gobee129 schrieb: Mit der momentan fid=** bekomme ich ja nur die anzahl der threads, die auch wirklich in diesem forum sind, nciht aber die anzahl der dazugehörigen threads aus den unterforen, verstehst du?
Das lässt sich innerhalb eines MySQL Query mit "fid IN (x,y,z)" umsetzen.
(12.03.2014, 01:14)Gobee129 schrieb: Oh und noch etwas ist mir aufgefallen:
Wenn ich auf die Anzahl an threads klicke, dann werde ich zu der Suchergebnisseite weitergeleitet, die mir allerdings ALLE threads in dem Forum anzeigt, nicht nur meine eigenen.
Das kann ich in meinem Testforum so nicht bestätigen. Durch die Abfrage
werden eigentlich nur die Themen in dem jeweiligen Forum des entsprechenden Users angezeigt....
(12.03.2014, 01:14)Gobee129 schrieb: Wenn ich normal die Suche betätigte, das Häkchen bei "Nur Titel suchen" setze, und nur in dem bestimmten Forum suchen lasse, dann listet die normale Suche mir als Ergebnis auch nur meine eigenen threads auf, und nicht alle threads in dem forum/der kategorie. Außerdem zählt die normale Suche auch alle threads mit auf, die in den Unterforen sind. Das wäre dann ja genau das, was ich auch fürs Profil haben möchte, idealerweise. Kann man das für das memberprofil nicht genauso machen/ irgendwie diese genaue Suchfunktion übernehmen??
Hier kann ich Dir leider nicht folgen....
Wegen der Abfrage der Unterforen werden ich nachher den Code in meinem obigen Beitrag anpassen.
12.03.2014, 22:13 (Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2014, 22:14 von Gobee129.)
Okay ich habe jetzt diesen Code ins member_profile template eingesetzt:
Code:
<tr>
<td class="trow1"><strong>Anzahl Beiträge im Forum "XY":</strong></td>
<td class="trow1"><a href="search.php?action=finduserthreads&uid={$uid}&fid={$my_fid}">{$var}</a></td>
</tr>
Diesen Code in die search.php
PHP-Code:
if(intval($mybb->input['fid'])){ $where_sql = "t.fid IN ".$my_fid.""; }
Und diesen in die member.php
PHP-Code:
$my_fid = "(2,16,17)"; // passe bitte die Foren-IDs entsprechend an $query = $db->simple_select("threads", "count(tid) AS countpostnum", "uid= ".$memprofile['uid']." AND fid IN ".$my_fid.""); $result = $db->fetch_array($query); $var = $result[countpostnum];
Wobei ich hier die 2,16,17 angepasst habe.
Die Anzahl, die jetzt auf meinem userprofil steht ist zwar korrekt, aber wenn ich auf die Zahl klicke, werde ich immernoch zu ALL meinen threads weitergeleitet, und eben nicht nur zu den besagten 10.