Plugin Tutorial für Einsteiger - 1.3 Daten Speichern und Lesen

Hallo Welt - 1.3 Variablen

In diesem Tutorial beschreiben wir verschiedene Möglichkeiten Daten in einem Plugin zu speichern und wieder auszulesen. Zur Startseite des Tutorials


Allgemeiner Hinweis: Es empfiehlt sich, dieses Tutorial in einem Testforum auszuprobieren, um den laufenden Betrieb im Hauptforum nicht zu beinträchtigen. Erstellen Sie dazu einfach bei Bedarf ein neues Forum unter www.xobor.de
Hinweis




Plugin Hallo Welt - Daten Speichern und Lesen



Beschreibung


Bisher beschränkten wir uns beim "Hallo Welt" Plugin ausschließlich auf die Ausgabe einfacher Texte. Für die meisten Plugins benötigt man jedoch auch die Möglichkeit, Daten zu Speichern und später wieder anzuzeigen.
Das wird über die Daten-Variablen (data Vars) oder die globalen Variablen (global Vars) realisiert.

Für diese Beispiel legen wir eine je eine Variable beider Typen an und erläutern deren Funktion.


Allgemeines


Unterschied zwischen data Vars und global Vars
Beide Variablentypen können verwendet werden um beliebige Arten von Daten zu speichern und später wieder auszugeben. Allerdings ist eine Daten-Variable immer einem bestimmten Inhalt des Forums zugeordnet. So kann man z.B. Daten speichern, die immer einem bestimmten Beitrag oder Benutzerprofil zugeordnet werden. Die Werte dieser Variablen stehen immer dann zur Verfügung, wenn das betroffene Element (also z.B. der Beitrag, zu dem die Variable gehört) gerade angezeigt wird.

Globale Variablen dagegen gelten für das gesamte Plugin und stehen auf jeder Seite des Forums zur Verfügung. Sie können z.B. verwendet werden, um Benutzereinstellungen zu einem Plugin zu speichern.

Wir das Forumlar für die "Neue Globale Variable" oder das Formular für eine "Neue Data Variable" geöffnet, haben beide Type zunächst die gleichen Grundeinstellungen:

Name: Der Name der neuen Variable
Parsing: Welche Art von Code ist erlaubt? BBCode? HTML?
Type: Welche Werte können gespeichert werden?
Rechteeinstellungen: Diverse Rechteeinstellungen, wer die Variable wann genau beschreiben/erstellen oder ändern darf.


Für Variablen gilt natürlich der gleiche Grundsatz wie im Forum auch:
Man sollte NIE den Mitgliedern ermöglichen, HTML abzuspeichern welches dann später im Forum ausgegeben wird. HTML sollte daher nur in Ausnahmefällen und nur für auschließlich vom Admin nutzbare Variablen erlaubt werden.
Hinweis

Hinweis: Neben einigen Standardwerten (Alle, Administratoren/Moderatoren etc.) kann auch eine Konfigurationsvariable vom Typ "grouprights" für die Rechtevergabe verwendet werden.
Das wird im nächsten Abschnitt des Tutorials genauer beschrieben: Grouprights Variablen
Hinweis



Bei den Data-Variablen gibt es zusätzlich noch zwei weitere Felder:

origin type: Hier wird festgelegt, welchem Element im Forum die Datenvariable zugeordnet ist. Soll ein Plugin z.B. Daten zu einem Beitrag speichern, wird hier der Typ "forum_post" ausgewählt.
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.



Hallo Welt Beispiel - Globale Variable


Für dieses Tutorial wollen wir eine Variable anlegen die ausgibt wann zuletzt ein Administrator online war.


Plugin-Entwicklung --> Hallo Welt --> Neue globale Variable:

Feldname Wert
Name adminonline
Hidden-Var Nein (die Variable soll immer zur Verfügung stehen)
Parsing Plain Text (BBCode und HTML wird hier nicht benötigt)
Type Chars (es soll ja nur ein Datum gespeichert werden)
Lesen Alle (jeder darf den Wert lesen)
Schreiben Administrator (nur Admins dürfen den Wert ändern)


Globale Variable Beschreiben

