Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help

  • Seite 1 von 2
14.06.2024 14:27
#1 Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
TW
Mitglied

Hi ihr,

ich experimentiere schon länger mit den Templates herum und konnte das ein oder andere umstellen oder selbst coden. Bei meinem aktuellen Projekt komme ich jedoch nicht weiter und wollte hier mal um Hilfe fragen.

Folgendes wäre meine Idee/mein Ziel:
Durch die Profilangaben der einzelnen Mitglieder hat man einige Informationen. Allein wie viele Männer und Frauen es gibt, wenn man alles zusammenzählt, wer wann Geburtstag hat und bei uns durch den RPG Bezug auch, wer in welcher Kolonie lebt und vieles mehr.
Wir würden nun gerne in unserem Forum unten im Footer nicht nur die Gesamtmitgliederanzahl anzeigen lassen (ist schon integriert), sondern auch gerne eine Übersicht, wie viele Männer es gibt, wie viele Frauen und wie viele bespielte Mitglieder die jeweiligen Kolonien hat.

Durch das Grundverständnis im Programmieren wäre der Aufbau ziemlich "simple" von der Logik:
1. Schleife, die so lange geht, wie viele Mitglieder es gibt (kann man ja leicht abrufen mit {{user_count|numberformat}} )
2. Abfrage/Aufrufung aller Profile (sollte per User ID gehen, allerdings ist da die Frage, wie man die korrekten bekommt, per Schleife kann man nur von 0 bis zur Mitgliederanzahl hochzählen, doch die IDs gehen höher, da es ja mit jedem bisher bestehenden Account hochzählt, inklusiver gelöschter Accounts, wodurch die Schleife früher zuende wäre)
3. im Beispiel mit den Männern und Frauen zwei Variablen, die per if-else-Schleife hochzählen, je nachdem was das Geschlecht war, geht die eine oder andere Variable hoch
4. die Ergebnise im Footer ausspielen

ganz grob würde es so aussehen, nur dann eben in html geschrieben:
x = 0;
count_m = 0;
count_w = 0;
MitgliedXX = userid(0);

while (x <= Mitgliederanzahl) {
if(Mitglied_XX == Männlich) {
Mitglied_XX += 1;
count_m += 1;
x += 1; }
else(Mitglied_XX == Weiblich) {
Mitglied_XX += 1;
count_w += 1;
x += 1;}
}


Für die Umsetzung hapert es bei mir jedoch am html Wissen bzw wie die Templates von Xobor aufgebaut sind. Daher stellen sich mir folgende Fragen:
- wie kann ich eine Schleife erstellen? (auch hier Programmier-Wissen => sollte mit einer While-Schleife machbar sein, nur wie schreib ich die in diesem Fall)
- wie kann ich die einzelnen User IDs von allen Mitgliedern aufrufen?
- wie kann ich einzelne Profilfelder der Mitglieder abrufen?

Ich wäre über jegliche Hilfe dankbar, sei es allein, dass mir jemand eine gute Seite zeigt, wo ich alles nachschlagen kann (auf der Plugin-Xobor-Dokumentation wurde ich leider nicht fündig, aber gut möglich, dass ich etwas übersehen habe).

Liebe Grüße und schon mal vielen Dank für die Hilfe,

Grace

PS.: Falls ich am Ende mit eurer Hilfe erfolgreich bin, kann ich gerne bei Interesse den vollständigen Code dann auch gern euch zur Verfügung stellen :)


 Antworten

 Beitrag melden
14.06.2024 16:48 (zuletzt bearbeitet: 14.06.2024 17:03)
avatar  Mike48
#2 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
avatar
Mitglied

Mit einem Plugin und getDeepList und getDeep lässt sich das machen.
Ich weiß aber nicht wieviele User du mit getDeep auf einmal abfragen kannst.
In meinem Forum mit ca. 230 User hat das funktioniert.

Ich würde das mit einem Button starten und nur von Admins damit nicht bei jedem Seitenaufruf das Script läuft. Das würde wahrscheinlich zu Stress auf den Servern verursachen.

Das Script läuft in allen Templates.

"DEINE_PLUGIN_ID" musst du mit deiner Plugin id ersetzen.
Die Ergebnisse in einer dataVar speichern die man dann bei Bedarf irgendwo ausgeben kann.
Infos zu Plugins findest du hier:
https://www.xobor.de/plugin-doc-api.html
Wiki:Plugin-Tutorial-fuer-Einsteiger-bersicht

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
{{template!==177.start}}
<script>
{{template!==177.end}}
{{template==177.start}}
{{footerjs.start}}
{{footerjs}}
{{template==177.end}}
console.log("- begin -- userliste ----");
/* begin - Liste mit allen user_id erstellen */
var userliste = [];
var idata = {target_type : 3, limit : "all"}
xobor.plugin("userliste01").getDeepList(idata,function(res){
for (let user_id in res) {
userliste.push(user_id);
}
});
/* end - Liste mit allen user_id erstellen */
 
/* begin - Daten aller User abrufen */
var jdata = {target_type: 3, target_id: userliste};
xobor.plugin("userliste01").getDeep(jdata,function(res){
$.each(res,function(){
console.log("Username: "+this.uname);
/*
this.user_id
this.usertitle
this.user_points
this.user_posts
this.user_link
this.userimage
this.avatar_width
this.avatar_height
this.uname
this.user_gender
this.usercolor
this.user_moderator
this.user_admin
*/
});
});
/* begin - Daten aller User abrufen */
console.log("- end -- userliste ----");
{{template==177.start}}
{{footerjs.end}}
{{template==177.end}}
{{template!==177.start}}
</script>
{{template!==177.end}}
 


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

 Antworten

 Beitrag melden
