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:
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);
$rang = $m[4][$i];
$away = $m[5][$i];
$awayreason = htmlentities($m[6][$i]);
Neu:
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);
$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.