MyBB.de Forum
Problem mit Templatecache bei Plugins - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Entwicklung (https://www.mybb.de/forum/forum-74.html)
+--- Thema: Problem mit Templatecache bei Plugins (/thread-29828.html)

Seiten: Seiten: 1 2


Problem mit Templatecache bei Plugins - Jockl - 01.06.2014

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


RE: Problem mit Templatecache bei Plugins - StefanT - 01.06.2014

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.


RE: Problem mit Templatecache bei Plugins - Jockl - 01.06.2014

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.


RE: Problem mit Templatecache bei Plugins - StefanT - 01.06.2014

Dann muss ein Fehler in der $templatelist sein oder beim THIS_SCRIPT stimmt etwas nicht...


RE: Problem mit Templatecache bei Plugins - Jockl - 01.06.2014

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?


RE: Problem mit Templatecache bei Plugins - StefanT - 01.06.2014

Ja, genau.


RE: Problem mit Templatecache bei Plugins - Jockl - 01.06.2014

hmm, das habe ich aber auch schon versucht. Sad
Nochmal etwas genauer nachgefragt:
(01.06.2014, 11: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?


RE: Problem mit Templatecache bei Plugins - StefanT - 01.06.2014

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.


RE: Problem mit Templatecache bei Plugins - Jockl - 01.06.2014

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.


RE: Problem mit Templatecache bei Plugins - StefanT - 01.06.2014

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?)