Jedesmal, wenn ein Administrator die Seite lädt, wollen wir die die aktuelle Uhrzeit in der globalen Variablen speichern.
Dazu nutzen wir die Javascript-Methode setGlob



für die Speicherung ersetzen wir den Code des Plugin-Templates "Test oben" mit folgedem Code:

1
2
3
4
5
6
7
8
9
10
 

{{user_admin==true.start}}
<script>
var newval = Date.now(); //erzeugt einen aktuellen Timestamp
xobor.plugin("hallowelt").setGlob("adminonline",newval,function(res){
/*Wert gespeichert, keine Ausgabe nötig*/
});
</script>
{{user_admin==true.end}}
 
 



Jetzt wird jedesmal, wenn ein Admin die Seite aufruft. der aktuelle Timestamp in der Variable adminonline gespeichert. Für nicht-Admins können wir das dann auslesen und anzeigen.
Das geschieht mit der getGlob Methode des Pluginsystems.

Globale Variable Lesen und Anzeigen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 

{{user_admin==false.start}}
 
<div id="admininfo"><!--hier wird später der Wert der Variablen ausgegeben--></div>
 
<script>
 
lastonline = xobor.plugin('hallowelt').getGlob('adminonline');
 
if(lastonline){
timeFormat.displayFormat = 'd.m.Y H:i'; // gewünschtes format des datums
lastonline = timeFormat.format(lastonline); //hier erzuegen wir ein schön formatioertes Datum aus unserem Timestamp - details siehe spoiler unten..
console.log("last:" + lastonline);
$('#admininfo').html("Admin zuletzt online: " + lastonline); //hier wird der Wert in die Div mit der ID admininfo geschrieben
}else{/*Kein Admin war online, nichts ausgeben*/ console.log("nores");}
 

{{user_admin==false.end}}
 
 




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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 

{{user_admin==true.start}}
<script>
var newval = Date.now(); //erzeugt einen aktuellen Timestamp
xobor.plugin("hallowelt").setGlob("adminonline",newval,function(res){
/*Wert gespeichert, keine Ausgabe nötig*/
});
</script>
{{user_admin==true.end}}
 
{{user_admin==false.start}}
<div id="admininfo"></div>
 
<script>
 

/**
* man muss ja nicht jedesmal das Rad neu erfinden: Diese Funktion wurde über Google gefunden und formatiert unser Datum im gewünschten Format:
* Return a timestamp with the format "d/m/yy h:MM:ss TT"
* @type {Date}
*/

var timeFormat = {
/**
* Output format.
*
* d - current day
* m - current month
* Y - current Year
*
* H - current hour (24 hour system)
* i - current minute
* s - current second
*/
displayFormat: 'd.m.Y - H:i:s',

/**
* Format given unix-timestamp
*/
format: function(timestamp) {
var d = new Date(timestamp);
var output = this.displayFormat;

output = output.replace(/d/g, this.padZero(d.getDate()))
.replace(/m/g, this.padZero(d.getMonth()+1))
.replace(/Y/g, d.getFullYear())
.replace(/H/g, this.padZero(d.getHours()))
.replace(/i/g, this.padZero(d.getMinutes()))
.replace(/s/g, this.padZero(d.getSeconds()));

return output;

},

/**
* add zero paddings to numbers smaller than 10
*/
padZero: function(number) {
if (number < 10) {
return "0" + number.toString();
}

return number;
}
};
 

lastonline = xobor.plugin('hallowelt').getGlob('adminonline');
 
if(lastonline){
timeFormat.displayFormat = 'd.m.Y H:i'; // gewünschtes format des datums
lastonline = timeFormat.format(lastonline); //hier erzuegen wir ein schön formatioertes Datum aus unserem Timestamp..
console.log("last:" + lastonline);
$('#admininfo').html("Admin zuletzt online: " + lastonline); //hier wird der Wert in die Div mit der ID admininfo geschrieben
}else{/*Kein Admin war online, nichts ausgeben*/ console.log("nores");}

</script>
{{user_admin==false.end}}
 
 





screenshot
Abbildung 1: Anzeige der Online-Zeit unter dem Forum


