Erweiterung der Plugin-JS-AP

04.09.2014 14:51
#1 Erweiterung der Plugin-JS-AP
avatar
Techniker

Erweiterung der Plugin-JS-API

Vorwort:
Beim LocalStorage und Cookies handelt es sich um Webtechniken, bei denen man Daten Lokal auf dem Browser eines Nutzers abspeichern kann. Da in der heutigen Zeit ein Nutzer ggfls. mit mehreren verschiedenen Geräten ein und denselben Account verwendet, ist es in der Regel sinnvoller und richtiger Benutzerbezogene Daten in einer DataVar Variable zu speichern.
https://www.xobor.de/plugin-doc-api.html#...ugin_getDataVar


Im Zuge der Weiterentwicklung des Plugin-Systemes, wurden neue Funktionen der API hinzugefügt. Hierbei handelt sich hauptsächlich um Methoden, die Ihr in Zukunft für den Zugriff auf den HTML5-LocalStorage oder den Browsercookies verwenden müsst.

Der HTML5-LocalStorage
Der Pluginentwickler muss immer davon ausgehen, dass sein Plugin nicht das einzige ist, was in einem Forum verwendet wird. Aus diesem Grund ist es sehr wichtig, dass er bei der Verwendung des Storages immer eindeutige Keys angibt, die nicht mit anderen Kollidieren können.

z.B. in einem Forum läuft Plugin A und Plugin B
Plugin A benutzt den LocalStorage und speichert dort Userdaten unter den Key „user“ ab. Plugin B speichert allerdings auch Daten im LocalStorage unter dem Key „user“ ab. Nun kann Plugin A mit den Daten nichts mehr anfangen, da diese von Plugin B überschrieben wurden und umgekehrt.

Um diesen Namenskonflikt zu vermeiden, haben wir 3 neue Methoden in die Pluginapi integriert.

Einen Wert holen

1
 
xobor.plugin("PLUGINID").localstorage.get(Key);
 


Erwartet einen Key als String
Gibt den Wert oder das Boolesche false zurück!

Einen Wert setzen

1
 
xobor.plugin("PLUGINID").localstorage.set(Key, Value);
 


Erwartet einen Key als String und ein Value als mixed
Gibt bei Erfolgreicher Speicherung das Boolesche true und bei einem Fehler das Boolesche false zurück.

Einen Wert löschen

1
 
xobor.plugin("PLUGINID").localstorage.del(Key);
 


Erwartet einen Key als String
Gibt bei Erfolg das Boolesche true zurück.

Diese Methoden stellen sicher, dass die Keys dem jeweiligen Plugin eindeutig zugeordnet werden.

Als nettes Bonusfeatures, können mit Hilfe dieser Funktion problemlos ganze JS-Objekte und Arrays gespeichert und ausgelesen werden (normalerweise akzeptiert der LocalStorage nur Strings!).

Cookies
Genau wie beim HTML5-LocalStorage, können auch bei Cookies Namenskonflikte auftreten und ggfls Daten überschreiben oder falsch auslesen.
Deshalb wurden für die Verwendung von Cookies folgende Funktionen der Plugin-API hinzugefügt!

Einen Wert holen

1
 
xobor.plugin('PLUGINID').cookie.get(Key);
 


Erwartet einen Key als String
Gibt den Wert oder das Boolesche false im Fehlerfall zurück.

Einen Wert setzen

1
 
xobor.plugin('PLUGINID').cookie.set(Key, Value, Ttl);
 


Erwartet einen Key als String, Value als String und eine Ttl(Time to live) als int (in Tagen)
Gibt bei Erfolg das Boolesche true oder bei Misserfolg das Boolesche false zurück.
Kann auch einen Fehler als String zurückliefern!

Einen Wert löschen

1
 
xobor.plugin('PLUGINID').cookie.del(Key);
 


Erwartet einen Key als String
Gibt das Boolesche true zurück


Für neue Plugins
Neue Plugins müssen bei der Verwendung von Cookies oder dem LocalStorage die oben aufgeführten Methoden verwenden.

Für Updates bereits bestehender Plugins
Updates bereits bestehender Plugins müssen auch auf die Verwendung der genannten Methoden umgeschrieben werden.


 Antworten

 Beitrag melden
04.09.2014 16:04 (zuletzt bearbeitet: 04.09.2014 16:05)
avatar  Romulus
#2 RE: Erweiterung der Plugin-JS-AP
avatar
Mitglied

Zitat von Christian im Beitrag #1
Updates bereits bestehender Plugins müssen auch auf die Verwendung der genannten Methoden umgeschrieben werden.

Hallo Christian,

muss ich hierbei in Bezug auf das Neverface-PI etwas berücksichtigen, oder wird das Update automatisch eingespielt?

LG. Romulus

www.neverface.com
Liebhaber des Business Templates

 Antworten

 Beitrag melden
04.09.2014 16:16
#3 RE: Erweiterung der Plugin-JS-AP
avatar
Techniker

keine Angst. Dein Plugin verwendet keine von beiden Techniken.


 Antworten

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