Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 248
Seite < 1 2 [3] 4 5 6 ... 11 12 13 >
chappert


Wannabe poster




Beiträge: 38
# Antwort: 50 - 26.12.2009 um 11:30 Uhr
ne kleine anleitung zum einbinden wäre klasse...


Inaktiv
|
TeQu!La ClanSphere Team


Specialist




Herkunft: Grevenbroich
Beiträge: 2142
# Antwort: 51 - 26.12.2009 um 14:11 Uhr
ts_config.php << musst du mit dem EDITOR öffnen und anpassen (die IP von deinem TS3 Server einfügen)
Dann kannste das ganze zb per IFRAME über eine Statische Seite einbinden.

http://www.DEINEURL.de/ts3/ts3view.php << die adresse gibste im IFRAME an. Dadurch wird der VIEWER angezeigt

Zum Thema IFRAME:
- Selfhtml
- Wikipedia
- google


------------------

ClanSphere - professional clan care starts here


Inaktiv
|
chappert


Wannabe poster




Beiträge: 38
# Antwort: 52 - 26.12.2009 um 17:44 Uhr
hab das alles so gemacht aber ich bekomme nur fehler...

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 55

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 55

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 60

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 60

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 107

Warning: Call-time pass-by-reference has been deprecated in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 107
85.214.140.242:9987

Warning: Invalid argument supplied for foreach() in /mnt/web7/43/45/51594245/htdocs/TFS/mods/ts3/ts_operation.php on line 19


hier der Link dazu: http://www.too-fresh.de/index.php?mod=static&action=view&id=12


Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 53 - 26.12.2009 um 18:37 Uhr
das macht nix, du benutzt sicherlich php5.3
Es wird nur darauf hingewiesen, dass in der neuen version diese methode nicht mehr genutzt werden sollte.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
ColdAeon


Rock the board




Beiträge: 43
# Antwort: 54 - 26.12.2009 um 18:59 Uhr
Ansonsten ausm Stehgreif immer wieder gern von mir benutzt, die Error-Lines auskommentieren und sehen was dann angezeigt wird. ^^


------------------
Revolving eSports +-

Mein Projekt: Revolving eSports
[clip=Clansphere Version]
Clansphere: 2009.0 RC3

Eigene Module +-

Points Modul: Preview

Was willst Du mir eigentlich erzählen? +-

Du weißt was es heißt für ne' Frau zu kämpfen? Du weißt Scheiße man!

Ich erzähl' Dir mal ne Geschichte...
...da war dieser Typ, Klempner, kannst Du dir das vorstellen?
Der Typ war glücklich, verstehste?
Der hatte nen' Job, ne' Alte und ne ordentliche Wampe, einfach kein Stress.

Aber dann ist da noch dieses Arschloch von Affe.
Fett, faul, ständig am saufen, vollkommen durch.
Der wollte die Frau des Klempner's für sich, einfach so.
Hat sie sich geschnappt mit seinen fetten Pranken, weg!
Als wenn er irgendwie King Kong wär' oder was?!

Jeder anderer Kerl hätte da schon drauf' geschissen!
Verdammt, ich hätte sowas von drauf' geschissen!
Das war ein fetter Gorilla man, aber dieser Typ hat nicht eine Sekunde gezögert.
Ist sofort los gerannt!

Alle anderen? Keine Ahnung!
Aber das...
...das war Sie, verstehste?
Die eine...
...und der Affe, der konnte es erst gar nicht glauben das der Typ tatsächlich hinter ihm her ist!
Was der Affe auch immer gemacht hat, es war total für'n Arsch...
...und am Ende, da hat er den Sack tatsächlich erwischt!
Manchmal, da gibt es diese eine Frau für die Du einfach alles machst...
...sogar mit fetten Gorilla's kämpfen!

Das ist Liebe verstehste? Wahre Liebe ist das man!


Inaktiv
|
Sworn


Beginner




