MyBB.de Forum

Normale Version: Problem mit Templatecache bei Plugins
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Nachdem ich mich nun durch diverse Themen bei mybb.com durchgewühlt habe, aber trotz diverser Hinweise nicht zum Ziel komme, frage ich mal hier nach.

Es geht darum, dass beim Start eines Plugins, die darin erstellten Templates aus dem Cache gezogen werden und nicht jeweils neu über einen query abgefragt werden.

In den oben erwähnten Themen habe ich z.B. folgende Hinweise gefunden (Beispiel für ein Plugin, das im Benutzer-CP aufgehängt ist):
PHP-Code:
$plugins->add_hook("usercp_menu""foo");

if(
THIS_SCRIPT == "usercp.php")
{
  global 
$templatelist;
  
  if(isset(
$templatelist)){
    
$templatelist .= '';
  }
  
$templatelist .= ',abc,def,ghi';

Ich habe diverse Plugins, die z.B. über usercp.php, misc.php oder auch eine eigene php-Datei aufgerufen werden. Ich passe dann natürlich die Abfrage nach "THIS_SCRIPT" entsprechend an. Aber der o.a. Code funktioniert nicht einwandfrei. Entweder wird gar kein Template aus dem Cache gezogen oder nur ein oder zwei.

Ich steige einfach nicht dahinter, wo hier der Wurm drin ist.... Sad
Das sieht eigentlich richtig aus... Hast du einmal auf der Debug-Seite geschaut, ob die Template im Query aufgerufen werden:
Code:
SELECT title,template FROM mybb_forum_templates WHERE title IN ('' ,...
In diesem riesigen Query müssen sie auftauchen um im Cache zu landen.
Ja, das ist es eben. Zum Teil tauchen sie dort auf, aber andere Templates des selben Plugins werden z.B. separat mit einem zusätzlichen Query abgefragt.
Dann muss ein Fehler in der $templatelist sein oder beim THIS_SCRIPT stimmt etwas nicht...
Wie ist das, wenn ein Link im Benutzer-CP nicht auf die usercp.php sondern auf eine xyz.php verweist? Da müsste sich dann auch die THIS_SCRIPT Abfrage auf die xyz.php beziehen, oder?
Ja, genau.
hmm, das habe ich aber auch schon versucht. Sad
Nochmal etwas genauer nachgefragt:
(01.06.2014, 10:25)Jockl schrieb: [ -> ]Da müsste sich dann auch die THIS_SCRIPT Abfrage auf die xyz.php beziehen, oder?
Reicht die Abfrage nur im Plugin oder muss das auch in die Datei xyz.php?
Das reicht im Plugin vollkommen aus, die Plugin-Datei wird ja bei jedem Aufruf eingebunden und ausgeführt. Du kannst auch den Hook global_start verwenden, dort funktioniert dieser Code auch.
OK, das mit global_start hat funktioniert. Wobei das vermutlich ein wenig übertrieben ist, oder? Mich wundert es, warum es bei den anderen Hooks bzw. insbesondere bei einer Weiterleitung (also an xyz.php) nicht funktioniert.
Ich finde nicht, dass das übertrieben ist, für so etwas ist der Hook ja da... Wenn du viele Templates hast, lohnt sich das schon.

Was meinst du mit Weiterleitung? (Funktion redirect?)
Seiten: 1 2