Hallo Welt Beispiel - Daten Variable


Für dieses Beispiel möchten wir eine variable anlegen, in der gespeichert wird, wann ein Mitglied das letzte Mal sein eigenes Profil aufgerufen hat.
Dabei musss für jedes Mitgllied eine eigene Varaiballe gespeichert werden. Gelöst wird das über eine Datenvariable.


Plugin-Entwicklung --> Hallo Welt --> Neue Data Variable:

Feldname Wert
Name profileonline
Parsing Plain Text (BBCode und HTML wird hier nicht benötigt)
origin_type user_profile (hier legen wiir fest, dass die Variable einem Benutzerprofil zugeordnet wird.)
Type Chars (theoretisch reicht auch ein Int - es soll ja nur ein Timestamp gespeichert werden)
Lesen (alle Leserechte) Alle (jeder darf den Wert lesen)
Schreiben docreate_plugindefault,dochangeall_plugindefault : Administrator (nur der Admin darf immer alles ändern)docreatemyorigin_plugindefault,dochangemyorigin_plugindefault: Alle (Alle dürfen den Wert der Ihnen zugeordneten Variablen ändern)


Daten Variable Beschreiben

Jedesmal, wenn ein Mitglied sein Profil besucht, soll der aktuelle Timestamp gespeichert werden.
Dazu nutzen wir die Javascript-Methode setDataVar



Damit das klappt, müssen wir ein neue Plugin-Template anlegen, welches immer dann geladen wird, wenn ein Benutzerprofil aufgerufen wird.
Das bisher verwendete Element "Test Oben" wird nicht mehr benötigt und kann vorerst gelöscht werden.

Neues Element erstellen -> Plugin Element
Feldname Wert
Template Mitgliederprofil
Footer | Inline Header
Template Name frei wählbar, wir nennen das Element hier Profil Test


In dem neu erstellten Element könnnen wir nun den Code für die Speicherung der Data-Variablen einfügen:
Im Profil gibt es die Variablen
{{userid}} --> Id des Mitglieds, dessen Profil aufgerufen wird
{{user_id}} --> Id des Mitglieds, welches das Profil aufruft

Ist der Wert beider Variablen identisch, wissen wir, dass ein Mitglied gerade sein eigenes Profil aufruft.
In diesem Fall wollen wir den aktuellen Timestamp in der des Nutzerprofils Data-Variablen abspeichern:

1
2
3
4
5
6
7
8
9
10
11
12
 
{{userid=={user_id}.start}}
<script>
var newval = Date.now(); //erzeugt einen aktuellen Timestamp
var origin_type = 3 //siehe https://www.xobor.de/plugin-doc-api.html#Tipps_und_Tricks_Sonstiges_Target_Types
var user_id = {{userid}}; //id des Mitglieds, dem die Variable zugeordnet wird
 
//setdataVar-Aufruf:
xobor.plugin("hallowelt").setDataVar("profileonline",origin_type,user_id,newval,function(res){
/*Wert gespeichert, keine Ausgabe notwendig*/
});
</script>
{{userid=={user_id}.end}}
 



Ruft nun ein Mitglied sein eigenes Profil auf, wird die aktuelle Zeit in der Data-Variablen gespeichert.


Globale Variable Lesen und Anzeigen

Ruft jemand das Profil eines Mitglieds auf möchten wir anzeigen, wann dieses Mitglied zuletzt sein Profil gesehen hat.
Die Abfrage der Variablen geschieht mit der Methode getDataVar()




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 

 
<div id="visitinfo"><!--hier wird später der Wert der Variablen ausgegeben--></div>
 
<script>
//setdataVar-Aufruf:
xobor.plugin("hallowelt").getDataVar("profileonline",3,{{userid}},function(res){
timeFormat.displayFormat = 'd.m.Y H:i'; // gewünschtes format des datums
lastonline = timeFormat.format(res); //hier erzuegen wir ein schön formatiertes Datum aus unserem Timestamp - details siehe spoiler unten..
$('#visitinfo').html('Letzter Profilaufruf dieses Mitglieds: '+lastonline);
});
</script>
 

 
<script>
 
 




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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 

