Grundkurs Plugins schreiben

  • Seite 9 von 11
14.01.2016 23:55 (zuletzt bearbeitet: 15.01.2016 00:17)
avatar  Mike48
#121 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

ich habe es bisher immer hinbekommen, wenn ich hier auch gelöscht habe.


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
15.01.2016 07:26
avatar  TripleM
#122 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

Zitat von Mike48 im Beitrag #121
ich habe es bisher immer hinbekommen, wenn ich hier auch gelöscht habe.



Leider eben nicht Immer. Habe selber so ein PI wo ich die Elemente nicht gelöscht bekomme. Es war auch so das ich mal eins in den Store eingereicht habe was nicht genehmigt wurde weil Leere Elemente vorhanden waren unter anderem.
Es gibt immer wieder das Problem das ich die nicht löschen kann. Habe aber noch kein Schema gefunden wann und warum das so ist.


 Antworten

 Beitrag melden
17.01.2016 01:04 (zuletzt bearbeitet: 17.01.2016 01:21)
avatar  Olaf
#123 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Wie kann ich einer Variablen eine Variable im Javascript zuweisen?

1
2
3
4
5
6
7
 
<script>
var res = 0;
$('head').append('{{deaktiv.start}}'+res+'{{deaktiv.end}}');
</script>
 
{{deaktiv}}
 
 


Die Ausgabe ist " '+res+' ".Wird also vom Interpreter die Variablenzuweisung "res" nicht ausgeführt.


Auch sehr interessant diese Ausgabe,die eigentlich gar nicht möglich ist:

1
2
3
4
5
6
7
8
9
10
11
12
 
<script>
var res = 0;
if(res == 0){
$('head').append('{{deaktiv.start}}0{{deaktiv.end}}');
}
else{
$('head').append('{{deaktiv.start}}1{{deaktiv.end}}');
}
</script>
 
{{deaktiv}}
 
 



Die Ausgabe von der Variablen {{deaktiv}} ist "1".
Es wird also die letzte Variablenzuweisung trotz der nicht ausgeführten "else" zugewiesen???

Ist es denn nur möglich,eine Variable vom Xobor System ({{variable.start}}...{{variable.end}}) eine feste Größe zu geben?
Aber dann wäre es ja keine Variable mehr....

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
17.01.2016 08:41
avatar  Mike48
#124 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

Der Sinn deiner Codes erschließt sich mir zwar nicht, aber die müssten funktionieren (allerdings der Sinn?)

1
2
3
4
5
6
7
 
<script>
var res = 0;
{{deaktiv.start}}res{{deaktiv.end}};
$('head').append('{{deaktiv.}}');
</script>
{{deaktiv}}
 
 

1
2
3
4
5
6
7
8
9
10
11
12
13
 
<script>
var res = 0;
if(res == 0){
{{deaktiv.start}}0{{deaktiv.end}};
$('head').append('{{deaktiv.}}');
}
else{
{{deaktiv.start}}1{{deaktiv.end}};
$('head').append('{{deaktiv.}}');
}
</script>

{{deaktiv}}
 


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
17.01.2016 11:03
avatar  Olaf
#125 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Zitat von Mike48 im Beitrag #124
Der Sinn deiner Codes erschließt sich mir zwar nicht, aber die müssten funktionieren (allerdings der Sinn?)


Das sind von mir auch nur Beispiele,um erstmal zu zeigen,was ich meine.
Deine Vorschläge funktionieren alle auch nicht.
Das ist ja mein geschildertes Problem,das im Script keine gleiche Xobor Variable gezielt "variabel" zugewiesen werden kann.
In Deinem ersten Beispiel:

1
2
3
4
5
6
7
 
<script>
var res = 0;
{{deaktiv.start}}res{{deaktiv.end}};
$('head').append('{{deaktiv.}}');
</script>
{{deaktiv}}
 
 


hast Du ja auch die Variable mit den Zeichen "res" gefüllt und so auch die Ausgabe.

Ich habe mal Dein zweites Beispiel umgeändert,um es noch besser verständlich zu machen:

1
2
3
4
5
6
7
8
9
10
11
12
 
<script>
var res = 0;
if(res == 0){
{{deaktiv.start}}0{{deaktiv.end}};
}
else{
{{deaktiv.start}}1{{deaktiv.end}};
}
</script>

