MyBB.de Forum

Normale Version: Enhanced Account Switcher
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Oh. Nein, die steht da nicht korrekt drin. o.O Mein Account fehlt. Wie kann das sein? Kann man den Cache irgendwie erneuern?
Ich habe es schon auf der Liste fürs nächste Update, dass der Cache automatisch erneuert wird, wenn die Freundesliste bearbeitet wurde.
Im Moment könntest du einfach mal irgendeine PN öffnen zum Lesen, das sollte ihn auch erneuern.
Hey, okay, PN zum Lesen öffnen hat geholfen. Big Grin Danke.
Gut, dass wir das Problem gefunden haben. Smile
Es gibt noch ein paar andere Stellen, an denen die automatisch Cache-Aktualisierung hinzugefügt werden muss, wie bei den Gruppen im Benutzer CP, falls jemand zB einer Grupe angehört, die den Accountswitcher nicht benutzen darf und dann aber einer anderen Gruppe beitritt, die es darf, da fehlt bisher auch noch die Aktualisierung.
Auf jeden Fall Smile

Ist es aufwändig, beim Cache einfach einen Button zum Aktualisieren gleich mit einzubauen wie bei manchen anderen Caches? Dann könnte man das einfach bei Bedarf - wenn man den Trick mit dem PN Lesen nicht weiß. Big Grin
Es gibt auch im ACP in der Pluginübersicht den Punkt: "Accountverknüpfungen bereinigen"
Dabei wird auf jeden Fall auch immer der Cache mit aktualisiert.
Hallo waldo,

mit dem Accountswitcher an sich habe ich gar kein Problem, viel mehr komme ich bei einem Problem nicht weiter, das mit dem Accountswitcher zusammenhängt Rolleyes Deshalb hoffe ich, ist es in Ordnung, wenn ich meine Frage direkt hier im Thema stelle.

Auf einer neuen Seite würde ich gerne die Anzahl Beiträge der Mitglieder in einem bestimmten Forum ausgeben lassen.. nun scheitere ich daran, das Ganze zu bündeln. Jeder User soll nur einmal auf der Übersicht auftauchen, dabei sollen aber die Beiträge von all seinen Accounts zusammengezählt werden.

Meine Abfrage sieht momentan so aus:

PHP-Code:
$query$db->query("
SELECT COUNT(p.pid) AS count, u.uid, u.username
FROM "
.TABLE_PREFIX."users u 
LEFT JOIN "
.TABLE_PREFIX."posts p ON (p.uid = u.uid)
WHERE p.fid = '2' AND p.visible = '1'
GROUP BY p.uid
ORDER BY count DESC, u.username ASC
"
); 

Kannst du mir vielleicht auf die Sprünge helfen, wie ich die as_uid-Spalte berücksichtigen kann?
Soll jeder "echte" User nur einmal auftauchen, oder jeder Account?
ZB ein User hat einen Hauptaccount und zwei angehängte - sollen alle drei jeweils einmal auftauchen und hinter den drei Accounts steht jeweils die gleiche Gesamt-Beitragszahl?
Oder soll nur jeweils der Hauptaccount einmal aufgeführt werden und dahinter die Beitragszahl, die auch alle Beiträge der angehängten Accoiuts enthält? Smile
(31.03.2017, 19:34)waldo schrieb: [ -> ]Oder soll nur jeweils der Hauptaccount einmal aufgeführt werden und dahinter die Beitragszahl, die auch alle Beiträge der angehängten Accoiuts enthält? Smile

So habe ich mir das vorgestellt Wink
Tut mir leid, war die Erklärung etwas irritierend.
Ich wollte nur sicher gehen. Wink

Also ich habe es als ganz einfache Liste ausgegeben, weil mir das zum Testen der Anzeige gereicht hat. Es gibt bestimmt auch noch eine elegantere Methode, um die Beitragszahl zu ermitteln, aber es funktioniert zumindest erst mal.

PHP-Code:
$query$db->query("
    SELECT COUNT(p.pid) AS count, u.uid, u.username, u.as_uid
   FROM "
.TABLE_PREFIX."users u
   LEFT JOIN "
.TABLE_PREFIX."posts p ON (p.uid = u.uid)
   WHERE p.fid = '2' AND p.visible = '1'
   GROUP BY p.uid
   ORDER BY count DESC, u.username ASC
"
);

$user_count $allcount $accounts $account = array();
while (
$user_count $db->fetch_array($query)) {
   if (!$user_count['uid']) {
       continue;
   }
   $accounts[$user_count['uid']] = $user_count;
   $allcount[$user_count['as_uid']] = $user_count['count'] + $allcount[$user_count['as_uid']];
   if ($user_count['as_uid'] == 0) {
       $allcount[$user_count['uid']] = $user_count['count'] + $allcount[$user_count['uid']];
   }
}

foreach (
$accounts as $account) {
   if ($account['as_uid'] == 0) {
       echo 'Beiträge aller Accounts von '.$account['username'].' in diesem Forum: '.$allcount[$account['uid']].'<br />';
   }