Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
#1 Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
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?
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
#2 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
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)
#3 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
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...
#4 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
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.
#5 RE: Fehler : Die bbcodeLive()-Funktion kann nur einmal in allen meinen Plugins aufgerufen werden
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.
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
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software
Technik ·