MyBB.de Forum
Cache manuell erneuern? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Cache manuell erneuern? (/thread-34601.html)



Cache manuell erneuern? - BeNeDeV - 05.05.2017

Hallo Community,

Folgende Situation: Ich habe in meinem Forum die Registrierung deaktiviert. Stattdessen registrieren sich die User direkt über ein Plugin, das ich für meinen Server (Minecraft) geschrieben habe. Das funktioniert auch (fast) super. Dazu noch eine kleine Frage: Reicht es, wenn ich alle Daten direkt in die mybb_users Tabelle der mybb-Datenbank eintrage oder gibt es noch andere Tabellen, die beim Anlegen eines neuen Benutzers eine Veränderung brauchen? Ist aber nicht ganz so wichtig, da es ja funktioniert, wäre aber trotzdem gut zu wissen.
Jetzt das Hauptproblem: So wie ich den Benutzer jetzt erstelle wird natürlich der Daten-Cache nicht erneuert. Dies stört mich nur bei dem Cache "stats", da ich jedes mal wenn sich ein Benutzer registriert hat im Cache-Manager den Cache manuell erneuern muss, damit auf der Startseite die Mitgliederanzahl und der neueste Benutzer korrekt angezeigt werden. Ist es also möglich den Cache irgendwie direkt über MySQL zu erneuern? Noch einfacher wäre es doch wenn man nur ein php-script ausführen müsste, damit der Cache ernuert wird. Habe aber nichts dergleichen gefunden.
Bin für jede Hilfe dankbar Wink


RE: Cache manuell erneuern? - BroatcasT - 05.05.2017

Du kannst ein kleines mini Plugin schreiben was dir ne API zur Verfügung stellt, das könntest du dann über dein Registrierungsscript aufrufen lassen damit der Cache nach der Registrierung des Nutzers aktuallisiert wird.

Würde sogar ohne Plugin gehen wenn du einfach nur ein kleines Script für die API schreibst.


RE: Cache manuell erneuern? - BeNeDeV - 05.05.2017

Hey, danke erstmal.
Darüber habe ich auch schon nach gedacht. Jedoch programmiere ich mit Java und habe von PHP recht wenig Ahnung Sad
Weißt du wo genau die PHP-Funktion zum Erneuern des Caches ist? Habe schon alles mögliche durchsucht, bin daraus einfach nicht schlau geworden...


RE: Cache manuell erneuern? - BroatcasT - 05.05.2017

PHP-Code:
<?php

define
('IN_MYBB'1);
define('THIS_SCRIPT''api.php');

require_once 
'./global.php';
require_once 
MYBB_ROOT.'inc/functions_rebuild.php';

rebuild_stats(); 

versuchs mal damit habs aber nicht getestet.


RE: Cache manuell erneuern? - BeNeDeV - 05.05.2017

WOW! Einfach perfekt, DANKE!!!

Okay, ein Problem habe ich doch. Und zwar liegt mein Server-Plugin nicht im gleichen Verzeichnis wie das PHP-Script. Dadurch hat er dann logischerweise gemeckert, dass er die Dateien, die im Script sind, nicht findet. Habe die Pfade daraufhin folgendermaßen angepasst:
PHP-Code:
<?php

define
('IN_MYBB'1);
define('THIS_SCRIPT''api.php');

require_once 
'/var/www/html/global.php';
require_once 
MYBB_ROOT.'/var/www/html/inc/functions_rebuild.php';

rebuild_stats();
?>

Jetzt komme ich mit der Fehlermeldung 
Code:
PHP Fatal error:  require_once(): Failed opening required '/var/www/html//var/www/html/inc/functions_rebuild.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/html/libomzqTyL.php on line 7
nicht mehr weiter...

Es sieht für mich so aus, als würde er die Pfade irgendwie aneinanderhängen... Aber ich kenne mich wiegesagt mit PHP nicht aus, hab also keine Ahnung wie man das fixt :

Uuuund wieder ich... Habs doch herausgefunden. MYBB_ROOT scheint wohl schon der komplette Pfad zu sein. Einfach die Zeile so gelassen wie am Anfang (ohne /var/www/html/) und es hat funktioniert.

Danke nochmals!!


RE: Cache manuell erneuern? - MrBrechreiz - 05.05.2017

So lauten sie richtig.

PHP-Code:
require_once "./global.php";
require_once 
MYBB_ROOT."inc/functions_rebuild.php"



RE: Cache manuell erneuern? - BeNeDeV - 05.05.2017

Ja, aber so konnte es in meinem Fall nicht funktionieren, da ich das Script von einem anderen Verzeichnis aus aufrufe. Nicht über einen Browser oder so sondern direkt mit dem Befehl
Code:
php /var/www/html/datei.php
Deshalb musste ich den oberen Pfad ändern.


RE: Cache manuell erneuern? - MrBrechreiz - 06.05.2017

Was spricht dagegen die API File per include einzubinden, oder das MyBB in deine API ? Beide Wege sind möglich.