Beide "Anzahl der Beiträge" Zahlen anzeigen

Du suchst einen bestimmten Mod, weißt aber nicht genau wo bzw. ob er überhaupt existiert? Wenn dir dieser Artikel nicht weiterhilft, kannst du hier den von dir gewünschten/gesuchten Mod beschreiben ...
Falls ein Mod-Autor eine der Anfragen hier aufnimmt, um einen neuen Mod zu entwickeln, geht's in [3.0.x] Mods in Entwicklung weiter.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Maugrim »

ah das heisst ich muss in phpbb_posts noch eine weitere Tabelle anlegen

und dann kann ich mit deiner verbesserten Abfrage diese Zahl auslesen
wird die dann automatisch beim posten eines Beitrages in diese Tabelle eingetragen? Oder brauch ich dafür noch etwas?

Und wie kann ich sie dann unter dem Avatar neben den Beiträgen anzeigen lassen? Brauche ich dafür noch was?


btw: ich hab mich an dem Mod von nickvergessen orientiert (NV usertopics)
kann ich mich für meine Zwecke auch weiter an dem Mod orientieren?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Miriam »

Ich kenne diese MOD nicht.
Du mußt aber sicherlich die Gesamt-Posts des jeweiligen Users auch in die Usertabelle eintragen. Dann kann sie immer auf ganz "normalem" Wege abgerufen werden.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Maugrim »

und wie trage ich sie ein?

Ich nehme mal an, wenn man beim Verfassen einer Nachricht auf ABSENDEn drückt, dann schreibt eine Funktion ein +1 in die entsprechende Tabelle AUßER man schreibt in einem Forum, in welchem der Counter nicht erhöht wird


ich müsste also nur eine zweite Funktion zu dem Absendenknopf hinzufügen die mir den Wert in die neue Tabelle einschreibt, der ALLE BEITRÄGE zählen soll


sehe ich das richtig?


in welcher php bzw html Datei wird diese Funktion denn deklariert?
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Miriam »

Genauso ist es... Das wären dann die Funktionen submit_post() bzw. delete_post() in der includes/function_posting.

Vorbemerkung:
  • Das Tabellenpräfix, das in der config.php definiert wurde, heißt phpbb_
  • Es werden in dieser Abhandlung nicht die Beitragslöschungen im ACP betrachtet.
Lektüre VOR der Umsetzung konsumieren:
  • KB:phpmyadmin
  • KB:pma_faq
  • KB:tippstyles
Dann:
  1. Erstelle eine Tabellenspalte in der Benutzertabelle die user_total_posts heißt.

    Code: Alles auswählen

    ALTER TABLE phpbb_users ADD user_posts_total MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0' AFTER user_posts;
  2. Gleiche die Summe der Posts aller User ab:

    Code: Alles auswählen

    UPDATE phpbb_users SET user_posts_total = (SELECT count(post_id) FROM phpbb_posts WHERE user_id = poster_id); 
Ändere den Code in einigen php-Dateien nach diesem Kochrezept (außer den dortigen SQL Anweisungen... die hast Du ja schon ausgeführt).
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Maugrim »

Hey! vielen Lieben Dank dir :) :cookie:
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Maugrim »

So ich hab das jetzt verbaut...und ausgiebig getestet...
Leider scheint das deutlich mehr Aufwand zu erfordern.

Folgendes klappt:

wenn ich in einem Forum welches die Beiträge ZÄHLT ein Thema eröffne, erhöht sich der Counter
wenn ich in einem Forum, welches die Beiträge ZÄHLT einen Beitrag in einem existenten Thema schreibe, erhöht sich der Counter
wenn ich in einem Forum, welches die Beiträge ZÄHLT einen Beitrag lösche, indem ich auf das kleine X drücke, verringert sich der Counter

Ich habe NICHT im Moderations-Bereich oder Admin-Bereich das Löschen von Themen oder Beiträgen getestet!

Hier gibts aber Probleme: (vllt habe ich ja einen Fehler beim Einbau gemacht? Aber ich bin beim Modeinbau eigentlich immer sehr vorsichtig und arbeite eins nach dem anderen ab. Fertiges verstecke ich mit hide, damit ich ja nix vergesse) Und bisher hab ich noch jeden Mod beim ersten Mal installiert bekommen, ohne Fehler.


Probleme:

Wenn ich ein Thema lösche (Egal ob das Forum die Beiträge zählt oder nicht) wird der Counter nicht aktualisiert. Unabhängig davon wie viele Beiträge im Thema sind.

