Teamspeak-Viewer für das JGS-Portal

CoCooner
Titel: Teamspeak-Viewer für das JGS-Portal
Version: 1.0
Beschreibung: mit diesem kleinen Script, habt ihr die Möglichkeit einen Teamspeak-Server im JGS-Portal anzeigen zulassen. Dabei seht ihr welche User sich momentan auf euren Teamspeak-Server befinden. Besucher können natürlich dem Teamspeak durch klicken des Links "Teamspeak beitreten", selbiges ausführen.

Außerdem zeigt das Script auch den Status der Teamspeak-User an z.b. abwesend/mutet usw.
Die Anzeige des Teamspeak findet in einer normalen JGS-Portal Box statt, ihr könnt also so die Position der Teamspeak-Anzeige auf Eurem Board selbst bestimmen.

Das Script ist natürlich schnell und einfach einzubauen. Es liegt eine ausführliche Anleitung dabei.

Vorausetzung für den Hack:

- Woltlab 2.3.x
- JGS Portal
- PHP 4.0 / 5.0
- MySql 4.0 / 5.0

MFG

Die Krabbe
----
Demo: http://www.script-archive-network.de

weiter zum Download
Hawkeye_de
Zum Hack:

- Einbau: Sehr Gut beschrieben, die Doku liegt dem Paket bei. Freude
- Support: Support im Forum von "krabbencocktail" kann unter umständen
länger dauern. Auch bei kleinen Problemen sollte man dort viel Zeit mitbringen. Augen rollen
IronEagle2
ich habe in der box lediglich nur teamspeak beitreten stehn, jedoch nicht wer gearde online ist...
auch keine räume sind zu sehn...

http://forum.et-cologne.de/jgs_portal.php?

ganz unten links......

was ist verkehrt..?
zudem musste ich die bei gelegte index überarbeiten, weil dort noch eine ip adresse hinterlegt war...
<<Player>>
Also bei mir werden wohl die User angezeigt die sich im TS befinden aber es werden auch keine Räume angezeigt keine Grafiken und der Link "Teamspeak beitreten" verlinkt zum falschen TS.

Ich vermute mal die ganze index.php ist falsch nur leider habe ich da keine Ahnung von. Wer könnte sich das mal anschauen?

Danke und Gruss
Player
Hawkeye_de
Regel Nr.1: Finger weg von Dingen, wo man keine Ahnung von hat!

Wieso werde ich angeschrieben, als wenn es mein Hack wäre ?
Bitte Leute, das muss ja nun nicht sein, oder ?
<<Player>>
Zitat:
Original von Hawkeye_de
Regel Nr.1: Finger weg von Dingen, wo man keine Ahnung von hat!

Wieso werde ich angeschrieben, als wenn es mein Hack wäre ?
Bitte Leute, das muss ja nun nicht sein, oder ?


Sorry hörte sich so an in deinem oberen Beitrag als ob du auch mit an diesem Hack gearbeitet hast... hab ich wohl falsch verstanden.

aber deinen Spruch "Finger weg von Dingen, wo man keine Ahnung von hat!" hätte man sich auch sparen können... denn immerhin ist das hier eine Community und dieses steht für Hilfe aber wie es scheint nicht für alle *anmerk
CoCooner
Hallo

also ich bin zwar nicht der Coder des Hacks aber ich hab ihm mal bescheid gegeben dass er hier vorbei schauen soll Augenzwinkern

das Problem mit dem "im fremden Teamspeak Landen" hab ich selbst gefunden

öffnet die vorhandene index.php

in Zeile 11 findet ihr diesen abschnitt
<strong><a href=\"teamspeak://213.239.200.131/?channel=Empfangshalle?nickname

da müsst ihr noch eure IP und den Channel eintragen wo man eintreten soll

speichern und fertig großes Grinsen


ich denke das hat DieKrabbe einfach im eifer des gefechts vergessen in die readme zu schreiben ...
Cocny
Ich habe mal die Indexdatei von meinem TS viewer den ich auf dem rechner habe ausgetauscht mit der datei aus dem DOwnload...


und es klappt allerdings ist die anzeige jetzt nicht in der box sondern über dem Forum...



EVTL kann ja mal jemand den code für die BOX umschreiben.. so das er mit dem Code untermir übereinstimmt...

Lg
Cocny









code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
 <?php