Beiträge: 10
# Antwort: 55 - 27.12.2009 um 11:35 Uhr
Macht wirklich noch keine Sinn ein Modul zu basteln. Es wird serverseitig noch zu viel geändert.
Nutze im Moment auch den schlichten Viewer von Laire aus'm TS-Forum. Habs bei uns in'ner Box gepackt - Beispiel. Erfüllt erstmal seinen Zweck.

@ chappert
Stelle mal die ganzen Zustatzinfos im Script auf 0(disabled). Hatte diese Fehler auch.


Zuletzt editiert von Sworn am 27.12.2009 um 11:37 Uhr (1x Editiert)
Inaktiv
|
wasgeht


Poststar





Beiträge: 648
# Antwort: 56 - 27.12.2009 um 23:25 Uhr
evtl. ist dass ja was für die coder hier unter euch

quasi als anregung :=)
http://forum.teamspeak.com/showthread.php?t=48344

wäre doch toll sowas in die server einbauen zu können


------------------
..............................................Club-HP unter www.zocker-gemeinde.com.................................


Inaktiv
|
Bruchpilot


Rock the board




Beiträge: 58
# Antwort: 57 - 28.12.2009 um 16:49 Uhr
hey ihr, ich denke auch, dass es noch zu früh ist ein ts3 modul für clansphere zu basteln.
ich habe erstmal den tsviewer von http://www.tsviewer.com/ als statische seite eingebunden. völlig ausreichend.

Preview

gruß
volker


------------------


Inaktiv
|
BigBoss85
Thread-Ersteller


King for a day




Beiträge: 389
# Antwort: 58 - 28.12.2009 um 19:04 Uhr
26.12.2009 um 11:11 Uhr - TeQu!La:
Das ist kein Problem, hier ein 0815 Viewer welchen ihr über ne Statische Seite einbauen könnt

Preview: KLICK


hab mal solang es kein modul gibt den viewer hier probieren wollen aber bekomme immer folgenden fehler:

Warning: Invalid argument supplied for foreach() in /home/www/kunden/bigboss85.de/ts3/ts_operation.php on line 19

was mach ich falsch?


Inaktiv
|
beastmaster


Wannabe poster




Beiträge: 29
# Antwort: 59 - 30.12.2009 um 03:18 Uhr
den selben fehler hab ich auch mit der line 19 foreach() wird wohl nicht unterstützt vom hoster...

was kann mann tuen

do while ..!!??


Zuletzt editiert von beastmaster am 30.12.2009 um 03:19 Uhr (1x Editiert)
Inaktiv
|
Fr33z3m4n ClanSphere Team


Medal of Honor




Herkunft: Hamm
Beiträge: 11094
# Antwort: 60 - 30.12.2009 um 08:53 Uhr
öhm, hat nix mit dem Hoster zu tun, foreach ist eine Methode von PHP.
Foreach bekommt nur falsche Werte und kann damit nichts anfangen, ich kenn den Code nicht ,daher kann ich atm dazu nix sagen.


------------------
mfg
Patrick "Fr33z3m4n" Jaskulski

Antoine de Saint-Exupéry: Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Aufgaben zu verteilen, sondern lehre die Männer die Sehnsucht nach dem endlosen weiten Meer.

Inaktiv
|
BigBoss85
Thread-Ersteller


King for a day




Beiträge: 389
# Antwort: 61 - 30.12.2009 um 11:29 Uhr
@Fr33z3m4n lad dir doch die paar Zeilen mal runter^^ oder ich poste Sie einfach hier XD

mehr... +-
<?php

include 'ts_config.php';

function rep($var){
$search[] = chr(194);
$replace[] = '';
$search[] = '\/';
$replace[] = '/';
$search[] = '\s';
$replace[] = ' ';
$search[] = '\p';
$replace[] = '|';

return str_replace($search, $replace, $var);
}

