Grundkurs Plugins schreiben

  • Seite 10 von 11
04.04.2016 09:32
#136 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

du musst für die origin_id immer die Userid mit angeben!
Es gibt z.B. eine globale JS-Variable die dir immer die aktuell eigene Userid zurückgibt

Diese nennt sich

tuserID


 Antworten

 Beitrag melden
04.04.2016 11:30 (zuletzt bearbeitet: 04.04.2016 11:31)
avatar  Ingmar
#137 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat von Olaf im Beitrag #135
Ich logge mich aus und melde mich als User mit ID 17 wieder ein und habe dann aber die gleichen Lesezeichen wieder,wie ich als Admin.Das ist Falsch.


Dann hast du irgendetwas falsch gemacht. Du musst beim Abruf der Data-Var die Userid mit angeben.

Eine Data-Var mit origin_type 3 ist immer einem Benutzer zugeordnet.
Allerdings kannst du - sofern die Rechte entsprechend eingestellt sind - natürlich auch data-vars von anderen Mitgliedern beschreiben oder lesen.
Daher musst du auch beim Abruf die Id mit angeben. Dann sollte das aber durchaus klappen.


hm, irgendwie hatte ich Christians Beirag übersehen... Naja, steht ja quasi das Gleiche drin

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
04.04.2016 16:41
avatar  Olaf
#138 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Zitat von Ingmar im Beitrag #137

Dann hast du irgendetwas falsch gemacht. Du musst beim Abruf der Data-Var die Userid mit angeben.

Natürlich habe ich die User ID mit angeben,sonst läuft nichts...

So hole ich eine Datenvariable,die durch die Variable {{user_id}} immer den User anspricht,der mit dem Plugin gerade arbeitet:

1
2
3
4
 