17.06.2024 11:04
#3 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
TW
Mitglied

Hi Mike,

danke für deine schnelle und hilfreiche Antwort <3 Ich werde mich dann mal weiter in die Plugins reinarbeiten, wäre mein erstes. Verzeih mir also, falls ich dich nochmal wegen ein zwei Fragen anschreiben werde.

Eine Frage hätte ich jedoch schon direkt. Kann man auch eigene Profilfelder mithilfe deines Scripts aufrufen? Im Template habe ich gesehen, dass es mit der Variable "optfields" aufgerufen wird, kann man dies dann auch mit einer ID verknüpfen und so eine Liste aus den einzelnen eigenen Profilfeldern anlegen und ausspielen lassen?

Liebe Grüße,

Grace


 Antworten

 Beitrag melden
18.06.2024 00:33
avatar  Olaf
#4 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

In Mike seinen Plugin ist zu sehen,welche Infos man über die "user_profile" per "getDeep()" Funktion von jeden User abfragen kann.
Mehr lässt sich über die Profile von jeden User so nicht abfragen.
Du könntest jeden User sein Profil aufrufen und dann die entsprechenden Infos herausziehen und dann abspeichern und danach in den Footer anzeigen.Wäre aber sehr mühseelig.
Aber eine komplette Abfrage der für Dich entsprechenden Infos über alle User aufeinmal,wüßte ich jetzt nicht,das es sowas gibt.
Ich habe aber mal Mike sein Plugin vervollständigt,das in den Statistiken die Anzeige erscheint,wieviel männliche und weibliche User das Forum hat.
Wie Mike schon schrieb,mit einem Button nur für den Admin zum aktualisieren der Anzeige,damit nicht bei jeden Aufruf des Forums,das in diesem Fall serverlastige "getDeep()",geladen wird.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<script>  
{{user_admin==true.start}}
$("#foverview_stat3 table").prepend('<input id="ma_fr" type="button" class="button" value="Aktualisieren">');
{{user_admin==true.end}}
 
$('#ma_fr').click(function(){
var userliste = [];
var maennlich = 0;
var weiblich = 0;
var idata = {target_type : 3, limit : "all"}
xobor.plugin("testprobe").getDeepList(idata,function(res){
userliste = Object.keys(res);
});
var jdata = {target_type: 3, target_id: userliste};
xobor.plugin("testprobe").getDeep(jdata,function(res){
$.each(res,function(){
if(this.user_gender_m){
maennlich++;
}
if(this.user_gender_w){
weiblich++;
}
});
});
var zusammen = maennlich +','+weiblich;
xobor.plugin("testprobe").setGlob('test2',zusammen)
location.reload();
});
 
zusammen = xobor.plugin("testprobe").getGlob('test2');
var geteilt = zusammen.split(',');
$("#foverview_stat3 table").prepend('<tr style="border-top: 1px solid #3c566a;"><td style="padding: 5px 0px;">Weibliche Mitglieder</td><td style="padding: 5px 0px;">'+geteilt[1]+'</td></tr>'+
'<tr style="border-top: 1px solid #3c566a;"><td style="padding: 5px 0px;">Männliche Mitglieder</td><td style="padding: 5px 0px;">'+geteilt[0]+'</td></tr>');
</script>
 



Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.06.2024 11:09
#5 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
wi
Mitglied

Hallo, funktioniert sowas für alle Templates? Oder nur für bestimmte?
LG


 Antworten

 Beitrag melden
18.06.2024 11:55
avatar  Olaf
#6 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

Das Plugin lässt sich für alle Templates ergänzen.
Dieses ist für das Business.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
18.06.2024 20:04
#7 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Bi
Mitglied

Wie cool. Und wie macht man das für das Gaia? Wenn ich fragen darf?


 Antworten

 Beitrag melden
18.06.2024 22:44
avatar  Olaf
#8 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

Du kannst auch mein Plugin haben,das ist für alle Templates.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
19.06.2024 19:33
#9 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Bi
Mitglied

Dankeschön, das ist echt total lieb!


 Antworten

 Beitrag melden
20.06.2024 23:07
avatar  Olaf
#10 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

Wenn Du mir Deine Boardnummer nennst,dann kann ich Dir das Plugin als "private Plugin" zusenden.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
21.06.2024 10:09 (zuletzt bearbeitet: 21.06.2024 10:10)
#11 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Bi
Mitglied

Hallo zusammen! Wie genau funktioniert das? Mit der eigenen Plugin ID?


 Antworten

 Beitrag melden
21.06.2024 10:29
avatar  Olaf
#12 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

Ich habe das Plugin in den Plugin Store gesendet und mal sehen,ob Ingmar es freigibt.
Dann kann jeder das Plugin,der es haben möchte,einfach wie gewohnt über Plugins installieren.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
23.06.2024 13:17
avatar  Olaf
#13 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

Ingmar hat das Plugin freigegeben und jeder kann es nun im Plugin-Store selber installieren.

Danke Ingmar.

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

 Beitrag melden
23.06.2024 23:15
#14 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
avatar
Mitglied

Und es funktioniert sogar. Klasse Olaf.


 Antworten

 Beitrag melden
24.06.2024 00:54
avatar  Olaf
#15 RE: Eigene Statistiken/Übersichten erstellen mithilfe der Mitglieder-Profilangaben? - Need Coding Help
Ol
Mitglied

In Deinem Forum hat das Plugin nicht viel zu tun...

Gruß
Olaf

__________________________

http://138600.homepagemodules.de/

 Antworten

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