function tree($id,$platzhalter,$info){
foreach ($info['channel'] as $key => $var) {
if($var['pid'] == $id){
echo '<table><tr>'.$platzhalter.'<td><img src="tsimages/channel.png" alt="channel" /></td><td>'.rep($var['name']).'</td>< /tr></table>';
if(isset($info['user'])){
foreach($info['user'] as $u_key => $u_var){
if($u_var['channel'] == $var['id']){
$p_img = 'player.png';
if($u_var['mic'] == '1'){
$p_img = 'mic.png';
}
if($u_var['head'] == '1'){
$p_img = 'head.png';
}
if($u_var['away'] == '1'){
$p_img = 'away.png';
}
$g_img = '';
foreach($u_var['sg'] as $sg_key => $sg_var){
if(isset($info['sgroup'][$sg_var]['n'])){
$g_img .= '<td><img src="tsimages/'.$info['sgroup'][$sg_var]['p'].' " alt="'.$info['sgroup'][$sg_var]['n'].'" /></td>';
}
}
if(isset($info['cgroup'][$u_var['cg']]['n'])){
$g_img .= '<td><img src="tsimages/'.$info['cgroup'][$u_var['cg']][' p'].'" alt="'.$info['cgroup'][$u_var['cg']]['n' ].'" /></td>';
}
echo '<table><tr>'.$platzhalter.'<td width="16px"></td><td><img src="tsimages/'.$p_img.'" alt="Player" /></td><td>'.rep($u_var['name']).'</td> '.$g_img.'</tr></table>';
}
}
}
tree($var['id'],$platzhalter.'<td width="16px"></td>',$info);
}

}
}


@$connection = fsockopen ($ip, $t_port, &$errno, &$errstr, 1);
if(!$connection){
$serverinfo = 'Server offline';
}else{

$connection = fsockopen ($ip, $t_port, &$errno, &$errstr, 1);
$temp = '';
$cmd = "use sid=".$sid." \nserverinfo \nchannellist \nclientlist \nquit\n";
$execute = fputs($connection,$cmd, strlen($cmd));
while($channeldata = fgets($connection, 4096)){
$temp .= $channeldata;
}
fclose($connection);
$temp = explode('error id=0 msg=ok', $temp);
$temp1 = explode(' ', $temp[1]);
$info['server']['name'] = str_replace('virtualserver_name=', '', $temp1[1]);
$info['server']['maxclients'] = str_replace('virtualserver_maxclients=', '', $temp1[5]);
$info['server']['clientsonline'] = (str_replace('virtualserver_clientsonline=', '', $temp1[7]))-(str_replace('virtualserver_queryclientsonline=', '', $temp1[38]));
$info['server']['channels'] = (str_replace('virtualserver_channelsonline=', '', $temp1[8]));
if(strpos($temp1[20], '=') !== FALSE){
$info['server']['banner'] = (str_replace('virtualserver_hostbanner_gfx_url=', '', $temp1[21]));
}else{
$info['server']['banner'] = '';
}
$temp2 = explode('cid=', $temp[2]);
$i = 0;
foreach ($temp2 as $var) {
$buffer = explode(' ', $var);
if(isset($buffer[5])){

$info['channel'][$i]['id'] = $buffer[0];
$info['channel'][$i]['pid'] = str_replace('pid=', '', $buffer[1]);
$info['channel'][$i]['name'] = str_replace('channel_name=', '', $buffer[3]);
$i++;
}
}
$temp3 = explode('clid=', $temp[3]);
foreach ($temp3 as $var) {
$buffer = explode(' ', $var);
if(isset($buffer[4])){
$buffer[4] = str_replace('|', '', $buffer[4]);
if(strpos($buffer[4], 'client_type=0') !== FALSE){
$info['user'][$buffer[0]]['name'] = str_replace('client_nickname=', '', $buffer[3]);
$info['user'][$buffer[0]]['channel'] = str_replace('cid=', '', $buffer[1]);
}
}
}
$u_cmd = '';
if(isset($info['user'])){
foreach ($info['user'] as $u_key => $u_var) {
$u_cmd .= "clientinfo clid=".$u_key." \n";
}
$connection = fsockopen ($ip, $t_port, &$errno, &$errstr, 1);
$cmd = "use sid=".$sid." \n".$u_cmd."quit \n";
$execute = fputs($connection,$cmd, strlen($cmd));
$temp_a = '';
while($channeldata = fgets($connection, 4096)){
$temp_a .= $channeldata;
}
fclose($connection);
$temp_b = explode('msg=ok', $temp_a);
$i=1;
foreach ($info['user'] as $u_key => $u_var) {
$temp_a = explode(' ', $temp_b[$i]);
foreach ($temp_a as $tu_key => $tu_var) {
if(strpos($tu_var, 'client_channel_group_id') !== FALSE){
$info['user'][$u_key]['cg'] = str_replace('client_channel_group_id=', '', $tu_var);
}
if(strpos($tu_var, 'client_away') !== FALSE){
$info['user'][$u_key]['away'] = str_replace('client_away=', '', $tu_var);
}
if(strpos($tu_var, 'client_input_muted') !== FALSE){
$info['user'][$u_key]['mic'] = str_replace('client_input_muted=', '', $tu_var);
}
if(strpos($tu_var, 'client_output_muted') !== FALSE){
$info['user'][$u_key]['head'] = str_replace('client_output_muted=', '', $tu_var);
}
if(strpos($tu_var, 'client_servergroups') !== FALSE){
$temp_g = str_replace('client_servergroups=', '', $tu_var);
if(strpos($temp_g, ',')!== FALSE){
$info['user'][$u_key]['sg'] = explode(',', $temp_g);
}else{
$info['user'][$u_key]['sg'][0] = $temp_g;
}
}
}
$i++;
}
}
}

