Chatter-Icon-ID in der XML-Onlineliste anzeigen

Threads aus der Wunschecke landen hier, wenn eine Umsetzung geplant ist.
Gesperrt
Maxs
Moderator
Beiträge: 550
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von Maxs » 10.04.2012, 19:41

Hallo liebes Webkicksteam! ;)

Durch das neue Profilbild-System ist es ja nun möglich, dass einzelne User sich Bilder für das P in der Onlineliste aussuchen dürfen. Dieses Icon wird ja mit folgender Funktion an den User angeknüpft:
addp("USERNAME", "SERVER", "CHATNAME", "AWAY", "AWAY-REASON", "ICON-ID");
Ist es möglich, diese ICON-ID auch bei jedem User in der XML-Onlineliste (/api/get_onlinelist) sichtbar zu machen? Das würde mir sehr bei der unterteilbaren Onlineliste helfen. :D
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Webkicks
Webkicks - Team
Beiträge: 668
Registriert: 02.05.2003, 00:16
Kontaktdaten:

Re: Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von Webkicks » 12.04.2012, 18:38

Das ist problemlos möglich und ab sofort auch der Fall ;)

Maxs
Moderator
Beiträge: 550
Registriert: 09.10.2008, 18:21
Kontaktdaten:

Re: Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von Maxs » 12.04.2012, 18:44

Juhu! Danke! Ihr seid spitze! ;)
Wäre es nicht adäquat, den Usus heterogener Termini zu minimieren?

Benutzeravatar
Linus
Moderator
Beiträge: 1070
Registriert: 14.02.2005, 20:31
Wohnort: NRW
Kontaktdaten:

Re: Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von Linus » 12.04.2012, 22:14

Leider wird dort nicht immer ein Wert angezeigt? Meine Icons sind z.B. in 2 Chats (server2 und 3) nicht eingetragen, im server3-Chat auch nicht die von anderen Chattern... Nachdem ich das Icon einmal neu ausgewählt hatte, gings, nach nem neuen Login wars wieder weg. In der OL wirds auch nicht immer angezeigt :? Anscheinend wird die Icon-ID dann auch nicht mehr an addp übergeben, im Profil ist es aber noch ausgewählt. Der Fehler tritt sowohl mit als auch ohne OL-Sortier-Script auf... Und bis zu dieser API-Änderung gings auch eigentlich...
Kein Support per PN!

Benutzeravatar
hamigra
Beiträge: 567
Registriert: 31.08.2006, 16:02
Wohnort: Werdau
Kontaktdaten:

Re: Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von hamigra » 13.04.2012, 11:26

Seit der Änderung funktioniert noch mehr nicht.
Z.B. die Abfrage der im Chat befindlichen User mittels PHP.
Dieser Code geht nicht mehr:
Script:Zeigen
<?php
$server=X;
$cid="chatname";
$file=file("http://server$server.webkicks.de/$cid/api/get_onlinelist");
$file=implode("", $file);

preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);


$userOnline=count($m[1]);

echo "$userOnline Chatter online:<br>\n";
foreach($m[1] as $i => $name){
$raum = $m[2][$i];
$profil = $m[3][$i];
$rang = $m[4][$i];
$away = $m[5][$i];
$awayreason = htmlentities($m[6][$i]);
if($profil==1)$profil="<a href='http://server$server.webkicks.de/$cid/pv/$name/open' onclick='window.open(this.href,"_blank","width=800,height=600");return false;'>(P)</a>";
else $profil="";

if($rang=="admin")$color="#ff0000";
elseif($rang=="mod")$color="#0000ff";
else $color="#000000";

if($away==1)$away=" style='font-style:italic;' title='$awayreason'";
else $away="";

echo "<font color='$color'$away>$name</font> $profil <small>($raum)</small><br>\n";
}

?>
Server und Chatname sind natürlich richtig eingetragen.

Die Icons statt dem (P) ist zwar eine schöne Spielerei, mehr aber auch nicht.
Aber wenn der ganze Chat darunter leidet weil Scripte nicht mehr funktionieren sollte man eventuell darüber nachdenken, diese Funktion wieder rückgängig zu machen!
Deutsche Sprache ist Freeware, aber nicht OpenSource! Du darfst sie benutzen, aber nicht verändern.

Webkicks
Webkicks - Team
Beiträge: 668
Registriert: 02.05.2003, 00:16
Kontaktdaten:

Re: Chatter-Icon-ID in der XML-Onlineliste anzeigen

Ungelesener Beitrag von Webkicks » 13.04.2012, 17:50

Linus: Das war wohl kein API-spezifisches Problem sondern betraf genauso die normale Online-Liste (siehe hier). Ab sofort sollte die API genauso wie die normale Online-Liste wieder die richtigen Daten liefern (gerade noch eingeloggte Chatter müssen sich erst aus- und wieder neu einloggen).

Hamigra: Es liegt in der Natur der Sache, dass Änderungen bei uns ggf. auch Änderungen an eigenen Scripts erforderlich machen. Wir werden ganz sicher nicht auf die Einführung neuer Funktionen verzichten, nur weil dann das eine oder andere eigene Script minimalst angepasst werden muss ;) Gerade die hier angesprochene Änderung hätte allerdings bei anderer Programmierweise des PHP-Scripts keine Anpassung erforderlich gemacht. Bei der Nutzung von XML-Schnittstellen sollte man sich in Zukunft ggf. lieber am DOM Baum orientieren statt das XML selbst zu parsen, dann würden neue Elemente vermutlich keinerlei Probleme verursachen.

Zur Behebung Deines Problems dürfte folgende Änderung übrigens ausreichen:

Bisher:
Script:Zeigen
preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);
Script:Zeigen
$rang = $m[4][$i];
$away = $m[5][$i];
$awayreason = htmlentities($m[6][$i]);
Neu:
Script:Zeigen
preg_match_all("/<onlineuser>\n\s+<name>(\w+)<\/name>\n\s+<channel>(\w+)<\/channel>\n\s+<profil>([01])<\/profil>\n\s+<iconid>(\d*)<\/iconid>\n\s+<rang>(\w+)<\/rang>\n\s+<away>([01])<\/away>\n\s+<awayreason>([^<]*)<\/awayreason>\n\s+<\/onlineuser>/", $file, $m);
Script:Zeigen
$rang = $m[5][$i];
$away = $m[6][$i];
$awayreason = htmlentities($m[7][$i]);
Ebenso einfach könntest Du die Icons natürlich auch noch in Deinem Script verwenden - das ist hier aber der falsche Thread dafür.

Gesperrt

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast