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

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
DirtyHarry
Mitglied
Beiträge: 61
Registriert: 17.08.2005 14:03
Wohnort: Münster

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

Beitrag 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.
Zuletzt geändert von DirtyHarry am 10.01.2007 20:29, insgesamt 1-mal geändert.
Benutzeravatar
Anardil
Mitglied
Beiträge: 48
Registriert: 18.05.2001 02:00
Kontaktdaten:

Beitrag 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.
Benutzeravatar
DirtyHarry
Mitglied
Beiträge: 61
Registriert: 17.08.2005 14:03
Wohnort: Münster

Beitrag 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...).
Viele Grüße,
Dirty Harry
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“