?>


Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 62 - 30.12.2009 um 16:43 Uhr
Es dauert noch ein wenig bis es fertig ist:

Status: 80% fertig
Todo: anzeige channel/users flags beim view, client kick

Extra Funktionen (in vergleich zu alten TS2Panel):
- Support fuer TS3 server
- Option: Connection Timeout (in sekunden)
- Einheitlicher anruf von TS2/TS3 durch ein gemeinsamen "tss" class
- Bei jeder zugefuegten server kann man einzeln list/view zugriff rechte verleihen
- Bei jeder zugefuegten server kann man einzeln registrierungs zugriff rechte verleihen
- Netzwerkverkehr (Ein-/Aus-gehend) im manage uebersicht

Derzeitige Beschraenkungen (demnaechst vielleicht aber moeglich):
- Nur fuer TS2 server ist es derzeit moeglich ein benutzer zu registrieren/loesschen

Moeglich in zukunft/demnaechst:
- Die "tss" class kompatibel machen mit die server classes von servers modul.


Inaktiv
|
beastmaster


Wannabe poster




Beiträge: 29
# Antwort: 63 - 01.01.2010 um 18:57 Uhr
jo gut hab aber auch nen php script gefunden mit dem alle server versionen funktionieren ohne fehler "sollen" xD

naja wer es haben will kann sich ja melden...


www.pro-team.de.vu


Zuletzt editiert von beastmaster am 01.01.2010 um 18:59 Uhr (1x Editiert)
Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 64 - 07.01.2010 um 14:57 Uhr
Status: 95% fertig

Extra Funktionen (in vergleich zu alten TS2Panel):
- Support fuer TS3 server
- Option: Connection Timeout (in sekunden)
- Einheitlicher anruf von TS2/TS3 durch ein gemeinsamen "tss" class
- Bei jeder zugefuegten server kann man einzeln list/view zugriff rechte verleihen
- Bei jeder zugefuegten server kann man einzeln registrierungs zugriff rechte verleihen
- Netzwerkverkehr (Ein-/Aus-gehend) im manage uebersicht

