|
|
13.02.2008 - 19:52 Uhr |
|
|
|
Ich weiss ja nicht, ob das jemand gebrauchen könnte, aber ich denk mal, das Webmaster mit einen aktiven Forum das sinnvoll halten.
Es geht um die Postzählung der User. Im Standard-Kit wird einfach jedem User ein Post dazu gezählt. Durch die Option im Adminmenü kann man den jeweiligen User noch Posts ab / dazuziehen.
Bei einer großen Community aufwendig, wenn ein ganzer Thread gelöscht wird, aber nicht die Posts den Usern abgezogen wird.
Darum hier mal ein Fix dafür. Für die Coder als Beschreibung:
Statt das +1 Post nach erstellen eines Posts wird die Anzahl ausgezählt.
Getestet unter der Version 1.6.03, sollte aber auch auf der 1.6.1 funktionieren, da dort wohl der Code gleich ist.
//edit
Der alte Fix ist unten, der aktuelle hier oben als erstes.
Hier der entgültige Fix, damit die Topuser, und ggf. andere Listen, richtig funktionieren.
Öffne die Datei forum/moderate.php und suche das.
Nun füge direkt darunter das ein:
Hier klicken zum aufklappen | PHP-Quelltext $Posts =$DB->fetch_array($DB->query("SELECT * FROM ".$db_tab['forumpost']." WHERE forumpost_threadid='".$threadid."'"));
$userposts =$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$Posts['forumpost_autorid']."' AND forumpost_threadid='".$threadid."'")); | |
Nun suche das noch.
Nun füge direkt darunter das ein:
Hier klicken zum aufklappen | PHP-Quelltext $DB->query("UPDATE ".$db_tab['user']." SET user_posts='".$userposts[0]."' WHERE user_id='".$Posts['forumpost_autorid']."'"); | |
Wenn man es genau nehmen will, ist das die einzige Änderung für die komplette Post-Zählung.
Wer will, kann die anderen Dateien wieder auf den alten Stand bringen. Wenn nicht, ist auch nicht verkehrt.
Öffne die Datei forum/searchresult.php und suche das.
Hier klicken zum aufklappen | PHP-Quelltext if ($userinfo['user_posts']>0) $post_count=postcount($userinfo['user_posts'],$userinfo['user_postdelay'],0);
else {
$postings=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$post_count=postcount($postings[0],$userinfo['user_postdelay'],0);
$DB->query("UPDATE ".$db_tab['user']." SET user_posts='$postings[0]' WHERE user_id='$userinfo[user_id]' LIMIT 1");
} | |
Und mach das daraus.
Hier klicken zum aufklappen | PHP-Quelltext $postcount=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$postcount=$postcount[0];
$post_count=postcount($postcount,$userinfo['user_postdelay'],0); | |
Öffne die Datei forum/showthread.php und suche das.
Hier klicken zum aufklappen | PHP-Quelltext if ($userinfo['user_posts']==0) {
$postings=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$DB->query("UPDATE ".$db_tab['user']." SET user_posts='".$postings[0]."' WHERE user_id='".$userinfo['user_id']."' LIMIT 1");
$userinfo['user_posts']=$postings[0];
}
$post_count=postcount($userinfo['user_posts'],$userinfo['user_postdelay'],0); | |
Und mach das daraus.
Hier klicken zum aufklappen | PHP-Quelltext $postcount=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$postcount=$postcount[0];
$post_count=postcount($postcount,$userinfo['user_postdelay'],0); | |
Öffne die Datei forum/topuser.php und suche das.
Hier klicken zum aufklappen | PHP-Quelltext $userinfo_rank=postcount($userinfo['user_posts'], $userinfo['user_postdelay'],1);
$userinfo_posts=$userinfo['user_posts']+$userinfo['user_postdelay']; | |
Und mach das daraus.
Hier klicken zum aufklappen | PHP-Quelltext $postcount=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$postcount=$postcount[0];
$userinfo_rank=postcount($postcount,$userinfo['user_postdelay'],1);
$userinfo_posts=$postcount+$userinfo['user_postdelay']; | |
Öffne die Datei login/userinfo.php und suche das.
Hier klicken zum aufklappen | PHP-Quelltext $info_userposts=($userinfo[user_posts]+$userinfo[user_postdelay]);
if ($info_userposts<0) {$info_userposts=0;} | |
Und mach das daraus.
Hier klicken zum aufklappen | PHP-Quelltext $postcount=$DB->fetch_array($DB->query("SELECT COUNT(*) FROM ".$db_tab['forumpost']." WHERE forumpost_autorid='".$userinfo['user_id']."'"));
$info_userposts=$postcount[0]+$userinfo['user_postdelay']; | |
Sollten Fehler sein, dann sagt bescheid.
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von k!r!ka - 15.06.2008 - 12:57 Uhr |
|
|
|
|
|
|