Grundkurs Plugins schreiben

  • Seite 8 von 11
15.08.2015 13:20
avatar  Ingmar
#106 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat
Ich möchte gerne die Anzahl der Antworten der Themen vom ganzen Forum abfragen


Du hast doch {{topics_count}} schon. Was willst du denn noch abfragen? Oder versteh ich da was falsch?


Zitat
Wieso funktioniert es nicht mit meheren ID's,wie es in der Dokumentation als Beispiel steht?


Das ist ein Fehler in den Docs...

Richtig wäre

var daten = {target_id: [1,2,3,4,5,6,7,8,9,10], target_type: '1'}

- also OHNE die Anführungszeichen um den Array.


Generell muss du mit der getDeep bzw getDeepList vorsichtig umgehen. So eine while - Schleife wie in deinem Beispiel, die mal eben für jede ID < themen_anzahl einen getDeep-Call macht kann den Server schon ganz schön beschäftigen...

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
15.08.2015 18:55
avatar  Olaf
#107 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Erstmal Danke für Deine Antwort.

Zitat von Ingmar im Beitrag #106

Du hast doch {{topics_count}} schon. Was willst du denn noch abfragen? Oder versteh ich da was falsch?


Du als Profi siehst doch in meinem Script,das es mir um die Antwortenanzahl jeden einzelnen Themas geht und nicht um die Gesamtanzahl der Themen im Forum.
Die Variable "{{topics_count}}" brauche ich,um die Anzahl der Themen ID's zu ermitteln.

So sieht jetzt mein Script aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<script>
var id_nr = new Array();
var ergebniss = [];
var themen_anzahl ="{{topics_count}}";
for(i=1;i-2 < themen_anzahl;i++){
id_nr.push(i)
}
var daten = {target_id: id_nr, target_type: '1'}
xobor.plugin('lesetest').getDeep(daten,function(a){
$.each(a, function(key, value) {
ergebniss.push(value['answers']);
});
});
alert(ergebniss)
</script>
 
 



Nun sehe ich in meiner alert Ausgabe,das einige ID's nicht ausgegeben werden,weil die Themen wahrscheinlich gelöscht worden sind.
Ist das Richtig,das die gelöschten Themenanzahl in der Variable "{{topics_count}}" nicht abgezogen werden?
Habe ich z.B. 77 Themen und lösche 10 dann zeigt mir die Variable "{{topics_count}}" trotzdem 77 an?
Und ist das auch so bei den Antwortenanzahl,das z.B. bei 50 Antworten 10 gelöschte mir die Datenbank trotzdem 50 anzeigt?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.08.2015 12:37 (zuletzt bearbeitet: 18.08.2015 12:39)
avatar  Ingmar
#108 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Zitat von Olaf im Beitrag #107
Nun sehe ich in meiner alert Ausgabe,das einige ID's nicht ausgegeben werden,weil die Themen wahrscheinlich gelöscht worden sind.
Ist das Richtig,das die gelöschten Themenanzahl in der Variable "{{topics_count}}" nicht abgezogen werden?


Nein, das ist nicht richtig. {{topics_count}} enthält immer die aktuelle Themenanzahl. Sollte das mal nicht Fall sein, kann man über die "Zähler neu berechnen"-Funktion korrigiert werden.

Wenn du z.B. 100 themen erstellst erhalten diese theoretisch die IDs 1-100. Löschst du nun die ersten 50, haben deine restlichen themen die Ids 51-100, der topic_count ist aber 50. Dein Skript würde dann keines der 50 Themen über die Id ansprechen.

Von Topic-count auf bestehende Themen-Ids zu schließen ist daher nicht sinnvoll/zielführend.

Zitat

Du als Profi siehst doch in meinem Script,das es mir um die Antwortenanzahl jeden einzelnen Themas geht und nicht um die Gesamtanzahl der Themen im Forum.



Schon in einem Forum mit 100 Themen müsstest du ja (vorrausgesetz du kennst die Themen-Ids) 100 Ajax-Calls machen, um die Antworten in den einzelnen Themen anzeigen zu können. Bei größeren Foren noch viel mehr. Das scheint mir spontan ein bischen viel Datenübertragung für eine Statistik-Anzeige

Ich kann dir daher auch keinen "effektiven" Lösungsweg nennen, wie du am zu jedem Thema die Id findest um dann infos dazu abzurufen - dazu ist einfach das Ziel zu ineffektiv.

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
18.08.2015 18:58
avatar  Olaf
#109 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich als Client habe ja keine andere Möglichkeit,den Server bei jeder Themen-ID nur einen einzigen bestimmten Key abzufragen.(vorrausgesetzt,die Themen ID's sind bekannt)
Dadurch ist mir klar,das jede Themen-ID 25 Einträge hat und bei 100 Themen würden dann 2500 Einträge abgefragt,wobei ich nur 100 Einträge davon verarbeite.
Eine Menge unnötige Serverlast...