{{deaktiv}}
 
 


Die Ausgabe ist "1".Es wird aber vom Javascript der "else" Zweig gar nicht ausgeführt und so muß die Ausgabe "0" sein....
Also ein Fehler im Xobor System!
Es wird grundsätzlich ein Script erstmal eingelesen,um es dann auszuführen.So nehme ich an,daß das Xobor System die Anweisung zur Änderung der Variablen nicht nur einliest,sondern einfach systematisch der Reihe nach ausführt,was natürlich in diesem Fall falsch ist und so die Variabenzuweisung von Xobor im Script leider völlig sinnlos ist und leider nicht zu gebrauchen.Die Variable hat also die letzte Wertzuweisung vom Script,egal ob sie ausgefüht werden darf oder nicht.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
17.01.2016 11:47 (zuletzt bearbeitet: 17.01.2016 12:14)
avatar  Mike48
#126 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

Was ist das für eine Varible?
Foren-Var oder Plugin-Var?

Mit meiner Config-Var im Plugin "mike48vartest1c" geht das so

1
2
3
4
5
6
7
8
9
10
11
12
 
<script>
var res = 1;
if(res == 1){
{{plugin_mike48vartest1c_config_deaktiv.start}}10{{plugin_mike48vartest1c_config_deaktiv.end}};
}
else{
{{plugin_mike48vartest1c_config_deaktiv.start}}20{{plugin_mike48vartest1c_config_deaktiv.end}};
}
</script>

Var deaktiv = {{plugin_mike48vartest1c_config_deaktiv}}

 

Die Anzeige ist 10, wenn res=2 kommt 20.

Die Var deaktiv müsste nach deinem Code eine Foren-Var sein.
Die Frage ist, ob man die Rechte hat, diese zu verändern.
Wenn ja, dann könnte noch der Typ falsch sein.

Da kannst du reinschreiben wollen was du willst, da ist immer 1 drin


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
17.01.2016 12:40 (zuletzt bearbeitet: 17.01.2016 12:50)
avatar  Mike48
#127 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Mitglied

Fehler von mir.
Var kann man doch ändern.
Es wird immer der else Zweig genommen.
Liegt vielleicht an den geschweiften Klammenr der if Anweisung und die der Var.

Aber so was einfaches geht auch nicht.

1
2
3
4
5
6
7
 
<script>
var res = 33;
{{deaktiv.start}}res{{deaktiv.end}};
</script>

{{deaktiv}}
 
 

Die Anzeige ist immer "res"


www.friends-of-xobor.de (621181 - V4 Template)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)

 Antworten

 Beitrag melden
17.01.2016 13:49
avatar  Olaf
#128 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Du kannst Dich drehen wie Du willst,es lässt sich keine Standardvariable oder Pluginvariable mit einer Javascriptvariablen belegen.
Auch in einer if else Abfrage wird immer der Wert in der else Abfrage geladen,egal ob vom Javascript die else Verzweigung gar nicht ausgeführt wird.
Schade,so muß man sich ein paar "Krücken" wieder ausdenken um diesen Misstand zu umgehen.

Hier nochmal ein Test mit einer angelegten Config-Variablen im PI:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<script>
var res = 1;
if(res == 1){
{{plugin_info_config_deaktiv.start}}1{{plugin_info_config_deaktiv.end}};
}
else{
{{plugin_info_config_deaktiv.start}}0{{plugin_info_config_deaktiv.end}};
}
{{plugin_info_config_deaktiv==true.start}}
alert("Es ist 1");
{{plugin_info_config_deaktiv==true.else}}
alert("Es ist 0");
{{plugin_info_config_deaktiv==true.end}}

</script>
 
 



Die Ausgabe bleibt immer "0" .

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
{{deaktiv.start}}0{{deaktiv.end}};
 
<script>
var res = 0;
if(res == 1){
{{deaktiv.start}}1{{deaktiv.end}};
}
</script>
 
{{deaktiv==1.start}}
 
{{deaktiv}}
 
{{deaktiv==1.end}}
 

 


Und hier noch ein Beispiel,wo die Ausgabe immer "1" ist,wobei sie bei der Abfrage gar nicht angezeigt werden darf.

Gruß
Olaf

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.01.2016 08:59 (zuletzt bearbeitet: 18.01.2016 09:00)
#129 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

