[Erledigt] Statistik Resynch. - Berechnung, wo und wie?

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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.
Antworten
spike29
Mitglied
Beiträge: 4
Registriert: 17.12.2012 18:20

[Erledigt] Statistik Resynch. - Berechnung, wo und wie?

Beitrag von spike29 »

Hallo, bin neu hier!

Also ich habe meine Version von phpBB3 - ist die 3.0.9 (ich weiss, ist veraltet mitlerweile) - derlei gestalt abgeändert, das sich Benutzer extern registrieren und auch extern einloggen können. :grin:

Funktioniert auch alles wunderbar. :D

Nur habe ich ein Problem mit der Resynchronisation der Statistik-Werte.

Finde dazu leider nichts passendes.

Wie und wo werden diese berechnet? Wenn sich z.B. jemand neu anmeldet erscheint doch immer neuestes Mitglied ist blabla. Wenn ich jetzt aber extern einen Benutzer registriere und dieser sich dann nach Bestätigung seiner E-Mail einloggt und phpBB3 refresht, erscheint immer noch der letzte registrierte User als derjenige, der über das Forum sich registriert hat, bzw. den ich selber über das Forum angelegt hatte.

Dies kann ich zwar durch Klick auf Statistik resynchronisieren im Adminbereich beheben, habe aber kein Bock, dies jedes mal manuell machen zu müssen.

Wie kann ich nun per SQL oder sonst wie die Statistik ändern, wenn es denn überhaupt geht?

Puh! Viel Text! :-? :oops: !
Zuletzt geändert von spike29 am 18.12.2012 16:37, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Statistik Resynchronisation - Berechnung, wo und wie?

Beitrag von gn#36 »

Die includes/acp/acp_main.php sagt, das steht in der includes/functions_user.php als update_last_username() Funktion drin. Also einfach die Funktion aufrufen und schon sollte der Username passen, auch wenn die Zahl der User evtl. noch falsch ist.

Die anderen Stats die bei einem Klick auf den Button im ACP resynchronisiert werden kannst du in der includes/acp/acp_main.php nachlesen (also auch die Korrektur der Zahl der User).
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.
spike29
Mitglied
Beiträge: 4
Registriert: 17.12.2012 18:20

Re: Statistik Resynchronisation - Berechnung, wo und wie?

Beitrag von spike29 »

Hey danke für die prompte Antwort.

Wenn ich nun die update_last_username() Funktion aufrufe, kommt bei mir der Fehler:
Fatal error: Call to a member function sql_query() on a non-object in /var/www/vhosts/MYDOMAIN.TLD/httpdocs/0tools/board/includes/cache.php on line 51
Habe Domain durch MYDOMAIN.TLD ersetzt.

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = './0tools/board/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'functions_users' . $phpEx);
 
Obiger Code ist der Funktion update_last_username() vorangestellt.

Es erscheint der selbe Fehler, wenn ich acp/acp_main.php include und functions_users.php weg lasse!
spike29
Mitglied
Beiträge: 4
Registriert: 17.12.2012 18:20

Re: Statistik Resynchronisation - Berechnung, wo und wie?

Beitrag von spike29 »

Ok! Ich habs nun hinbekommen. Die Funktion update_latest_username() besagt, das die Config geändert werden muss. Das brachte mich auf die Idee in selbiger präfix_config Tabelle mal nachzuschauen. Dort einfach die Werte ändern und es funktioniert.

Code: Alles auswählen

/**
* Get latest registered username and update database to reflect it
*/
function update_last_username()
{
        global $db;

        // Get latest username
        $sql = 'SELECT user_id, username, user_colour
                FROM ' . USERS_TABLE . '
                WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')
                ORDER BY user_id DESC';
        $result = $db->sql_query_limit($sql, 1);
        $row = $db->sql_fetchrow($result);
        $db->sql_freeresult($result);

        if ($row)
        {
                set_config('newest_user_id', $row['user_id'], true);
                set_config('newest_username', $row['username'], true);
                set_config('newest_user_colour', $row['user_colour'], true);
        }
}
 
Danke noch mals für die schnelle und präzise Antwort.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“