Danke für Deine Infos.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
09.01.2016 00:02
avatar  Olaf
#110 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich habe mein Plugin "Lesezeichen" umgeschrieben von "localstore" (cookie) auf Datenvariablen,damit die abgespeicherten Lesezeichen dauerhaft zur Verfügung stehen.
Da das Anzeigefenster vom Plugin überall im Forum aufgerufen werden sollte,brauche ich beim auslesen der Daten einen origin type,der auch überall im Forum zur Verfügung steht.
Ich habe dafür den origin type "plugin" (1337) genommen,womit ich die Daten im ganzen Forum abfragen kann.Natürlich sind die Daten immer mit der Mitglied ID ({{user_id}}) verbunden.

Ist dieser origin type dafür vorgesehen oder sollte ich einen anderen für meine Zwecke nehmen?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
12.01.2016 16:51
avatar  Olaf
#111 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ist es vielleicht möglich,das ein Techniker fünf Minuten Zeit hat und mir die hier oben genannte Frage beantwortet?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
12.01.2016 17:01
#112 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

OriginType: user_login

sollte überall verfügbar sein


 Antworten

 Beitrag melden
12.01.2016 17:02
avatar  Olaf
#113 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

OK.Danke,
Dann nehme ich den.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
13.01.2016 15:12
avatar  Olaf
#114 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich habe nun mein Script auf den OriginType: user_login (5) umgeschrieben und seitdem kann ich keine Datenvaiablen mehr beschreiben:

1
2
3
4
5
 
xobor.plugin("info").setDataVar("ohopen",5,{{user_id}},1);
xobor.plugin("info").getDataVar("ohopen",5,{{user_id}},function(res){
alert(res);
});
 
 


Die Ausgabe bleibt "0".
Auch habe ich wieder die Datenvariablen auf den alten OriginType: plugin (1337) neu angelegt (vorher die alten Variablen gelöscht) und auch dort kann ich keine Daten mehr beschreiben.Seit der Umschreibung auf den OriginType: user_login geht nichts mehr.Vorher lief alles einwndfrei.
Muß ich die Variablennamen auch mit ändern oder warum kann ich keine Daten mehr beschreiben?

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
13.01.2016 16:54
avatar  Ingmar
#115 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Technik

Was gibt den dein setDataVar-Aufruf zurück?

xobor.plugin("info").setDataVar("ohopen",5,{{user_id}},1,function(res){ alert("res: " + res); });

Viele Grüße,
Ingmar


 Technik · Homepagemodules.de · Miranus GmbH

 Antworten

 Beitrag melden
13.01.2016 17:26 (zuletzt bearbeitet: 13.01.2016 17:32)
avatar  Olaf
#116 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Der Rückgabewert ist "res: true"
Wobei ich das Script wieder auf den OriginType: plugin umgeschrieben habe und Dein Test mit Origin ID 1337 getestet habe.


Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
13.01.2016 21:27 (zuletzt bearbeitet: 13.01.2016 21:28)
avatar  Olaf
#117 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Hier mal die Ausgabe in der Console.
Der gesendete Code:

1
2
3
4
5
 
xobor.plugin("info").setDataVar("ohopen",1337,{{user_id}},1)
xobor.plugin("info").getDataVar("ohopen",1337,{{user_id}},function(res){
alert(res);
});
 
 


Und in den Bildern schön zu sehen,das angeblich "true" gesendet worden ist,aber eine "0" in der Variablen steht.
Das Plugin hat 9 Datenvariablen,die sich jetzt nach den Ändern des OriginType alle so verhalten.
Wie gesagt,wie ich sie "Frisch" angelegt hatte,funktionierte es einwandfrei.

Gruß
Olaf

__________________________

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

Console Antwort.jpg

download

imagepreview

Console Parameter.jpg

download

imagepreview

Console Post.jpg

download

imagepreview

Console json.jpg

download


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

 Antworten

 Beitrag melden
14.01.2016 15:50 (zuletzt bearbeitet: 14.01.2016 15:51)
#118 RE: Grundkurs Plugins schreiben - Grundlagen
avatar
Techniker

der Type "plugin" ist recht experimentell und ich vermute, dass durch das hin und herwechseln im Hintergrund sich etwas überschrieben hat hinsichtlich der Daten. In der Vergangenheit selber hatten wir noch keine Variable gelöscht und unter gleichen Namen mit einem anderen Type wieder erstellt.Also vermute ich, liegt hier das Problem

Du könntest aktuell nur eine neue Varaible mit einen anderen Namen anlegen und gleich von Anfang an den Type "user_login" verwenden.

Im nächsten Update spielen wir etwas ein, was den Wechsel etwas "sicherer" gestaltet und hoffen dass der genannte Fehler nicht mehr auftritt.


 Antworten

 Beitrag melden
14.01.2016 20:24
avatar  Olaf
#119 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Ich Danke Dir für die Infos.

Ich habe die Datenvariablen jetzt umbenannt und die den OriginType "user_login" zugeordnet und meine ersten Tests waren positiv.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
14.01.2016 20:31
avatar  Olaf
#120 RE: Grundkurs Plugins schreiben - Grundlagen
Ol
Mitglied

Wenn ich noch einen Fehler melden darf:
Es lässt sich in meinem PI "Makierung der Themen" ein angelegtes Template Element nicht mehr löschen (siehe Bild)

Gruß
Olaf

__________________________

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

Makierung der Themen.jpg

download


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

 Antworten

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