Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.
Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
#1 Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Hi ihr,
inzwischen hab ich mich in die Plugins recht gut eingefuchst, hauptsächlich jedoch nur für die Profile. Nun wage ich mich an ein Plugin für Triggerwarnungen heran, die die Spieler an ihre Posts hinzufügen können, wenn sie sensible Themen besprechen. Dabei soll die Triggerwarnung jeweils nur bei dem dazugehörigen Post angezeigt werden und nicht bei jedem. Meines Wissens nach muss dafür die ID von dem Post genutzt werden, doch ich bin mir nicht sicher, ob ich die richtig aufrufe.
Mein aktuelles Problem ist jedoch wie ich eine Data Variable dort speichern kann.
Gerade nutze ich folgenden Code, doch es funktioniert nicht, weswegen ich nachfragen wollte, wo der Fehler liegt:
Um in "Neuen Beitrag schreiben" die Variable zu speichern
xobor.plugin('triggerwarnungen').setDataVar('triggerwarnungnewpost_text_datav', 2, {{post:id}}, function(res) { });
Um in "Thread Flat" den Wert aufzurufen:
xobor.plugin('triggerwarnungen').getDataVar('triggerwarnungnewpost_text_datav', 2, {{message:id}}, function(res) { });
Die Data Variable ist dabei vom Type "text", vom origin-type "21" (mit origin-type "2" funktioniert es auch nicht), usperseperated 0", dataseparated "0" und bei den rights können gerade noch alle zugreifen, da ich ausschließen wollte, dass es nicht daran liegt.
Womöglich liegt es auch an der Data Variable, wenn ich sie falsch angesetzt habe.
Ich würde mich sehr freuen, wenn mir da jemand weiterhelfen kann. Und schon mal Dankeschön für eure Mühen :)
LG Grace
#2 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
{{post:id}} und {{message:id}} ist nicht das gleiche.
Die post-id ist im Theme fortlaufend in den Beiträgen.
message-id ist eine einmalige id des Beitrags
Um die Werte einem Beitrag zuzuordnen muss man die message-id verwenden.
Wo wird die Triggerwarnung erstellt?
Die Frage ist, wie kommt man beim erstellen der Triggerwarnung an die id des Beitrages.
Ob gespeichert wird kann man mit folgenedem Code in der Console verfolgen.
res ist entweder true oder false.
2
3
xobor.plugin('triggerwarnungen').setDataVar('triggerwarnungnewpost_text_datav', 2, {{post:id}}, function(res) {
console.log("dataVar triggerwarnungnewpost_text_datav speichern -> res: "+res)
});
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#3 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Hi @Mike48
Zuerst danke für deine schnelle Rückmeldung. Tatsächlich wird mir nun durch paar Änderungen im Code angezeigt, dass der Wert gespeichert wurde. Allerdings kann ich ihn scheinbar nicht in "Thread Flat" nicht aufrufen. Die Konsole gibt mir bei jedem Post "Keine Triggerwarnung gefunden." aus, obwohl ich welche zuvor gespeichert habe.
Das wäre der aktuelle Code für "Neuen Beitrag speichern:
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
<div style="margin: 0 0 10px 15px; padding: 10px; background-color: {{global_profile_left}}; border: 2px solid {{global_input_border}}; border-radius: 10px; height: auto; width: 1145px; display: grid; place-items: center;">
<span style="text-transform: uppercase; font-size: 25px; font-family: 'Pirates of Cydonia'; color: {{global_h2_color}}; text-align: center;">Triggerwarnungen</span>
<select id="TriggerwarnungDropdown" style="width: 24.5%; padding: 5px; border-radius: 5px; border: 1px solid {{global_input_border}}; margin-bottom: 10px; background-color: {{global_input_bg}};">
<option value="" disabled selected>Wähle ein Thema</option>
<option value="violence-abuse">Gewalt und Missbrauch</option>
<option value="mental-health-trauma">Psychische Gesundheit und Trauma</option>
<option value="death-loss">Tod und Verlust</option>
<option value="discrimination-hate">Diskriminierung und Hass</option>
<option value="substance-abuse">Substanzmissbrauch</option>
<option value="self-harm">Selbstverletzendes Verhalten</option>
<option value="sexuality-nudity">Sexualität und Nacktheit</option>
<option value="medical-physical">Medizinische und körperliche Themen</option>
<option value="loss-freedom">Verlust von Freiheit</option>
<option value="other">Sonstiges/Anderes</option>
</select>
<!-- Dynamisches zweites Dropdown-Menü -->
<select id="SubTriggerwarnungDropdown" style="width: 24.5%; padding: 5px; border-radius: 5px; border: 1px solid {{global_input_border}}; margin-bottom: 10px; background-color: {{global_input_bg}}; display: none;">
</select>
<!-- Textfeld, das angezeigt wird, wenn "Sonstiges/Anderes" ausgewählt ist -->
<input type="text" id="OtherTextInput" placeholder="Bitte spezifizieren Sie..." style="width: 24.5%; padding: 5px; border-radius: 5px; border: 1px solid {{global_input_border}}; margin-bottom: 10px; background-color: {{global_input_bg}}; display: none;">
<div style="text-align: center;">
<button id="SafeButtonTrigger">Triggerwarnung hinzufügen</button>
</div>
<div id="LoadedTriggerwarnungen" style="text-align: center; background-color: {{global_profile_left}}; border: 2px dotted {{global_input_border}}; border-radius: 10px; padding: 10px; width: 1125px; min-height: 40px; margin-bottom: 10px; margin-top: 10px; position: relative;">
<span style="text-transform: uppercase; font-size: 25px; font-family: 'Pirates of Cydonia'; color: {{global_h2_color}}; text-align: center;">Gespeicherte Triggerwarnungen</span>
<div id="TriggerwarnungenList"></div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
let Triggerwarnungen = {
TriggerwarnungenArray: []
};
const triggerTextMapping = {
"violence-abuse": "Gewalt und Missbrauch",
"mental-health-trauma": "Psychische Gesundheit und Trauma",
"death-loss": "Tod und Verlust",
"discrimination-hate": "Diskriminierung und Hass",
"substance-abuse": "Substanzmissbrauch",
"self-harm": "Selbstverletzendes Verhalten",
"sexuality-nudity": "Sexualität und Nacktheit",
"medical-physical": "Medizinische und körperliche Themen",
"loss-freedom": "Verlust von Freiheit",
"other": "Sonstiges/Anderes"
};
function loadTriggerwarnungen(callback) {
xobor.plugin('triggerwarnungen').getDataVar('triggerwarnungnewpost_text_datav', 2, '{{post:id}}', function(res) {
if (res && res.TriggerwarnungenArray) {
Triggerwarnungen.TriggerwarnungenArray = res.TriggerwarnungenArray;
displayTriggerwarnungen();
}
callback();
});
}
function displayTriggerwarnungen() {
const listElement = document.getElementById("TriggerwarnungenList");
listElement.innerHTML = ""; // Liste zurücksetzen
// Für jede Triggerwarnung einen div-Eintrag erstellen
Triggerwarnungen.TriggerwarnungenArray.forEach((trigger) => {
const mainTriggerText = triggerTextMapping[trigger.MainTrigger] || trigger.MainTrigger; // Text aus Mapping
const subTriggerText = trigger.SubTrigger === "Keine spezifische Unterkategorie ausgewählt"
? trigger.SubTrigger
: trigger.SubTrigger || "Keine Unterkategorie";
const triggerDiv = document.createElement("div");
triggerDiv.textContent = `Thema: ${mainTriggerText}, Unterkategorie: ${subTriggerText}`;
triggerDiv.style.marginBottom = "10px";
listElement.appendChild(triggerDiv);
});
}
const subOptions = {
"violence-abuse": ["Körperliche Gewalt", "Psychischer Missbrauch", "Mobbing"],
"mental-health-trauma": ["Depression", "Angststörungen", "PTBS"],
"death-loss": ["Trauer", "Verlust eines geliebten Menschen"],
"discrimination-hate": ["Rassismus", "Sexismus", "Homophobie"],
"substance-abuse": ["Alkoholmissbrauch", "Drogenmissbrauch", "Rauchen"],
"self-harm": ["Selbstverletzendes Verhalten", "Suizidgedanken"],
"sexuality-nudity": ["Sexuelle Inhalte", "Nacktheit", "Sexuelle Orientierung"],
"medical-physical": ["Krankheiten", "Operationen", "Unfälle"],
"loss-freedom": ["Gefängnis", "Einschränkungen", "Isolation"],
"other": []
};
const mainDropdown = document.getElementById("TriggerwarnungDropdown");
const subDropdown = document.getElementById("SubTriggerwarnungDropdown");
const otherTextInput = document.getElementById("OtherTextInput");
mainDropdown.addEventListener("change", function(event) {
const mainTriggerValue = event.target.value;
if (mainTriggerValue === "other") {
subDropdown.style.display = "none";
otherTextInput.style.display = "block";
} else {
otherTextInput.style.display = "none";
subDropdown.style.display = "block";
subDropdown.innerHTML = "";
if (subOptions[mainTriggerValue]) {
subOptions[mainTriggerValue].forEach(function(option) {
const opt = document.createElement("option");
opt.value = option;
opt.textContent = option;
subDropdown.appendChild(opt);
});
} else {
subDropdown.style.display = "none";
}
}
});
document.getElementById("SafeButtonTrigger").addEventListener("click", function(event) {
event.preventDefault();
const mainTriggerValue = mainDropdown.value.trim();
const subTriggerValue = subDropdown.style.display === "block" ? subDropdown.value : null;
const otherTriggerValue = otherTextInput.style.display === "block" ? otherTextInput.value.trim() : null;
if (!mainTriggerValue) {
console.log("Bitte wähle eine gültige Triggerwarnung aus.");
return;
}
let combinedString = {
MainTrigger: mainTriggerValue,
SubTrigger: subTriggerValue || otherTriggerValue || "Keine spezifische Unterkategorie ausgewählt"
};
Triggerwarnungen.TriggerwarnungenArray.push(combinedString);
console.log("Aktualisiertes Triggerwarnungen-Array:", Triggerwarnungen.TriggerwarnungenArray);
xobor.plugin('triggerwarnungen').setDataVar('triggerwarnungnewpost_text_datav', 2, '{{post:id}}', Triggerwarnungen, function(res) {
console.log("Triggerwarnungen erfolgreich aktualisiert");
mainDropdown.value = "";
subDropdown.style.display = "none";
otherTextInput.style.display = "none";
subDropdown.innerHTML = "";
otherTextInput.value = "";
displayTriggerwarnungen();
});
});
loadTriggerwarnungen(() => displayTriggerwarnungen());
});
</script>
<style>
#SafeButtonTrigger {
background-color: {{global_input_bg}};
border: none;
color: {{global_input_border}};
padding: 8px 16px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
cursor: pointer;
border-radius: 5px;
transition: background-color 0.3s ease;
width: 100%;
}
#SafeButtonTrigger:hover {
background-color: {{global_button_bg_hover}};
}
</style>
Und das der für "Thread Flat"
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
<div style="margin: 0 0 10px 15px; background-color: #b0a499; border: 2px solid #896464; border-radius: 10px; height: auto; width: 1165px; display: grid; place-items: center;">
<span style="text-transform: uppercase; font-size: 25px; font-family: 'Pirates of Cydonia'; color: {{global_input_bg}}; text-align: center;">Triggerwarnungen</span>
<div id="TriggerwarnungenList"></div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Funktion zum Laden der Triggerwarnungen
function loadTriggerwarnungen() {
xobor.plugin('triggerwarnungen').getDataVar('triggerwarnungnewpost_text_datav', 2, '{{post:id}}', function(res) {
if (res && res.TriggerwarnungenArray) {
displayTriggerwarnungen(res.TriggerwarnungenArray);
} else {
console.log("Keine Triggerwarnungen gefunden.");
}
});
}
// Funktion zum Anzeigen der Triggerwarnungen in der Liste
function displayTriggerwarnungen(triggerwarnungenArray) {
const listElement = document.getElementById("TriggerwarnungenList");
listElement.innerHTML = ""; // Liste zurücksetzen
// Für jede Triggerwarnung einen div-Eintrag erstellen
triggerwarnungenArray.forEach((trigger) => {
const triggerDiv = document.createElement("div");
triggerDiv.textContent = `Thema: ${trigger.MainTrigger}, Unterkategorie: ${trigger.SubTrigger || "Keine Unterkategorie"}`;
triggerDiv.style.marginBottom = "10px"; // Abstand zwischen den Einträgen
listElement.appendChild(triggerDiv);
});
}
// Triggerwarnungen laden, wenn die Seite geladen ist
loadTriggerwarnungen();
});
</script>
Wenn ich bei "Neuen Beitrag schreiben" auf "Vorschau" klicke, dann ist der Inhalt der Data Variable auch wieder weg. Kann es daran liegen, dass die Variable doch nicht korrekt gespeichert wird? Ich wüsste nur nicht, wie man das einerseits prüfen kann, andererseits wie man das korrigieren kann. Kannst du mir da weiterhelfen?
Vielen Dank und Grüße,
Grace
#4 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Dein Problem wird sein, dass du beim schreiben eines Beitrages die message-id für den Beitrag noch nicht kennst. Die id bekommst du erst wenn der Beitrag gespeichert ist.
Die Post-id kannst du nicht verwenden. Die ist temporär den Beiträgen bei der Ausgabe zugeordnet.
Das Problem wäre am einfachsten zu lösen wenn die Action-Elemente entlich mal wieder funktionieren würden.
Ich hatt mir schon mal geholfen indem ich beim speichern des Beitrages im sessionstore was abgelegt habe und dann nach dem speichern den sessionstore abgefragt habe ob es einen neuen Beitrag gab und dann die message-id verwendet habe und dann die dataVar mit der richtigen id in den Beitrag gespeichert habe.
Wie ich genau gemacht müsste ich erst mal mühsam suchen und testen ob das überhaupt funktioniert hatte.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#5 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Also wäre es sinnvoller, wenn man in "Thread Flat" einen Button anlegt, wodurch man einem bestehenden Post direkt in "Thread Flat" eine Triggerwarnung hinzufügt, da man dann die "message:id" auf jeden Fall kennt. So braucht man keine Abfragen bezüglich des Sessionstore, sondern hat die ID direkt.
Danke dir für die Infos! Dann hab ich nun einen Weg, wie ich es umsetzen kann
#6 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Ok, der Plan geht gerade nicht wirklich auf. Aus irgendeinem Grund wird mein Button gerade einfach nicht aktiviert bzw die zusammenhängende Funktion. Ich hab den Button nun in ein div umgewandelt, aber es passiert weiterhin nichts. In der Konsole wird auch nichts ausgegeben, weswegen ich gerade nicht weiterkomme, da ich einfach nicht weiß, woran das liegen könnte.
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
<div style="margin: 0 0 10px 15px; background-color: #b0a499; border: 2px solid #896464; border-radius: 10px; padding: 10px; height: auto; width: 1145px; display: grid; place-items: center;">
<span style="text-transform: uppercase; font-size: 25px; font-family: 'Pirates of Cydonia'; color: {{global_h2_color}}; text-align: center;">Triggerwarnungen</span>
<select id="TriggerwarnungDropdown" style="width: 80%; padding: 5px; border-radius: 5px; border: 1px solid #896464; margin-bottom: 10px; background-color: #f2f2f2;">
<option value="" disabled selected>Wähle eine Überkategorie</option>
<option value="violence-abuse">Gewalt und Missbrauch</option>
<option value="mental-health-trauma">Psychische Gesundheit und Trauma</option>
<option value="death-loss">Tod und Verlust</option>
<option value="discrimination-hate">Diskriminierung und Hass</option>
<option value="substance-abuse">Substanzmissbrauch</option>
<option value="self-harm">Selbstverletzendes Verhalten</option>
<option value="sexuality-nudity">Sexualität und Nacktheit</option>
<option value="medical-physical">Medizinische und körperliche Themen</option>
<option value="loss-freedom">Verlust von Freiheit</option>
<option value="other">Sonstiges/Anderes</option>
</select>
<div style="text-align: center;">
<div id="SafeButtonTrigger" style="background-color: #896464; border: none; color: white; padding: 8px 16px; text-align: center; text-decoration: none; font-size: 16px; cursor: pointer; border-radius: 5px;">
Triggerwarnung speichern
</div>
<div id="MessageButton" style="background-color: #4CAF50; border: none; color: white; padding: 8px 16px; text-align: center; text-decoration: none; font-size: 16px; cursor: pointer; border-radius: 5px; margin-top: 10px;">
Button drücken
</div>
</div>
{{message:id}}
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
console.log("DOM ist geladen"); // Überprüfen, ob das Script läuft
document.getElementById("SafeButtonTrigger").addEventListener("click", function(event) {
event.preventDefault(); // Verhindert die Standardaktion des Buttons
// Den Wert des Dropdowns erfassen
const mainTriggerValue = document.getElementById("TriggerwarnungDropdown").value;
console.log("Triggerwarnung speichern geklickt"); // Konsolenausgabe hinzufügen
if (mainTriggerValue) {
// Speichern des Wertes in der Datenvariable
xobor.plugin('triggerwarnungen').setDataVar('triggerwarnung_text_datavar', 2, {{message:id}}, function(res) {
console.log("dataVar triggerwarnungnewpost_text_datav speichern -> res: " + res);
});
} else {
console.log("Bitte wähle eine Triggerwarnung aus.");
}
});
document.getElementById("MessageButton").addEventListener("click", function(event) {
event.preventDefault(); // Verhindert die Standardaktion des Buttons
alert("Der Button wurde gedrückt!"); // Meldung ausgeben
console.log("MessageButton wurde geklickt"); // Konsolenausgabe hinzufügen
});
});
</script>
Kann mir da jemand weiterhelfen? Liegt es an Thread Flat, dass das Template da irgendetwas bei den Buttons überschreibt, sodass sie nicht aktiviert werden können oder überseh ich gerade einen anderen Fehler?
LG Grace
#7 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Welches Template und welche Position in Thread-Flat?
Welches Forum? Kann man sich das ansehen?
Edit:
Du hast bestimmt nicht die Var {{message:id}} beim Klick auf deinen Button zur Verfügung.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#8 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
@TWD_Grace
Ist das Konstrukt in jedem Beitrag oder nur einmal im Thema?
Wenn das in allen Beiträgen ist dann kann das nicht funktionieren weil die ids TriggerwarnungDropdown, SafeButtonTrigger, MessageButton nur einmal auf eine Seite vorkommen dürfen. In dem Fall musst du mit class oder name arbeiten.
Eine id ist etwas einmaliges auf einer HTML Seite.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#9 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Hi Mike
ich hab in "Thread Flat" einen eigenen Tick eingebaut, der unter dem Titel erscheint, sodass die Triggerwarnung am Ende gut sichtbar ist. Wir benutzen dabei das Gaia Template v3.
Das "message:id" wird mir da auch scheinbar korrekt ausgegeben, da es in jedem Untertitel vom Post eine andere Zahl hat. (siehe die angehängten Bilder)
Ja, die Triggerwarnung soll dabei bei jedem Post erscheinen, sodass man pro Post individuell eine Triggerwarnung einfügen kann, wenn der Inhalt da mögliche Trigger hat. Wenn der andere Post keinen Trigger hat, dann wird da keine Triggerwarnung erscheinen.
Ich hab es gerade auch getestet. Wenn man im ersten Post den Button drückt, dann funktioniert es sogar. Wie genau muss ich es denn ändern, dass es bei jedem Post einzeln greift?
Das Forum ist privat und gehört einem Mitadmin von mir, weswegen das leider nicht einsehbar ist :/
Aufgrund eingeschränkter Benutzerrechte werden nur die Namen und (falls vorhanden) Vorschau-Grafiken der Dateianhänge angezeigt Jetzt anmelden!
#10 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
Erweitere deine IDs um die {{message:id}}
TriggerwarnungDropdown_{{message:id}}
SafeButtonTrigger_{{message:id}}
MessageButton_{{message:id}}
Dann sind sie eindeutig und du kannst sie im script auch gezielt ansprechen.
www.friends-of-xobor.de (621181 - Template kann wechsel bei Pluin Tests)
www.seniorenclub-sel-koeln.de (578865 - V6 Template)
#11 RE: Speichern und laden von Data Variablen in "Neuen Beitrag schreiben" & "Thread Flat"
- Informationen
- Aktuelle News
- Forum Tutorials - Tipps und Anleitungen
- SEO / Werbung fürs Forum
- Verwaltung
- Extras
- Design
- Plugin(system)
- Eure Fragen zu Tutorials
- Forum Support
- Fragen und Antworten
- Pluginsystem
- Plugins
- Templates & Sprachen
- Bugreport
- Verbesserungsvorschläge
- Sponsoren gesucht
- Das neue Xobor Business-Template
- News und Updates
- Bugreport
- Allgemeines Feedback
- Verbesserungsvorschläge
- Sonstiges
- Kaffeeklatsch
- Lob & Kritik
- Verbesserungsvorschläge
- Allgemeine Fragen
- Fehlermeldungen
- Verbesserungsvorschläge Responsive Design
- Bugreport Responsive Design
- Archiv - Alter Betatest
- Responsive Design - Verbesserungsvorschläge
- Responsive Design - Bugreport
- Fragen zum neuen Template
- Neue Administration Beta Test
- Bugreport Neue Administration
- Allgemeines Fragen & Feedback
- Verbesserungsvorschläge zur neuen Administration
- Shoutbox
Ähnliche Themen
Jetzt anmelden!
Jetzt registrieren!
© 2017 Xobor | Forum-Software