{{userid=={user_id}.start}}
<script>
var newval = Date.now(); //erzeugt einen aktuellen Timestamp
var origin_type = 3 //siehe https://www.xobor.de/plugin-doc-api.html#Tipps_und_Tricks_Sonstiges_Target_Types
var user_id = {{userid}}; //id des Mitglieds, dem die Variable zugeordnet wird
 
//setdataVar-Aufruf:
xobor.plugin("hallowelt").setDataVar("profileonline",origin_type,user_id,newval,function(res){
/*Wert gespeichert, keine Ausgabe notwendig*/
});
</script>
{{userid=={user_id}.end}}
 

 

<div id="visitinfo"><!--hier wird später der Wert der Variablen ausgegeben--></div>
 
<script>

/**
* man muss ja nicht jedesmal das Rad neu erfinden: Diese Funktion wurde über Google gefunden und formatiert unser Datum im gewünschten Format:
* Return a timestamp with the format "d/m/yy h:MM:ss TT"
* @type {Date}
*/

var timeFormat = {
/**
* Output format.
*
* d - current day
* m - current month
* Y - current Year
*
* H - current hour (24 hour system)
* i - current minute
* s - current second
*/
displayFormat: 'd.m.Y - H:i:s',

/**
* Format given unix-timestamp
*/
format: function(timestamp) {
var d = new Date(timestamp);
var output = this.displayFormat;

output = output.replace(/d/g, this.padZero(d.getDate()))
.replace(/m/g, this.padZero(d.getMonth()+1))
.replace(/Y/g, d.getFullYear())
.replace(/H/g, this.padZero(d.getHours()))
.replace(/i/g, this.padZero(d.getMinutes()))
.replace(/s/g, this.padZero(d.getSeconds()));

return output;

},

/**
* add zero paddings to numbers smaller than 10
*/
padZero: function(number) {
if (number < 10) {
return "0" + number.toString();
}

return number;
}
};
 


//getdataVar-Aufruf:
xobor.plugin("hallowelt").getDataVar("profileonline",3,{{userid}},function(res){
if(res){
timeFormat.displayFormat = 'd.m.Y H:i'; // gewünschtes format des datums
lastonline = timeFormat.format(res); //hier erzuegen wir ein schön formatiertes Datum aus unserem Timestamp - details siehe spoiler unten..
$('#visitinfo').html('Letzter Profilaufruf dieses Mitglieds: '+lastonline);
}else{$('#visitinfo').html('Dieses Mitglied hat sein Profil noch nicht aufgerufen');}
});
</script>
 

 





screenshot
Abbildung 2: Anzeige der Online-Zeit über dem Profil



Du willst es noch genauer wissen?
Weiter geht's im zweiten Teil des Tutorials: Gruppenrechte
Hinweis