Olaf du hast hier ein gravierendes Verständnisproblem.

Template-Variablen werden Serverseitig bearbeitet ... sprich bevor das ganze zu deinem Browser gesendet wird. JavaScriptCode ist an dieser Stelle völlig irrelevant.

JavaScript wird auf Browserseite ausgeführt. Sprich wenn alles Serverseitig abgearbeitet wurde, wird der Inhalt der Webseite an deinen Browser gesendet. Erst an dieser Stelle wird JavaScript umgesetzt.

Ein einfaches mischen so wie du es dir vorstellst, ist technisch nicht realisierbar (Das funktioniert alleine von der Art der Sprachen nicht).
Das ist auch kein Fehler sondern völlig normal in der Webentwicklung. Die Kunst ist es beides so zu verwenden, dass es sich ergänzt aber das eine kann das andere zum Teil nicht ersetzen.


 Antworten

 Beitrag melden
18.01.2016 11:43
avatar  Ingmar
#130 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik
Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
18.01.2016 17:36
avatar  Olaf
#131 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Man lernt nie aus...
Das habe ich nicht gewusst,das die Templaten Variablen schon umgesetzt mit den Javascript im Code gesendet werden.
Ich dachte,daß das Javascript die Anfrage sendet und dann erst die Variable erzeugt wird.
Nagut,dann funktioniert mein Vorhaben nicht.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
22.01.2016 20:07
avatar  Olaf
#132 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Kann es sein,das die call() Funktion im Plugin nicht funktioniert?
Ich habe diesen Code von der Dokumentation getestet,wo ich das fehlende Komma nach der originid schon korrigiert habe:

1
2
3
4
5
6
7
8
9
 
vardata = {    
origintype : 1, //Beitrag
originid : 12, //Beitrags-Id
varname : "comment" //
}

xobor.plugin("modcomment").call("checkRights",vardata,function(res){
if(res.read){alert("Leserechte vorhanden");}
});
 


Die Console gibt den Fehler "ReferenceError: xobor is not defined".

Auch diese Abfrage wird mit den gleichen Fehler quittiert:

1
2
3
 
xobor.plugin("modcomment").call("getmeta",function(res){
createPluginCopyright(res);
});
 



Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
22.01.2016 20:40
avatar  Ingmar
#133 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat von Olaf im Beitrag #132
Die Console gibt den Fehler "ReferenceError: xobor is not defined".


Das bedeutet, dass das "Xobor Plugin API"-Javascript (noch) nicht geladen wurde.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
22.01.2016 21:21 (zuletzt bearbeitet: 22.01.2016 21:22)
avatar  Olaf
#134 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Stimmt.
Den Test hatte ich im Template "Obere Leiste →Header"gemacht und da funktionierte nicht mal "$( document ).ready(function() " ,weil nicht mal jQuery geladen war.
Nun funktioniert alles einwandfrei.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
02.04.2016 20:00
avatar  Olaf
#135 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Mir wurde von Christian empfohlen,für das abspeichern (Data Variable) der Lesezeichen in meinem Plugin "Lesezeichen" den Origin Type 5 (user_login) zu nehmen.https://www.hpm-support.de/t536145f11769...html#msg7280656
Nun habe ich festgestellt,das mit diesen Origin Type 5 wahrscheinlich die API die Data Variable nicht nach User ID abfragt,sondern den User per Login Cookie indendifiziert.
Das ist ja nicht von mir so gewollt.
Kurze Schilderung der jetzigen Arbeisweise:
Ich logge mich als Admin ein und rufe meine Lesezeichen auf,die mit der User ID 1 abgespeichert worden ist.Da ist alles Richtig.
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.
Es wird also die Datenvariable nicht nach der User ID unterschieden,sondern nach den Login Cookie.Das gibt dann ja keinen Sinn mit der User ID in der Datenvariable.
Ist es nicht besser,wenn ich den Origin Type 3 (user_profile) nehme,wo vielleicht dann nach der User ID in der Data Variable unterschieden wird?
Der Sinn von der Abspeicherung der Data Variable soll von mir sein,das ich mich von jeden Computer einloggen kann und dann meine auf den anderen Computer abgespeicherten Lesezeichen wieder vorfinde.
Wenn nur nach der User ID unterschieden wird,dann sollte das auch klappen.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

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