// retrieve server info
require("config.php");
$tss2info->getInfo();
$tss2info->userName="Guest";
?>
<html>
<head>
<title><?php echo $tss2info->sitetitle;?></title>
<style type="text/css">
<!--
body  {
 background-color: #ffffff; //Hintergrundfarbe
 margin: 1px;
 font-family: Verdana;
 font-size: 10px;
 SCROLLBAR-base-COLOR: #ffffff; 
 SCROLLBAR-ARROW-COLOR: #000000;
}
td.refresh  {
 font-family: Verdana;
 font-size: 9px;
 color: #000000;
}
a.channellink:link,
a.channellink:hover,
a.channellink:visited,
a.channellink:active {
 text-decoration: none;
 font: bold
 font-family: Verdana;
 font-size: 10px;
 color: #000000;
}
a.refreshlink:link,
a.refreshlink:hover,
a.refreshlink:visited,
a.refreshlink:active {
 text-decoration: none;
 font-family: Verdana;
 font-size: 9px;
 color: #000000;
}
td.teamspeak  {
 font: bold
 font-family: Verdana;
 font-size: 10px;
 color: #000000;
}
td.channel  {
 font: bold
 font-family: Verdana;
 font-size: 10px;
 color: #000000;
}
td.player  {
 font-family: Verdana,Arial;
 font-size: 9px;
 color: #000000;
}
td.offline  {
 font: bold
 font-family: Verdana;
 font-size: 10px;
 color: #000000;
}
//-->
</style>
<?php
  if (isset($HTTP_GET_VARS["auto"])) {
    $auto = $HTTP_GET_VARS["auto"];
  } else {
  	$auto = 0;
  }
  if ($auto==1) {
	echo '<meta http-equiv="refresh" content="'.$tss2info->refreshtime.'" URL='.$PHP_SELF.'?auto=1">';
  }
?>

</head>
<body>
<?php
// display channel list
echo "<table border=\"0\" width=\"".$tss2info->tabellenbreite."\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr>\n";
echo "<td>\n";
//-------------------------------------------------------------------------------------------------
//---> Refresh <---\\ Anfang
echo "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr>\n";
if ($auto==1) {
	echo "";
} else {
	echo "";
}
echo "</tr>\n";
echo "</table>\n";
//---> Refresh <---\\ Ende
//-------------------------------------------------------------------------------------------------
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>\n";
//-------------------------------------------------------------------------------------------------
//---> TeamSpeak <---\\ Anfang
echo "<table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n";
echo "<tr>\n";
echo "<td width=\"33\"><img src=\"images/teamspeak.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"></td><td class=\"teamspeak\">Teamspeak 2 Server</td>\n";
echo "</tr>\n";
echo "</table>\n";
//---> TeamSpeak <---\\ Ende

$result = getSubChannel();

//-------------------------------------------------------------------------------------------------
//---> OFFLINE <---\\
if ($result != "") {
 echo $result;
} else {
 echo ("<tr>\n");
 echo ("<td>\n");
 echo (" <table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n");
 echo ("   <tr><td class=\"offline\" width=\"110\"align=\"center\" colspan=\"2\"><b>Offline</b></td></tr>\n");
 echo ("</table>\n");
 echo ("</td>\n");
 echo ("</tr>\n");
}

//---> OFFLINE <---\\
//-------------------------------------------------------------------------------------------------
echo ("</table>\n");
?>
</body>
</html>
<?php

function getPlayer($chanelID, $channelID, $SubCounter) {
	global $tss2info;
	//$channelInfo = $tss2info->channelList[$chanelID];
	$player = "";

	foreach($tss2info->playerList as $playerInfo) {
		if ($playerInfo[channelid] == $channelID) {

	//-------------------------------------------------------------------------------------------------
			$player .= ("<tr>\n");
			$player .= ("<td>\n");
			$player .= (" <table border=\"0\" width=\"100%\" cellpadding=\"0\" cellspacing=\"0\">\n");

			$width=32;
			$gitter="";
			for ($i=0;$i<=$SubCounter;$i++) {
				$width+=16;
				$gitter .= "<img src=\"images/gitter.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\">";
			}

			//if ($channelInfo[parent]==-1) {
				$player .= ("   <tr><td width=\"$width\">$gitter<img src=\"images/gitter2.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"><img src=\"images/".$playerInfo[attribute]."\" width=\"16\"height=\"16\" border=\"0\" alt=\"Time [online: ".$playerInfo[totaltime]." | idle: ".$playerInfo[idletime]."] Ping:".$playerInfo[pingtime]."ms\"></td><td class=\"player\" title=\"Time [online: ".$playerInfo[totaltime]." | idle:".$playerInfo[idletime]."] Ping:".$playerInfo[pingtime]."ms\">&nbsp;".$playerInfo[playername]." ".$playerInfo[flags]."</td></tr>\n");
			//} else {
			//	$player .= ("   <tr><td width=\"64\"><img src=\"images/gitter.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"><img src=\"images/gitter.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"><img src=\"images/gitter2.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"><img src=\"images/".$playerInfo[attribute]."\" width=\"16\"height=\"16\" border=\"0\" alt=\"Time [online: ".$playerInfo[totaltime]." | idle: ".$playerInfo[idletime]."] Ping:".$playerInfo[pingtime]."ms\"></td><td class=\"player\" title=\"Time [online: ".$playerInfo[totaltime]." | idle:".$playerInfo[idletime]."] Ping:".$playerInfo[pingtime]."ms\">&nbsp;".$playerInfo[playername]." ".$playerInfo[flags]."</td></tr>\n");
			//}
			$player .= (" </table>\n");
			$player .= ("</td>\n");
			$player .= ("</tr>\n");
			//---> Player <---\\ Ende
	//-------------------------------------------------------------------------------------------------
		}
	}
	return $player;
}