Probleme zur zeit wegen TS3:
Man kann ein token bekommen, den man benutzen kann in TS3 um benutzer rechte zu kriegen.
Da TS3 derzeit aber keine benutzer identifizierung hat, kann ich zwar benutzer accounts loesschen (ich kann suchen auf TS3 client_nickname das der gleich ist wie CS users_nick, aber das kann misbraucht werden, weil TS3 client_nickname geaendert werden kann), aber ich kann keine benutzer (wie TS2 client_login_name) login name vergeben und die benutzer zurueck finden wenn ich seine CS users_nick habe.

Es gibt in die TS3 foren schon threads ueber diese probleme (wo ich mich auch beteilige), aber die entwickler sehen irgendwie im moment noch nicht ein, das sie ein grossen design fehler haben gemacht...
Thread dazu: How to use TS3 auth system in a preexisting user base

Es ist immo also ungewiss, wie es enden wird...


Inaktiv
|
Dobi


Rock the board



Herkunft: Erde
Beiträge: 59
# Antwort: 65 - 07.01.2010 um 15:49 Uhr
War das nicht so (bei TS2), dass ein User mit bestimmten Rechten in CS sich selbst einen Benutzeraccount machen konnte auf dem TS-Server?

Wenn ja vielleich ne Idee meinerseits für TS3:

Der CS-Admin kann bestimmen, ab welchem Zugriff man sich selbst "Benutzerrechte" auf dem TS3-Server geben kann. Im Panel kann der User dann diese Rechte anfordern.

Um diesem User den Token zu generieren wird er aufgefordert, auf dem TS-Server einzuloggen und seinen TS-Nickname auf einen vom Script zufällig vergebeben Nickname zu ändern.

Wenn er das gemacht hat klickt er OK und erhält seinen Token.

Folgendes passiert im Hintergrund:

Du kannst die UID nutzen um die Benutzer auf dem TS-Server zu finden.

Wenn du über den serverquery "clientdblist" schickst, erhältst du pro bekanntem Client auch einen "client_unique_identifier".

Diese ID ist eindeutig einer Idendität eines Clients zugeordnet.

Du suchst also in der Serverdatenbank nach dem Nickname, den du dem User vorher vorgegeben hast (die DB speichert immer den aktuellen Namen ab) und holst dir den entsprechenden "client_unique_identifier". Diesen speicherst du zur CS-UID ab und generierst dem User den Token.

Sollen später für einen CS-User die Rechte gelöscht werden, kann man entweder in der TS-DB den Client anhand des unique_identifier finden und löschen, oder ihm per clientdbedit einfach die Benutzergruppe entziehen.


Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 66 - 07.01.2010 um 16:02 Uhr
Ja, das war so bei TS2 und das geht noch immer...

Und deine loesung ist nicht eindeutig und sicher genug, ich will ein feld das NUR server admins aendern koennen (sowie in TS2 der login name), weil nickname ist zu einfach zu aendern und zu faken... Das ist ja das problem wieso sich jeder bei die TS3 leute beschwert... Es GIBT einfach keine gute loesung zur zeit...


Zuletzt editiert von Mindcrime am 07.01.2010 um 16:02 Uhr (1x Editiert)
Inaktiv
|
Dobi


Rock the board



Herkunft: Erde
Beiträge: 59
# Antwort: 67 - 07.01.2010 um 16:08 Uhr
Sie ist denke ich sicher genug.

DU gibst im Script den Nickname (random) vor (z.B. erste 2 stellen des CS-Nicks und Zahlen "Do12345")

Der User muss bei der Erstellung des Tokens auf dem TS-Server sein mit genau diesem Nicknamen um den Token zu bekommen. Und ein Nickname kann zur gleichen Zeit nur 1 mal auf dem Server sein. Später kann er seinen Nick dann wieder ändern.

Ein anderer User kennt diesen Namen nicht, weil nur der User, der gerade Rechte anfordert diesen Namen angezeigt bekommt.

Als Goodie erhälst du seine UniqueID, mit der Du später die Rechte wieder wegnehmen kannst.


