Forum vom Beitragszähler ausnehmen

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Bei Fragen oder Problemen benutze bitte das Forum phpBB 2.0: Mod Support.
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.
PhilippK
Vorstand
Vorstand
Beiträge: 14622
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Forum vom Beitragszähler ausnehmen

Beitragvon PhilippK » 11.03.2004 21:23

Beschreibung: Berücksichtigt bestimmte Foren nicht bei der Zählung der Beiträge der Benutzers
phpBB Version: 2.0.x (getestet mit 2.0.6)

Mit dieser Änderung werden bestimmte Foren vom Beitragszähler der Benutzer ausgenommen, neue Beiträge in den Foren führen dann nicht mehr zu einer Erhöhung des Zählers.

In der ./includes/functions_post.php suchen

Code: Alles auswählen

   $sign = ($mode == 'delete') ? '- 1' : '+ 1';
und ersetzen durch

Code: Alles auswählen

   if ($forum_id == 5)
   {
      $sign = '';
   }
   else
   {
      $sign = ( $mode == 'delete' ) ? '- 1' : '+ 1';
   }
Dabei müsst ihr die 5 durch die ID des Forums ersetzen, dass ihr ausschließen wollt.

Mehrere Foren ausschließen

Wenn ihr mehrere Foren ausschließen wollt, so müsst ihr die Zeile

Code: Alles auswählen

   if ($forum_id == 5)
modifizieren. So schließt z.B.

Code: Alles auswählen

   if ($forum_id == 5 || $forum_id == 6)
die Foren 5 und 6 aus.
Wenn ihr PHP 4 oder höher verwendet, könnt ihr das ganze auch etwas eleganter schreiben:

Code: Alles auswählen

   if (in_array($forum_id, array(5,6)))
Die Werte 5 und 6 sind hier nur beispielhaft und müssen von euch entsprechend angepasst werden, weitere Werte können in analoger Weise hinzugefügt werden.

Wer es etwas komfortabler haben will, kann einen der folgenden Mods installieren:
http://bbmod.sourceforge.net/index.php?mode=mod&id=4
http://www.phpbbsupport.co.uk/viewtopic.php?t=199
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods

Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitragvon Acid » 23.03.2004 18:54

Beschreibung: Bei der obigen Codeänderung werden die Forenbeiträge sowie die Userbeiträge in den angegebenen Foren nicht hochgezählt.
Wenn die Forenbeiträge weiterhin gezählt werden sollen, aber die Userbeiträge nicht, muss man anstatt der obigen Änderung folgendes machen.
phpBB-Version: 2.0.x

functions_post.php

Code: Alles auswählen

#
#-------[ FINDE ]----------------------------
#
      $sql = "UPDATE " . USERS_TABLE . "
         SET user_posts = user_posts $sign
#
#-------[ MIT FOLGENDEM ERSETZEN ]----------------------------
#
      $sign_u = ( $forum_id == '5' || $forum_id == '4' ) ? '' :  (( $mode == 'delete' ) ? '- 1' : '+ 1');
      $sql = "UPDATE " . USERS_TABLE . "
         SET user_posts = user_posts $sign_u


Keywords: forum+zähler+user+zähler+beiträge

Benutzeravatar
Leuchte
Ehemaliger
Beiträge: 9179
Registriert: 26.05.2003 14:57
Wohnort: Duisburg
Kontaktdaten:

Beitragvon Leuchte » 20.03.2005 15:44

Um einen einzelnen Beitrag vom Beitragszähler auszunehmen geht man wie folgt vor:
includes/functions_post.php - Finde

Code: Alles auswählen

   $sign = ($mode == 'delete') ? '- 1' : '+ 1';
Ersetzen mit

Code: Alles auswählen

   if($mode == 'delete')
   {
      $sign = ($topic_id != x) ? '- 1' : '';
   }
   else
   {
      $sign = ($topic_id != x) ? '+ 1' : '';
   }

Mehrere Beiträge ausschliessen

Um mehrere Beiträge vom Beitragszähler auszunehmen muss die Zeile

Code: Alles auswählen

($topic_id != x)
abgeändert werden

Code: Alles auswählen

($topic_id != x || $topic_id != y)
Ab PHP Version 4 ist auch das möglich

Code: Alles auswählen

(!in_array($topic_id, array(x,y)))
x und y sind jeweils die Beitrags-IDs

Benutzeravatar
gn#36
Administrator
Administrator
Beiträge: 9175
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitragvon gn#36 » 18.09.2007 22:21

Wenn lediglich aus dem Beitragszähler unten in der Übersicht auf der Index-Seite bestimmte Foren ausgenommen werden sollen, so muss wie folgt vorgegangen werden:

öffne includes/functions.php

finde

Code: Alles auswählen

$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
            FROM " . FORUMS_TABLE;


ersetze durch

Code: Alles auswählen

$sql = "SELECT SUM(forum_topics) AS topic_total, SUM(forum_posts) AS post_total
            FROM " . FORUMS_TABLE . "
            WHERE forum_id NOT IN (x1, x2, x3)";


x1, x2, x3 sind hierbei durch die gewünschten Foren_ids zu ersetzen.

Dank an Seimon für diese kurze Änderung.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.

Benutzeravatar
Christian_W
Ehemaliger
Beiträge: 5703
Registriert: 26.02.2004 00:09
Wohnort: Bermersbach
Kontaktdaten:

Beitragvon Christian_W » 01.01.2008 19:29

Hier noch eine Lösung von S2B:
post_counter_ignore.txt
Bedacht wurde dabei alles, was den Counter durcheinanderbringen könnte (Beitrag löschen, Thema löschen, Thema verschieben, Thema teilen). Das ganze betrifft nur die Beitragszähler der Benutzer.

Die zu ignorierenden Foren bzw. Themen werden in der constants.php durch die beiden Konstanten COUNT_IGNORE_FORUMS und COUNT_IGNORE_TOPICS festgelegt. Wenn z.B. das Forum mit der ID 1 und das mit der ID 4 ignoriert werden sollen, muss die Konstante so definiert sein:

Code: Alles auswählen

define('COUNT_IGNORE_FORUMS', '1,4');

Ganz entsprechend funktioniert das auch für Themen.
Supportanfragen per PN werden ignoriert.
Schaut in die Knowledge Base. Dort findet Ihr Antwort auf viele Fragen.
Schwarzwaldverein Bermersbach


Zurück zu „phpBB 2.0: Snippets“