Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden

18.09.2025 18:08 (zuletzt bearbeitet: 18.09.2025 18:22)
avatar  Olaf
#1 Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
Ol
Mitglied

Ich habe im Plugin "Countdown" die bbcodeLive()-Funktion eingebaut.Funktioniert auch einwandfrei.
Die gleiche Funktion habe ich auch im Plugin "Drei Infoboxen" eingebaut.
Laufen beide Plugins zur gleichen Zeit,wird der Text von Plugin "Countdown" in Plugin "Drei Infoboxen" angezeigt.
Das ist bestimmt nicht so vorgesehen,so kann man ja nur die Funktion einmal in allen Plugins benutzen.
Ich weiß nicht,ob der Inhalt im DOM geladen wird und einfach beim nächsten call da wieder herausgeholt wird,ohne
das beim Beenden der Funktion der Inhalt wieder gelöscht wird?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Plugin:Countdown
 
var Text1 ={text:"Das ist ein Test",};
xobor.plugin("countzaehler").call("bbcodeLive",Text1,function(res){
console.log("Call Countdown ="+res)
});
 
Ausgabe console: Call Coutdown = Das ist ein Test
 

Plugin:Drei Infoboxen
 
var Text2 ={text:"Hier wird nochmal getestet",};
xobor.plugin("threeinfo").call("bbcodeLive",Text2,function(res){
console.log("Call Infoboxen ="+res)
});
 
Ausgabe console: Call Infoboxen = Das ist ein Test
 
 



Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.09.2025 19:35 (zuletzt bearbeitet: 18.09.2025 19:37)
avatar  Mike48
#2 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
avatar
Mitglied

Hast du in den Plugins den Code jeweils gekapselt? Siehe Dokumentation der Xobor Plugin API → Tips & Tricks → Kapselung
Wenn nicht dann kann es sein dass manche Funktionsaufrufe vom falschen Plugin sind.
So was ähnliches ist mir früherauch schon mal passiert.


www.friends-of-xobor.de (621181 - Template kann wechsel bei Plungin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
18.09.2025 21:33
#3 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
l2
Mitglied

Mehrere Aufrufe hintereinander (quasi gleichzeitig ) haben wir hier xobor.plugin('xy').call("bbcodeLive", ... ) schon mal getestet.

Wie man es jetzt in deinem Falle lösen könnte, wüsste ich im Augenblick auch nicht...





... würde es „Fussball spielen” heissen

vG Bernd‍

 Antworten

 Beitrag melden
19.09.2025 11:13
avatar  Ingmar
#4 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
avatar
Technik

Zitat von Olaf im Beitrag #1
Laufen beide Plugins zur gleichen Zeit,wird der Text von Plugin "Countdown" in Plugin "Drei Infoboxen" angezeigt.


Es kann sein, dass es da einen Caching Fehler gibt, der das verursacht. Die Funktion speichert den berechneten BB-Code für eine Minute im Cache, um doppelte Arbeit zu vermeiden wenn der gleiche Code 2 Mal abgerufen wird. In diesem Cache ist keine Plugin-Id enthalten. Ich konnte das allerdings in meinem Testforum nicht reproduzieren - dort wird auch bei 5 Plugins immer der richtige Wert zurückgegeben.

Ganz allgemein sollte diese Funktion niemals einfach beim Laden einer Seite aufgerufen, sondern immer nur durch eine Benutzer-Aktion (klick, hover etc) ausgelöst werden.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
19.09.2025 16:56 (zuletzt bearbeitet: 19.09.2025 17:03)
avatar  Olaf
#5 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
Ol
Mitglied

Zitat von Ingmar im Beitrag #4
Die Funktion speichert den berechneten BB-Code für eine Minute im Cache, um doppelte Arbeit zu vermeiden wenn der gleiche Code 2 Mal abgerufen wird.


Das ist aber eine ungewöhnliche Arbeitsweise,die natürlich diesen Fehler hervorruft.So kann diese Funktion innerhalb einer Minute keine neuen Daten mehr aufnehmen!!??
In meinem Plugin "Letzter Beitrag" habe ich auch eine Cache Funktion eingebaut.Sobald ein User auf den letzten Beitrag mit den Cursor fährt,wird der Inhalt vom letzten Beitrag vom Server geladen und dann im Speicher vom User geladen.Da sind die Daten immer fest und können dann vom Cache vom User schneller geladen werden.Das gibt einen Sinn.Aber in dieser bbcodeLive()-Funktion die letzten Eingansdaten für eine Minute fest zu speichern und für den nächsten Call zu sperren,die sich natürlich auch beim nächsten Laden der Seite ändern könnten,gibt es gar keinen Sinn,sondern führen nur zu einen unnützen Fehler.

Wenn bei Dir der Fehler nicht reproduzierbar ist,dann kannst Du gerne in meinem Testforum gehen,da habe ich Extra 2 neue frische Plugins angelegt (Zum Testen 2,Zum Testen 3),indem die bbcodeLive()-Funktion läuft.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
Plugin:Zum Testen 3
 
var Text3 ={text:"Das ist ein Test",};
xobor.plugin("testprobe3").call("bbcodeLive",Text3,function(res3){
console.log("Call testprobe3 = "+res3)
});
 
Plugin:Zum Testen 2
 
var Text2 ={text:"Das ist wieder ein Test",};
xobor.plugin("testprobe2").call("bbcodeLive",Text2,function(res2){
console.log("Call testprobe2 = "+res2)
});
 
Ausgabe Console:
Call testprobe2 = Das ist ein Test
Call testprobe3 = Das ist ein Test
 
 



Ich werde die bbcodeLive()-Funktion aus den Plugin wieder entfernen,denn mit einer click-funktion kann das in meinem Plugin nicht verbunden werden.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!