Zuletzt editiert von Dobi am 07.01.2010 um 16:09 Uhr (2x Editiert)
Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 68 - 07.01.2010 um 16:14 Uhr
Das ist zu kompliziert fuer den benutzer (benutzer sind dumm) und es heisst das ich fuer jeden benutzer ein UniqueID in datenbank speichern muss, was man eigentlich nicht machen sollte...

Abgesehen davon... Wann soll ich dan den TS3 server query machen? Ich muss auch noch beibehalten welche von diese zeitliche nicks ich rausgegeben habe... Und der benutzer kann nicht sein nickname aendern solange ich noch nicht den server gequeried hab...

Das heisst alles, das der benutzer viel zu viele schritte machen muss und das TeamSpeak modul muss viel zu viele daten speichern und beibehalten und wann man genau eine verbinding finden kann zwisschen den user in CS und der uniqueID in TS3 ist auch ungewiss...

Es sollte moeglich sein um einfach auf zeitpunkt X ein account zu erstellen und viel spaeter an irgendein zeitpunkt Y das erste mal zu connecten zu TS3...


Zuletzt editiert von Mindcrime am 07.01.2010 um 16:19 Uhr (3x Editiert)
Inaktiv
|
Dobi


Rock the board



Herkunft: Erde
Beiträge: 59
# Antwort: 69 - 07.01.2010 um 17:23 Uhr
Zu deinen Fragen: (Wenns nervt einfach was sagen )

User ruft Modul auf und klickt auf "Benutzerrechte erteilen" oder wie auch immer man den Link nennen mag.

Modul generiert temp. Nickname und zeigt diesen dem User an mit der Bitte, unter diesem Nickname auf dem TS-Server zu sein. User soll das dann mit OK bestätigen.

Der Nickname ist nur so lange gültig, wie die Homepage aufgerufen bleibt (Formularübergabe).

User geht auf den TS Server und ändert seinen Nickname auf den temporären. Anschliessend klickt er auf der Homepage OK.

Modul führt Serverquery aus:
"clientdblist"
Modul sucht im Ergebnis nach dem temp. Nickname und merkt sich dann die passende Unique_ID oder eben die Client-Database-ID "cldbid" des Users. Die ID kann in der DB gespeichert werden in Verbindung mit der CS-UID.
Modul erstellt per Serverquery den TOKEN und zeigt diesen dem User an mit Anleitung, was er damit machen muss (ist ja nicht wirklich schwer...)


User benutzt den Token auf dem Server und ändert seinen Nickname wieder auf seinen eigenen.

Fertig.

Wo du definitiv Recht hast, man kann auf diese Weise nicht einfach so die Rechte generieren und diese später (2-3 Tage) nutzen.


Mir fällt aber noch was anderes ein:

Man könnte auch folgendermaßen vorgehen:

Vorgabe:
Clanmember sollen auf dem TS-Server in Servergruppe 7 sein.
Diese Information sollte Clansphere per Option wissen.

CS-Admin kann in der Verwaltung auf "Rechtetoken erstellen" gehen und wählt z.B. Anzahl = 5.

Das Modul generiert über den Serverquery nun 5x einen Token:
'tokenadd tokentype=0 tokenid1=7 tokenid2=0'
Der TS-Server führt automatisch eine Liste dieser Tokens! (Wobei geklärt werden muss, ob diese zeitlich ablaufen können.) Brauchst sie also nicht in CS zu speichern...

Berechtigte User können nun wie beim ersten Beispiel Rechte anfordern. Das Modul führt einen Serverquery 'tokenlist' aus und zeigt dem User einen der Token an. Sollte allerdings auch nach Tokenid1 und 2 gesucht werden... sicherheitshalber.

Damit hättest Du die Möglichkeit, Tokens zu erstellen und diese später auf Anforderung zu verteilen.

ABER du kommst auf diese Weise nicht an die Client-ID um später die Rechte wieder zu entziehen. Das müsste der Admin dann über den TS-Client direkt machen...


Inaktiv
|
Antworten: 248
Seite < 1 2 [3] 4 5 6 ... 11 12 13 >


Sie müssen sich registrieren, um zu antworten.