xobor.plugin("info").getDataVar("lzposition",5,{{user_id}},function(res){
....
....
 
 


Und genausso wird die Variable wieder abgesendet,wo die Variable {{user_id}} wieder genau auf den User zeigt,der gerade mit den Plugin arbeitet:

1
2
3
 
var infos=["1","300","120","0","0","0","1","500",""]
xobor.plugin("info").setDataVar("lzposition",5,{{user_id}},infos);
 
 



Und nach diesem Prinzip müsste ich von jeden Computer aus meine Lesezeichen wieder abfragen können,weil die Variable {{user_id}} mich wieder indendifiziert.
Macht sie aber nicht.
Wenn ich mich von einen anderen PC wieder einlogge,dann ist das Lesezeichenfenster leer.


Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
04.04.2016 16:55 (zuletzt bearbeitet: 04.04.2016 16:55)
#139 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

nutze in Javascript bitte ausschließlich die Javascript-Varaible
tuserID


 Antworten

 Beitrag melden
04.04.2016 16:59
avatar  Olaf
#140 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Kann ich denn meine Variable {{user_id}} einfach gegen die Variable {{tuserID}} austauschen und bezweckt sie genau das Gleiche?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
04.04.2016 17:07 (zuletzt bearbeitet: 04.04.2016 17:08)
avatar  Ingmar
#141 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Nein, du kannst die Foren-Variable {{user_id}} gegen die Javascript-Variable tuserID austauschen.

tuserID ist immer belegt mit der ID des aktuell angemeldeten Mitglieds.

{{user_id}} sollte das auch sein - könnte allerdings in Ausnahmefällen (im Gegensatz zu tuserID ) auch mal nicht belegt sein.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
04.04.2016 17:13
avatar  Olaf
#142 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Du schreibst die Variable tuserID ohne den geschweiften Klammern.Ist das so Richtig?


Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
04.04.2016 18:01
avatar  Ingmar
#143 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Richtig.

Die geschweiften Klammern sind der Syntax für unsere Foren-Variablen.
tuserID ist eine Javascript-Variable, die im Template definiert wird.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
04.04.2016 18:53
avatar  Olaf
#144 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

OK

Ich danke Dir und Christian für die Antworten.
Ich werde es in meinem Plugin einbauen.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
04.04.2016 20:28
avatar  Olaf
#145 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Da wirft sich gleich die nächste Frage auf:
Die Variable tuserID steht mir ja nicht so einfach zur Verfügung.Die muß ich mir bestimmt erst holen.
Funktioniert es mit der getGlob() Funktion und wie sieht dann der Funktionsaufruf aus?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
05.04.2016 08:36
#146 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

Das ist eine ganz normale JS-Variable die dir auf jeder Seite im Forum zur Verfügung steht.

Probier es doch einfach selber aus

tuserID in der Dev-Console eingeben oder

console.log(tuserID);


 Antworten

 Beitrag melden
05.04.2016 17:14 (zuletzt bearbeitet: 05.04.2016 17:33)
avatar  Olaf
#147 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Getestet im Plugin,es wird die Variable aber nicht gefunden?

Gruß
Olaf

Edit:
Wenn ich die Variable im Template "Untere Leiste" Abfrage,dann funktioniert es.
Aber im Plugin nicht.
Ich nehme mal an,das die Variable im Plugin "Obere Leiste→sidebar_left" noch nicht zur Verfügung steht.

__________________________

http://138600.homepagemodules.de/
Bildanhänge
imagepreview

Lesezeichen06.jpg

download


Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!

 Antworten

 Beitrag melden
06.04.2016 10:43
#148 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

Die Variable wird da gesetzt, wo auch alle anderen PluginDaten gesetzt werden. Sprich spätestens "Obere Leiste" → "footer"
Bei "Inline-Elems" kann es immer mal vorkommen, dass diese an einer Stelle sind, wo die PluginDaten noch nicht geladen wurden. Aus diesem Grund sollte der initiale Aufruf eines Scriptes immer erst nach einem document ready erfolgen. oder man muss selber sicher stellen, dass die benötigten Daten schon verfügbar sind.


 Antworten

 Beitrag melden
06.04.2016 16:52
avatar  Olaf
#149 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich habe den Plugin Teil von der "Obere Leiste→sidebar_left" in den Template Abschnitt "Obere Leiste→Footer" gesetzt.
Da ist die Variable vorhanden.

Danke Dir für die Antworten.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
24.04.2017 12:28
avatar  Mike48
#150 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

Zitat von Olaf im Beitrag #138
Zitat von Ingmar im Beitrag #137

Dann hast du irgendetwas falsch gemacht. Du musst beim Abruf der Data-Var die Userid mit angeben.

Natürlich habe ich die User ID mit angeben,sonst läuft nichts...

So hole ich eine Datenvariable,die durch die Variable {{user_id}} immer den User anspricht,der mit dem Plugin gerade arbeitet:

1
2
3
4
 
xobor.plugin("info").getDataVar("lzposition",5,{{user_id}},function(res){
....
....
 
 


Und genausso wird die Variable wieder abgesendet,wo die Variable {{user_id}} wieder genau auf den User zeigt,der gerade mit den Plugin arbeitet:

1
2
3
 
var infos=["1","300","120","0","0","0","1","500",""]
xobor.plugin("info").setDataVar("lzposition",5,{{user_id}},infos);
 
 



Und nach diesem Prinzip müsste ich von jeden Computer aus meine Lesezeichen wieder abfragen können,weil die Variable {{user_id}} mich wieder indendifiziert.
Macht sie aber nicht.
Wenn ich mich von einen anderen PC wieder einlogge,dann ist das Lesezeichenfenster leer.


Gruß
Olaf




Hallo @Olaf

du legst bei jedem User eine DataVar ab, aber nicht für jeden User. Dazu muss die DataVar mit "userseparated" erstellt werden und bei lesen und schreiben auch die "userseparatedID" angegeben werden.



1
2
3
 
xobor.plugin("pluginID").getDataVar(varname, originType, originid, callbackfn, userseperatedID)
 
xobor.plugin("pluginID").setDataVar(varname, origin_type, origin_id, val, callbackfn, userseperatedID)
 


Die user_id in originid sagt, bei welchem User gespeichert wird, und die userseperatedID ist zuständig, für welchen User bei diesem User (originid) die DataVar ist.

Ich habe DataVars so eingerichtet und es werden für jeden User eigene Daten gespeichert.
In deinem Fall musst du die user_id in originid und userseperatedID eintragen.
Die Variable muss aber neu erstellt werden, da das Flag userseperated nicht nachträglich geändert werden kann.


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

 Antworten

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