Login
Activity Feed
Hallo Franz-Jupp,Ich habe einen dritten Textfall mit Zeilenumbruch nach jedem Bild-Einfügen und einmaligen Speichernam Schluss probiert, es hat leider nicht funktioniert.http://www.maetrix.net/t12919f2408-Fehle...n.html#msg98456Nur das Bild mit unverändertem Dateinamen wird im Beitrag korrekt eingef...
forum_message forum_message
River, TripleM und Mike48 haben 3 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Nach Installation der App (auf iPad) muss man die E-Mail-Adresse bestätigen, damit man Push-Nachrichten bekommt.Nach Klick auf den Link kommt aber diese Ansicht:[[File:image.png|none|auto]]Das stimmt aber (hoffentlich) nicht? Man möchte ja Push auf das Gerät, wo man die App installiert hat und keine...
forum_topic forum_topic
Mike48 hat das Thema E-Mail Newsletter Formular anpassen erstellt
Gibt es eine Möglichkeit das Formular des E-Mail Newsletter anzupassen. Es geht um den unteren Teil der automatisch eingefügt wird. Den würde ich gerne erweitern um den Benutzernamen. Es gibt immer wieder Mitglieder die sich nicht mehr einloggen können weil sie ihren Benutzernamen nicht mehr wissen....
rating rating
%usernames% hat sich bedankt!
rating rating
Sporty hat sich bedankt!
Beitrag: Bilderhoster Abload schließt auch...
%usernames% hat sich bedankt!
Zwischenspeicherung ist nicht nötig.Einfügen, Zeilenumbruch, einfügen, Zeilenumbruch, usw.Erst zum Schluss den Beitrag speichern.Jedenfalls hat das vor 'ner knappen Stunde in meinem Testforum so funktioniert.Sieht vor'm speichern ungefähr so aus[[File:Screenshot_20240517-160950_Chrome.jpg|none|auto]]
%usernames% hat sich bedankt!
Dateinamen von Bildern, Grafiken etc. mit Umlauten (Ä, Ö, Ü und ä, ü, ö sowie dem Buchstaben ß)führen zu merkwürdigen Anzeige-Ausfällen.Bei unseren historischen Bahnen kommen öfter Bilddateinamen wie Märklin-4711, Märklin-4712,Märklin-4713 etc. vor. Dies führt dazu, dass meist das erste Bild noch an...
forum_message forum_message
Ingmar und 3 weitere haben 5 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Zitat von Mike48 im Beitrag #91Ich habe im Forum das Update gestartet. Dann auf meinem iPhone die App neu installiert.Also ich musste unter Android nichts neu installieren. Eventuell hilft es, wenn du einmal in deiner App die Push-Nachrichten deaktivierst und dann wieder aktivierst.Zitat von Ludger ...
rating rating
Gabriella hat sich bedankt!
Beitrag: Activity Feed
%usernames% hat sich bedankt!
forum_message forum_message
Ingmar und 2 weitere haben 4 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Zitat von Mike48 im Beitrag #87Muss man nach dem Update die App neu installieren?Das sollte sich automatisch aktualisieren. Wenn ich das richtig sehe gibt es aber je nach Betriebssystem und Version Unterschiede, wie schnell das passiert.
rating rating
Mike48 hat sich bedankt!
Beitrag: Activity Feed
%usernames% hat sich bedankt!
forum_message forum_message
Mike48 und 2 weitere haben 6 neue Beiträge im Thema Activity Feed geschrieben.
Zitat von Gabriella im Beitrag #7Ja ebenso, musst Du denn dafür noch etwas anderes schreiben?Nein. Das habe ich schon so eingebaut dass der AF auch mobil wie beim PC gleich ist.
rating rating
%usernames% hat sich bedankt!
%usernames% hat sich bedankt!
%usernames% hat sich bedankt!
rating rating
Ingmar hat sich bedankt!
Beitrag: Neue User freischalten - nur wo und wie?
%usernames% hat sich bedankt!
rating rating
Ingmar hat sich bedankt!
Beitrag: Activity Feed
%usernames% hat sich bedankt!
forum_message forum_message
Gabriella hat einen neuen Beitrag im Thema Activity Feed geschrieben.
Hallo zusammen,wie es scheint, hat niemand eine Idee zu meinem Wunsch. Ich habe gerade nachgeschaut, scheint nicht möglich zu sein, den AF auch für Mitglieder nicht sichtbar zu machen. Oder ich finde nicht, wo das machbar wäre. Dann sehe ich das wohl richtig, dass nur eine Deaktivierung in Frage käme?
forum_message forum_message
Mike48 und 1 weitere haben 2 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Zitat von creator im Beitrag #83Andere Android-Smartphones nutzen entweder die integrierten Knöpfe im Gerät, eine ähnliche Leiste unten oder Wischgesten. Beim iPhone gibt es genauso Gesten.Dann wäre es ja eine gute Geste zu zeigen wie das auf einem iPhone geht statt zu spekulieren.Zitat von creator ...
forum_message forum_message
Mike48 und 1 weitere haben 4 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Zitat von l2otbart_57 im Beitrag #81Möglicherweise wird die Leiste nur auf "Verlangen" eingeblendet, indem man den unteren Bildschirmrand berührt und nach oben ziehtGeht nicht. Damit öffnet man die Liste der geöffneten Apps.
rating rating
AlEm und 1 weitere haben sich bedankt!
Beitrag: Neue User freischalten - nur wo und wie?
%usernames% haben sich bedankt!
rating rating
%usernames% haben sich bedankt!
forum_message forum_message
Mike48 hat einen neuen Beitrag im Thema Neue User freischalten - nur wo und wie? geschrieben.
Zitat von AlEm im Beitrag #1Da steht nun 3 Mitglieder warten auf ihre Freischaltung. Jetzt Speichern - wenn ich auf Jetzt Speichern gehe, gelange ich zum Adminstrationsmenü.Wenn du im Admin auf der Home-Seite bist, dann musst du, so weit ich weiß, ganz nach unten scrollen. Da solltest du die Liste f...
rating rating
Tricky-Scholli hat sich bedankt!
Beitrag: Keine HTTPS-Verschlüsselung
%usernames% hat sich bedankt!
rating rating
%usernames% haben sich bedankt!
forum_message forum_message
Hallo River, danke, diese Funktion kannte ich tatsächlich noch nicht.Gut zu wissen, mit der Revision-Funktion können wir die alten Texte finden und wieder herstellen.Allein dafür lohnt sich dieses Thema
forum_topic forum_topic
AlEm hat das Thema Neue User freischalten - nur wo und wie? erstellt
Ich habe die kostenlose Version. Ich hatte an sich eingestellt, dass ich neue Mitglieder manuell freischalten muss. Und hab dann Einladungen versendet.Mir werden nun 3 neue User angezeigt (eine bin ich mit einem zweiten Browser)Da steht nun 3 Mitglieder warten auf ihre Freischaltung. Jetzt Speichern...
%usernames% hat sich bedankt!
%usernames% hat sich bedankt!
rating rating
%usernames% hat sich bedankt!
forum_message forum_message
Mike48 und 1 weitere haben 4 neue Beiträge im Thema Xobor APP bald für jedes Forum - Jetzt die APP hier Beta testen geschrieben.
Zitat von Mike48 im Beitrag #77Auf Android bekomme ich nicht mein Logo auf den Home-Bildschirm sonder nur einen Button mit dem ersten Buchstaben des Forum. Android 8.1.0Das hat sich erledigt nachdem ich auf dem alten Motorola Handy Updates der APPs gemacht habe. Wahrscheinlich nach dem Chrome auf de...
rating rating
%usernames% hat sich bedankt!
%usernames% hat sich bedankt!
Also bei uns ist ein ähnliches Problem. Es gehen zwar keine Text Zeilen verloren aber wenn man das Bild löscht, das gleichnamige wieder einfügt, dann wird plötzlich ein anderes Bild was gar nicht so heisst, als das neue angezeigt und an der Stelle an der es sein sollte, ist nur Code in der Vorschau....
rsummary rsummary
Sporty hat 2 Beiträge bewertet (Details)
%usernames% hat sich bedankt!
rsummary rsummary
Dieter Weißbach und 1 weitere haben 2 Beiträge bewertet (Details)
%usernames% hat sich bedankt!
rsummary rsummary
Mike48 und 2 weitere haben 5 Beiträge bewertet (Details)
%usernames% hat sich bedankt!
rsummary rsummary
AlEm und 2 weitere haben 2 Beiträge bewertet (Details)
%usernames% haben sich bedankt!
rsummary rsummary
Tricky-Scholli und 3 weitere haben 2 Beiträge bewertet (Details)
%usernames% haben sich bedankt!
rsummary rsummary
River und 1 weitere haben 3 Beiträge bewertet (Details)
%usernames% hat sich bedankt!
rsummary rsummary
Sporty und 1 weitere haben 2 Beiträge bewertet (Details)
%usernames% hat sich bedankt!
Wer ist Online?
2 Mitglieder und 13 Gäste sind Online
Besucher Statistiken
15 Aktive User
2 Mitglieder und 13 Gäste sind Online:
Ingmar, Johannes


Besucherrekord
1274 Benutzer gleichzeitig online (11.10.2019 18:19)

Besucherzähler
Heute waren 460 Gäste und 21 Mitglieder, gestern 2625 Gäste und 34 Mitglieder online.

Statistiken
Themen 41421
Beiträge 302491
Mitglieder 12.395
Forum empfehlen