Wenn ich in einem Forum, in welchem Beiträge NICHT gezählt werden, einen Beitrag lösche, produziert das einen MySQL Error

Code: Alles auswählen

Allgemeiner Fehler
SQL ERROR [ mysqli ]
Unknown column '1361915650user_posts_total' in 'field list' [1054]
Der Beitrag wird zwar gelöscht, aber der Counter nicht aktualisiert bzw verringert




3.) Wenn ich in einem Forum, in welchem die Beiträge NICHT gezählt werden einen Beitrag verfasse oder ein neues Thema starte kommt ebenfalls ein MySQL Error

Code: Alles auswählen

SQL ERROR [ mysqli ]

Unknown column '1361921174user_posts_total' in 'field list' [1054]

SQL

UPDATE phpbb_users SET user_lastpost_time = 1361921174user_posts_total = user_posts_total + 1 WHERE user_id = 2

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions_posting.php
LINE: 2494
CALL: dbal_mysqli->sql_query()

FILE: [ROOT]/posting.php
LINE: 1142
CALL: submit_post()
Der Beitrag wird zwar erstellt, aber er wird im Forum nicht als existent angezeigt (also auf der Indexseite)

wenn ich nun DIESEN Beitrag lösche, der mit dem MySQL Error erstellt wurde, kommt diese Fehlermeldung, statt der obigen

Code: Alles auswählen

SQL ERROR [ mysqli ]

Out of range value for column 'forum_posts' at row 1 [1264]

SQL

UPDATE phpbb_forums SET forum_posts = forum_posts - 1 WHERE forum_id = 6

BACKTRACE

FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()

FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()

FILE: [ROOT]/includes/db/mysqli.php
LINE: 182
CALL: dbal->sql_error()

FILE: [ROOT]/includes/functions_posting.php
LINE: 1606
CALL: dbal_mysqli->sql_query()

FILE: [ROOT]/posting.php
LINE: 1620
CALL: delete_post()

FILE: [ROOT]/posting.php
LINE: 322
CALL: handle_post_delete()





Mal eine kleine Frage als Laie.

Wäre nicht folgendes möglich:
Jedes Mal, wenn ein Thema gestartet wird, ein Beitrag erstellt wird, ein Thema gelöscht wird, ein Beitrag gelöscht wird, wird dieser MySQL Befehl ausgeführt:

Code: Alles auswählen

UPDATE phpbb_users SET user_posts_total = (SELECT count(post_id) FROM phpbb_posts WHERE user_id = poster_id); 
Thema duplizieren, oder Löschen über ACP und MCP müsste man evlt auch berücksichtigen, wäre imo aber zu vernachlässigen, denn wenn es da kurzfristig zu Fehlinformationen kommt, wird das behoben, sobald ein regulärer Beitrag erstellt wird...

Geht das??
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Miriam »

Sehr gut, Maugrim.

Maugrim hat geschrieben:Wäre nicht folgendes möglich:
Jedes Mal, wenn ein Thema gestartet wird, ein Beitrag erstellt wird, ein Thema gelöscht wird, ein Beitrag gelöscht wird, wird dieser MySQL Befehl ausgeführt:

Code: Alles auswählen

    UPDATE phpbb_users SET user_posts_total = (SELECT count(post_id) FROM phpbb_posts WHERE user_id = poster_id);
An etwas ähnliches hatte ich auch gedacht.

Du könntest es in die viewtopic.php einbauen.
Finde dort:

Code: Alles auswählen

$hilit_words    = request_var('hilit', '', true); 
danach füge ein:

Code: Alles auswählen

// Update total post count
$sql = 'UPDATE ' . USERS_TABLE . ' 
        SET user_posts_total = 
            (SELECT COUNT(post_id) FROM ' . POSTS_TABLE  . ' 
            WHERE user_id = poster_id)';
$db->sql_query($sql); 
Das ist keine saubere phpBB3 Lösung, aber für Dich kann es so klappen.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Maugrim »

Miriam hat geschrieben:Sehr gut, Maugrim.
:grin: 8)


habs schon eingebaut und funkt super :)
falls später Bugs oder so auftreten, darf ich mich wieder an dich wenden? :-? :lol:
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: Beide "Anzahl der Beiträge" Zahlen anzeigen

Beitrag von Miriam »

Da bugt nichts... Kannst aber gern wieder hier posten.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Antworten

Zurück zu „[3.0.x] Mod Suche/Anfragen“