/** * Returns the HTML code needed to display this node in a TeamSpeak 3 viewer. * * @param TeamSpeak3_Node_Abstract $node * @return string */ public function fetchObject(TeamSpeak3_Node_Abstract $node, array $siblings = array()) { $prefix = ""; if (count($siblings)) { $last = array_pop($siblings); foreach ($siblings as $level) { $prefix .= $level ? "│" : " "; } $prefix .= $last ? "└" : "├"; } return $prefix . $node->getSymbol() . " " . htmlspecialchars($node) . "\n"; }
/** * Returns the HTML code needed to display this node in a TeamSpeak 3 viewer. * * @param TeamSpeak3_Node_Abstract $node * @return string */ public function fetchObject(TeamSpeak3_Node_Abstract $node, array $siblings = array()) { $prefix = ""; $suffix = ""; $detail = ""; if (count($siblings)) { $last = array_pop($siblings); foreach ($siblings as $level) { $prefix .= $level ? $this->getImage("16x16_tree_line.gif") : $this->getImage("16x16_tree_blank.png"); } $prefix .= $last ? $this->getImage("16x16_tree_end.gif") : $this->getImage("16x16_tree_mid.gif"); } if ($node instanceof TeamSpeak3_Node_Server) { $detail .= "ID: " . $node->getId() . " | Clients: " . $node->clientCount() . "/" . $node["virtualserver_maxclients"] . " | Uptime: " . TeamSpeak3_Helper_Convert::seconds($node["virtualserver_uptime"]); } elseif ($node instanceof TeamSpeak3_Node_Channel) { $suffix .= $this->fetchSuffixChannel($node); $detail .= "ID: " . $node->getId() . " | Codec: " . TeamSpeak3_Helper_Convert::codec($node["channel_codec"]) . " | Quality: " . $node["channel_codec_quality"]; } elseif ($node instanceof TeamSpeak3_Node_Client) { $suffix .= $this->fetchSuffixClient($node); $detail .= "ID: " . $node->getId() . " | Version: " . $node["client_version"] . " | Platform: " . $node["client_platform"]; } return "<div id='" . $node->getUniqueId() . "'>" . $prefix . $this->getImage("16x16_" . $node->getIcon() . ".png") . " <span title='" . $detail . "'>" . htmlspecialchars($node) . " " . $suffix . "</span></div>\n"; }
/** * Returns the HTML img tags which can be used to display the various icons for a * TeamSpeak_Node_Client object. * * @return string */ protected function getSuffixIconClient() { $html = ""; if ($this->currObj["client_is_priority_speaker"]) { $html .= $this->getImage("client_priority.png", "Priority Speaker"); } if ($this->currObj["client_is_channel_commander"]) { $html .= $this->getImage("client_cc.png", "Channel Commander"); } if ($this->currObj["client_is_talker"]) { $html .= $this->getImage("client_talker.png", "Talk Power granted"); } foreach ($this->currObj->memberOf() as $group) { if (!$group["iconid"]) { continue; } $type = $group instanceof TeamSpeak3_Node_Servergroup ? "Server Group" : "Channel Group"; if (!$group->iconIsLocal("iconid") && $this->ftclient) { if (!isset($this->cacheIcon[$group["iconid"]])) { $download = $group->getParent()->transferInitDownload(rand(0x0, 0xffff), 0, $group->iconGetName("iconid")); $this->cacheIcon[$group["iconid"]] = $download; } else { $download = $this->cacheIcon[$group["iconid"]]; } $html .= $this->getImage($this->ftclient . "?ftdata=" . base64_encode(serialize($download)), $group . " [" . $type . "]", null, FALSE); } elseif (in_array($group["iconid"], $this->cachedIcons)) { $html .= $this->getImage("group_icon_" . $group["iconid"] . ".png", $group . " [" . $type . "]"); } } if ($this->currObj["client_icon_id"]) { if (!$this->currObj->iconIsLocal("client_icon_id") && $this->ftclient) { if (!isset($this->cacheIcon[$this->currObj["client_icon_id"]])) { $download = $this->currObj->getParent()->transferInitDownload(rand(0x0, 0xffff), 0, $this->currObj->iconGetName("client_icon_id")); $this->cacheIcon[$this->currObj["client_icon_id"]] = $download; } else { $download = $this->cacheIcon[$this->currObj["client_icon_id"]]; } $html .= $this->getImage($this->ftclient . "?ftdata=" . base64_encode(serialize($download)), "Client Icon", null, FALSE); } elseif (in_array($this->currObj["client_icon_id"], $this->cachedIcons)) { $html .= $this->getImage("group_icon_" . $this->currObj["client_icon_id"] . ".png", "Client Icon"); } } return $html; }
/** * Returns the HTML img tags which can be used to display the various icons for a * TeamSpeak_Node_Client object. * * @return string */ protected function getSuffixIconClient() { $html = ""; if ($this->currObj["client_is_priority_speaker"]) { $html .= $this->getImage("client_priority.png", "Priority Speaker"); } if ($this->currObj["client_is_channel_commander"]) { $html .= $this->getImage("client_cc.png", "Channel Commander"); } if ($this->currObj["client_is_talker"]) { $html .= $this->getImage("client_talker.png", "Talk Power granted"); } elseif ($cntp = $this->currObj->getParent()->channelGetById($this->currObj["cid"])->channel_needed_talk_power) { if ($cntp > $this->currObj["client_talk_power"]) { $html .= $this->getImage("client_mic_muted.png", "Insufficient Talk Power"); } } foreach ($this->currObj->memberOf() as $group) { if (!$group["iconid"]) { continue; } $type = $group instanceof TeamSpeak3_Node_Servergroup ? "Server Group" : "Channel Group"; if (!$group->iconIsLocal("iconid") && $this->ftclient) { if (!isset($this->cacheIcon[$group["iconid"]])) { $download = $group->getParent()->transferInitDownload(rand(0x0, 0xffff), 0, $group->iconGetName("iconid")); if ($this->ftclient == "data:image") { $download = TeamSpeak3::factory("filetransfer://" . $download["host"] . ":" . $download["port"])->download($download["ftkey"], $download["size"]); } $this->cacheIcon[$group["iconid"]] = $download; } else { $download = $this->cacheIcon[$group["iconid"]]; } if ($this->ftclient == "data:image") { $html .= $this->getImage("data:" . TeamSpeak3_Helper_Convert::imageMimeType($download) . ";base64," . base64_encode($download), $group . " [" . $type . "]", null, FALSE); } else { $html .= $this->getImage($this->ftclient . "?ftdata=" . base64_encode(serialize($download)), $group . " [" . $type . "]", null, FALSE); } } elseif (in_array($group["iconid"], $this->cachedIcons)) { $html .= $this->getImage("group_icon_" . $group["iconid"] . ".png", $group . " [" . $type . "]"); } } if ($this->currObj["client_icon_id"]) { if (!$this->currObj->iconIsLocal("client_icon_id") && $this->ftclient) { if (!isset($this->cacheIcon[$this->currObj["client_icon_id"]])) { $download = $this->currObj->getParent()->transferInitDownload(rand(0x0, 0xffff), 0, $this->currObj->iconGetName("client_icon_id")); if ($this->ftclient == "data:image") { $download = TeamSpeak3::factory("filetransfer://" . $download["host"] . ":" . $download["port"])->download($download["ftkey"], $download["size"]); } $this->cacheIcon[$this->currObj["client_icon_id"]] = $download; } else { $download = $this->cacheIcon[$this->currObj["client_icon_id"]]; } if ($this->ftclient == "data:image") { $html .= $this->getImage("data:" . TeamSpeak3_Helper_Convert::imageMimeType($download) . ";base64," . base64_encode($download), "Client Icon", null, FALSE); } else { $html .= $this->getImage($this->ftclient . "?ftdata=" . base64_encode(serialize($download)), "Client Icon", null, FALSE); } } elseif (in_array($this->currObj["client_icon_id"], $this->cachedIcons)) { $html .= $this->getImage("group_icon_" . $this->currObj["client_icon_id"] . ".png", "Client Icon"); } } return $html; }