Seite 1 von 1

DB Maint. Mod + Snippet Forum vom Beitragszähler ausnehmen

Verfasst: 17.12.2006 13:02
von DirtyHarry
Ich benutze das phpbb 2.0.21 und setze u.a. den DB Maintenance Mod ein und das Snippet, um bestimmte Foren vom Zählen der Beiträge auszunehmen:

http://www.phpbb.de/viewtopic.php?t=494 ... ispielhaft

Klappt auch alles ganz gut. Beiträge in den spez. Foren werden nicht mehr gezählt.

Wenn ich jedoch den DB Maintenance Mod ausführe und die Beiträge der User neu berechnen lasse, dann werden dabei die vorher ignorierten Beiträge wieder mitgezählt!

Ich denke, dass man den DB Maintenance Mod anpassen müsste.
Ich habe in der Datei "admin_db_maintenance.php" eine Stelle gefunden, indem ich nach "Synchronize_post_counters" gesucht habe, wo der neue Zähler gesetzt wird. Aber ich kriege es nicht hin.

Kann mir da jemand helfen?
Oder vielleicht hat ja jemand eine bessere Idee?

Viele Grüße,

Hartmut.

Verfasst: 09.01.2007 20:38
von Anardil
Hatte gerade auch das Problem. Aber so gelöst:

Suche (Zeile 3714)

Code: Alles auswählen

WHERE u.user_id <> " . ANONYMOUS . "
Ersetze mit:

Code: Alles auswählen

WHERE u.user_id <> " . ANONYMOUS . " AND

Suche (Zeile 3714)

Code: Alles auswählen

WHERE u.user_id <> " . ANONYMOUS . " AND
Danach, füge ein:

Code: Alles auswählen

p.forum_id <> 4
Wobei 4 die auszuschliessende Foren-ID ist. Möchtest du weitere Foren ausschliessen, muss es so aussehen:

Code: Alles auswählen

WHERE u.user_id <> " . ANONYMOUS . " AND
p.forum_id <> 4 AND
p.forum_id <> 2 AND
p.forum_id <> 1		
GROUP BY u.user_id, u.username, u.user_posts";
Usw. usf.

Verfasst: 09.01.2007 21:18
von DirtyHarry
:grin: Vielen Dank !!!
Das hat soweit geklappt.

Allerdings fiel mir beim Testen folgendes auf:
Wenn ich einen kompletten Thread in einem der Boards lösche, in denen die Beiträge nicht gezählt werden, werden die Post Counter der User nochmal vermindert. Das darf ja auch nicht sein, sonst kommen User noch auf negative Zähler ... *gg*

EDIT:

Ich bin mir nicht sicher, ob folgende Änderung ausreicht (sie scheint erstmal zu funktionieren... ). Wenn jemand eine Meinung dazu hat ... :wink:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
modcp.php

#
#-----[ FIND ]------------------------------------------
#
      while ( $row = $db->sql_fetchrow($result) )
      {
        $count_sql[] = "UPDATE " . USERS_TABLE . " 
          SET user_posts = user_posts - " . $row['posts'] . " 
          WHERE user_id = " . $row['poster_id'];
      }

#
#-----[ REPLACE WITH ]---------------------------------------------
#
      if ( !($forum_id == 4))
      {
        while ( $row = $db->sql_fetchrow($result) )
        {
          $count_sql[] = "UPDATE " . USERS_TABLE . " 
            SET user_posts = user_posts - " . $row['posts'] . " 
            WHERE user_id = " . $row['poster_id'];
        }
      }

Beim Verschieben eines Threads von einem Board, dessen Beiträge nicht gezählt werden, in ein Board, dessen Beiträge gezählt werden, wird der Beitragszähler der User leider auch nicht erhöht. Beim Verschieben in die andere Richtung werden die Zähler auch nicht vermindert. Beim Teilen eines Threads wahrscheinlich auch nicht ...
(Aber das wäre vielleicht auch zuviel verlangt. Der DB Maintenance Mod korrigiert das ja auch wieder...).