Hallo liebe Community
Ich beschäftige mich seit Kurzem mit dem Voice-Tool Murmur und möchte gerne ein Channel Viewer dafür erstellen. Ich besitze ein Debian etch mit PHP5, Apache und Zeroc Ice - und da liegt auch das kleine Problem
Anhand des Beispielskriptes erhalte ich zwar $players und $channels, aber weiß nicht recht wie ich sie miteinander "verbinden" soll, damit eine (Baum-)Struktur entsteht. Ich habe dennoch schonmal geschafft die Struktur der Channels anzuzeigen: LINK
Das Script dazu
Nun müsste das Script nur noch überprüfen, ob ein User ggf. auf dem jeweiligen Channel ist oder nicht. Muss ich das dann mit einer While oder einer Foreach-Schleife lösen? Oder müsste man einen komplett anderen Weg gehen?
Gruß, walle_89
P.S. Die beiden Arrays ($channels und $players) liefern dafür die nötigen Informationen.
Ich beschäftige mich seit Kurzem mit dem Voice-Tool Murmur und möchte gerne ein Channel Viewer dafür erstellen. Ich besitze ein Debian etch mit PHP5, Apache und Zeroc Ice - und da liegt auch das kleine Problem
Anhand des Beispielskriptes erhalte ich zwar $players und $channels, aber weiß nicht recht wie ich sie miteinander "verbinden" soll, damit eine (Baum-)Struktur entsteht. Ich habe dennoch schonmal geschafft die Struktur der Channels anzuzeigen: LINK
Das Script dazu
PHP:
<html>
<head>
<title>Userlist</title>
</head>
<body>
<?php
Ice_loadProfile();
try {
$base = $ICE->stringToProxy("Meta:tcp -h 127.0.0.1 -p 6502");
$meta = $base->ice_checkedCast("::Murmur::Meta");
$servers = $meta->getBootedServers();
$default = $meta->getDefaultConf();
foreach($servers as $s) {
$name = $s->getConf("registername");
if (! $name) {
$name = $default["registername"];
}
echo "<h1>SERVER #" . $s->id() . " " .$name ."</h1>\n";
echo "<table><tr><th>Name</th><th>Channel</th></tr>\n";
$channels = $s->getChannels();
$players = $s->getPlayers();
foreach($players as $id => $state) {
$chan = $channels[$state->channel];
echo "<tr><td>".$state->name."</td><td>".$chan->name."</td></tr>\n";
}
echo "</table>\n";
echo "<h1>Baumstruktur</h1>";
foreach($channels as $id => $state) {
$play = $players[$state->channel];
echo $state->name."<br>";
}
}
} catch (Ice_LocalException $ex) {
print_r($ex);
}
?>
</body>
</html>
Nun müsste das Script nur noch überprüfen, ob ein User ggf. auf dem jeweiligen Channel ist oder nicht. Muss ich das dann mit einer While oder einer Foreach-Schleife lösen? Oder müsste man einen komplett anderen Weg gehen?
Gruß, walle_89
P.S. Die beiden Arrays ($channels und $players) liefern dafür die nötigen Informationen.