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.
DataVar userseperatet fehlerhaft
#1 DataVar userseperatet fehlerhaft
In der Beschreibung steht, dass bei userseperatet für jeden User eine eigene Var angelegt wird.
Beispiel aus Wiki
Zitat
userseparated: Diese Funktion befindet sich noch in der Betaphase. Wenn userseparated aktiviert wird, wird für jedes Mitglied eine eigene Datenvariable angelegt. Um beim Beispiel des "forum_posts" zu bleiben: Man könnte somit z.B. ein Plugin realisieren, bei dem jedes Mitglied seine eigenen Kommentare zu Beiträgen hinzufügen kann, die dann später auch nur von diesem Mitglied gelesen werden können.
Ähnliches wollen wir in einem Plugin umsetzen.
Für jeden User soll ein Zustand zu jedem Beitrag gespeichert werden.
Der erste User hat gewonnen. Seine Zustände werden je Beitrag gespeichert.
Für alle anderen User ist die DataVar je Beitrag leer (Wert=null).
Es scheint so zu sein, dass nur ein User je Thema die DataVar je Beitrag verwenden kann.
Wer ein Thema als erstes aufruft und seine Zustände je Beitrag gespeichert werden, kann diese auch als einzigster dort wieder abrufen. Für alle anderen User ist dann in diesem Thema die DataVar (userseperatet) leer (=null).
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#2 RE: DataVar userseperatet fehlerhaft
Nachtrag
Hier der verwendete Code in unserem Plugin.
2
3
4
5
6
7
8
9
10
11
12
13
14
/*
Die setDataVar()-Funktion ändert den Wert einer Data-Variablen
Parameter
---------
varname: 'beitrag_status' // der Name der Variablen, die abgefragt wird
originType: 2 // der Element-Typ, dem die Variable zugeordnet ist
originid: {{message:id}} // die Id des Elements, dem die Variable zugeordnet ist
val: 0/1 // der neue Wert der Variablen (false/true)
userseperatedID: {{user_id}} //
callback: Callback-Funktion
____________________________________________________________________
*/
xobor.plugin("pluginID").setDataVar('beitrag_status', 2, {{message:id}}, 1, function(res) (/* leer */), {{user_id}});
2
3
4
5
6
7
8
9
10
11
12
13
/*
Die getDataVar()-Funktion ruft den Wert einer Data-Variablen ab
Parameter
---------
varname: 'beitrag_status' // der Name der Variablen, die abgefragt wird
originType: 2 // der Element-Typ, dem die Variable zugeordnet ist
originid: {{message:id}} // die Id des Elements, dem die Variable zugeordnet ist
callback: Callback-Funktion
userseperatedID: {{user_id}} //
____________________________________________________________________
*/
xobor.plugin("pluginID").getDataVar('beitrag_status', 2, {{message:id}}, function(res) (beitrag_status=res;), {{user_id}});
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
Wird die "function" nicht in geschweifte Kammern geschrieben?
2
3
xobor.plugin("pluginID").getDataVar('beitrag_status', 2, {{message:id}}, function(res){
(res = der Inhalt der DataVar)
});
Und das Setzen der DataVar habe ich so gemacht:
2
var Daten = ["1"," ",{{user_id}}]
xobor.plugin("pluginID").setDataVar('beitrag_status', 2, {{message:id}}, Daten;
Gruß
Olaf
#4 RE: DataVar userseperatet fehlerhaft
Kopierfehler mit den Klammern.
Die function ist im Plugin in geschweiften Klammern.
2
3
4
xobor.plugin("pluginID").setDataVar('beitrag_status', 2, {{message:id}}, 1, function(res) {/* leer */}, {{user_id}});
xobor.plugin("pluginID").getDataVar('beitrag_status', 2, {{message:id}}, function(res) {beitrag_status=res;}, {{user_id}});
In der API ist die setDataVar wiedersprüchlich.
Die Parameter sind in anderer Reihenfolge gelistet als sie in der function angeodnet sind.
In der Liste steht userseperatedID vor callback, in der function ist es umgekehrt.
Ich habe beide Varianten getestet, userseperatedID ,callback und callback, userseperatedID, aber es ändert sich nichts.
2
3
4
5
6
7
8
9
10
11
/*Parameter
varname: der Name der Variablen, die abgefragt wird
originType: der Element-Typ, dem die Variable zugeordnet ist
originid: die Id des Elements, dem die Variable zugeordnet ist
val: der neue Wert der Variablen
userseperatedID: wird später implementiert
callback: Callback-Funktion
*/
function xobor.plugin("pluginID").setDataVar(varname, origin_type, origin_id, val, callbackfn, userseperatedID)
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
Ich habe doch noch einen Unterschied festgestellt in Bezug der Reihenfolge userseperatedID ,callback und callback, userseperatedID bei setDataVar.
In der Variante userseperatedID ,callback funktioniert die callback function nicht.
In der Variante callback, userseperatedID funktioniert die callback function und gibt true als Paremter zurück, auch wenn die DataVar leer bleibt obwohl man einen Wert gespeichert hat.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
Es scheint so zu sein, dass wenn eine userseparated-Variable neu angelegt wird, diese für den speziellen User erst angelegt wird, sobald dieser selbst auf die Variable zugegriffen hat.
Wenn man vorher versucht, auf die Variable, als Admin z.B., zuzugreifen, kommt bei mir 'null'.
?? Vielleicht ist das der Grund ??
Auch bei neu angemeldeten Test-Usern das gleiche Verhalten.
Wird die userseparated-Variable zum ersten mal verwendet vom "Eigentümer", dann wird das 'null' überschrieben, wenn ich aber stattdessen als allererstes als Administrator mit der Variable arbeiten will, zeigt er mir 'null'.
Auch wenn ich mich danach als Admin auslogge und als "Eigentümer" einlogge, lässt sich die Variable von 'null' nicht mehr wegbewegen. Es bleibt 'null'.
Ich bin mir nicht ganz sicher, aber eigentlich müsste die Variable für jeden User sofort dann angelegt werden, wenn ein Admin die userseparated-Variable im Plugin anlegt, oder bzw. sofort im Augenblick, in dem ein neuer User freigeschaltet wird (egal ob durch den Admin oder automatisch).
Weil dann würde sie grundsätzlich immer zur Verfügung stehen.
Aber dummerweise weiß ich halt nicht, ob ich nicht wiedermal irgendwo was vergessen habe, einen Haken oder so zu setzen!
Ich stelle fest:
Vor der Benutzung der userseparated-Variable eine Überprüfung, ob man selbst auf seine eigene Variable zugreift und diese nicht 'null' ist, reicht schon aus.
Wenn jemand anderes auf die Variable zugreift, muss man vorher überprüfen, ob sie vom Typ 'string' o.ä. ist.
- 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
Ähnliche Themen
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software