function getSubChannel($chanelID=-1,$SubCounter=0) {
	global $tss2info;
	$SubChannel = "";
	if ($chanelID==-1) $SubCounter=0; else $SubCounter++;
	foreach($tss2info->channelList as $channelInfo) {

	  $channelname = $channelInfo[channelname];
	  // determine codec (verbose)
	  $codec = $tss2info->getVerboseCodec($channelInfo[codec]);

	  if ($channelInfo[parent]==$chanelID) {
		$SubChannel .= ("<tr>\n");
		$SubChannel .= ("<td>\n");
	//-------------------------------------------------------------------------------------------------
		//---> Channel <---\\ Anfang
		$SubChannel .= (" <table border=\"0\"  cellpadding=\"0\" cellspacing=\"0\">\n");
		$SubChannel .= ("   <tr>\n");

		$width=32;
		$gitter="";
		for ($i=1;$i<=$SubCounter;$i++) {
			$width+=16;
			$gitter .= "<img src=\"images/gitter.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\">";
		}

	    $SubChannel .= ("    <td width=\"$width\">$gitter<img width=\"16\"height=\"16\" src=\"images/gitter2.gif\" border=\"0\" alt=\"\"><img src=\"images/channel.gif\" width=\"16\"height=\"16\" border=\"0\" alt=\"\"></td>");
		$SubChannel .= ("    <td class=\"channel\">&nbsp;<a class=\"channellink\" href=\"teamspeak://".$tss2info->serverAddress.":".$tss2info->serverUDPPort."/?channel=".$channelname."?nickname=WebGuest?password=".$tss2info->serverPasswort."\" title=\"".$channelInfo[topic]."\">".$channelname."</a></td>\n");

		if ($SubCounter==0)	$SubChannel .= ("    <td class=\"player\">&nbsp;".$channelInfo[attribute]."</td>\n");

		$SubChannel .= ("  </tr>\n");
		$SubChannel .= (" </table>\n");
		//---> Channel <---\\ Ende
	//-------------------------------------------------------------------------------------------------
		$SubChannel .= ("</td>\n");
		$SubChannel .= ("</tr>\n");

		if ($SubChannel!="") $SubChannel .= getSubChannel($channelInfo[channelid],$SubCounter); //Rekusiver Aufruf!!

		$SubChannel .= getPlayer($channelInfo[channelid],$channelInfo[channelid],$SubCounter); //User einfügen
	  }
	}
	return $SubChannel;
}
echo ("<table>\n");
echo ("<tr>\n");
echo ("<td class=\"player\">\n");
echo ("</td>\n");
echo ("</tr>\n");
echo ("</table>\n");

?> 
CoCooner
Moinsen Community,

wie bereit mein Vorredner CoCooner geschrieben hat, braucht ihr in der index.php nur den Pfad zu Eurem Teamspeak abändern und schon landet ihr nicht mehr auf unserem ClanTs.

n Zeile 11 findet ihr diesen abschnitt
<strong><a href=\"teamspeak://213.239.200.131/?channel=Empfangshalle?nickname>

Das andere mit den nicht Räumen anzeigen ist so gewollt und könnte nur durch eine erneute modifizierung des Codes umgestellt werden. Wer sich aber diese Mühe machen möchte kann sich ja dann gleich den orginalen Teamspeak-Viewer herunterladen (Google verräts euch).

Der Grund warum keine Räume angezeigt werden ist, das eine Webseite ziemlich in die Länge gezogen wird falls ihr Eure gesamten Räume sehen wollt. Außerdem stellt sich die Frage welcher von Euren Besucher interessiert sich schon für die Räume, denke wohl eher das es interessanter ist zu sehen wer überhaupt wer online ist oder ?

Wer von Euche keine Bilder in der TS-Anzeigen haben sollte der muß eventuell noch einmal den Pfad zu den Bilder anpassen. Dieser steht auch in der index.php und ist in einem <img> Tag zu finden.

Falls noch Fragen offen sein sollten dann stehe ich Euch unter unserer neuen Domain www.script-archive-network.de zur Verfügung.

MFG DieKrabbe