Archiv verlassen und diese Seite im Standarddesign anzeigen : Skript aus PHP-Kit
Kann man einen Script, der für PHP-Kit gemacht wurde auch für WBB/JGS Portal benutzen?
Ich möchte den beigefügten Script in einer Box im Portal anzeigen.
Vielen Dank für Tips. :)
Hmm, hat niemand eine Idee, wie ich das lösen könnte?
Leider finde ich keine Lösung bis jetzt. ;(
Ich glaub nicht ich hatte mal phpkit das funktioniert ganz anders als beim jgs-portal
eeleater
02.05.2006, 19:18
man könnte natürlich auch das in einem phpkit einfügen, und dann als iframe wieder ins wbb einbinden *gg*
oder includen ;)
zum Tutl (http://de.php.net/include/)
Danke für die Links, ich probier und probier...... hab keine Chance. Kann mir jemand an meinem Beispiel helfen? Ich bin zu blöd, so wie es scheint! ;(
Wer kann mir beim Include- oder Iframe-Befehl helfen? Wäre sehr sehr froh, denn ich schnall das nicht! ;(
Vielen Dank!!! :hüpf:
<?php
// ================================================== ================================================== =====================
// RACECAST SERVER STATUS SCRIPT
// ================================================== ================================================== =====================
// DESCRIPTION: THIS SCRIPT PARSES THE RFACTOR RACECAST SERVER RSS FEED AND DISPLAYS THE SERVER STATUS OF A GIVEN IP-ADDRESS
// IT HAS BUILT-IN SUPPORT FOR CSS RENDERING, CHECKS IF THE FILE EXISTS AND IF THE SERVER IS LISTED.
// AUTHOR: JAAP WAGENVOORT
// E-MAIL: JAAP@GPCHAMPIONSHIP.COM
// DATE: 2006-02-04
// VERSION: 1.0
// INSTALLATION:COPY BOTH FILES TO YOUR WEBSITE (OR COPY/PASTE THE CONTENTS OF THIS FILE INTO AN EXISTING SCRIPT). THEN,
// CONFIGURE THE $IP VARIABLE (ON LINE 19 AND INSERT THE IP-ADDRESS OF YOUR OWN SERVER. FOR NOW, THIS SCRIPT
// ONLY LOOKS UP THE STATUS OF ONE SINGLE SERVER.
// ================================================== ================================================== =====================
//DEFINE IP-ADDRESS
$ip="80.86.187.215";
//DESCRIBE XML PARSER CLASS
class xmlParser{
var $xml_obj = null;
var $output = array();
function xmlParser(){
$this->xml_obj = xml_parser_create();
xml_set_object($this->xml_obj,$this);
xml_set_character_data_handler($this->xml_obj, 'dataHandler');
xml_set_element_handler($this->xml_obj, "startHandler", "endHandler");
}
function parse($path){
if (!($fp = fopen($path, "r"))) {
die("Cannot open XML data file: $path");
return false;
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($this->xml_obj, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($this->xml_obj)),
xml_get_current_line_number($this->xml_obj)));
xml_parser_free($this->xml_obj);
}
}
return true;
}
function startHandler($parser, $name, $attribs){
$_content = array('name' => $name);
if(!empty($attribs))
$_content['attrs'] = $attribs;
array_push($this->output, $_content);
}
function dataHandler($parser, $data){
if(!empty($data)) {
$_output_idx = count($this->output) - 1;
$this->output[$_output_idx]['content'] = $data;
}
}
function endHandler($parser, $name){
if(count($this->output) > 1) {
$_data = array_pop($this->output);
$_output_idx = count($this->output) - 1;
$this->output[$_output_idx]['child'][] = $_data;
}
}
}
function filesize_url($url){
return ($data = @file_get_contents($url)) ? strlen($data) : false;
}
//INITIALIZE XML PARSER BY CREATING A NEW OBJECT
$p =& new xmlParser();
//CHECK IF THE FEED EXISTS
$pathtofeed = 'http://racecast.rfactor.net/rssfeed/RaceCastRSSFeed.xml';
$fsize = filesize_url($pathtofeed);
if($fsize){
//RSS FEED FILE EXISTS
//DEFINE TO THE BE PARSED RACECAST RSS FEED
$p->parse("http://racecast.rfactor.net/rssfeed/RaceCastRSSFeed.xml");
//FILL ARRAY WITH XML FEED
$arr = $p->output;
function in_multi_array($search_str, $multi_array)
{
if(!is_array($multi_array))
return 0;
if(in_array($search_str, $multi_array))
return 1;
foreach($multi_array as $key => $value)
{
if(is_array($value))
{
$found = in_multi_array($search_str, $value);
if($found)
return 1;
}
else
{
if($key==$search_str)
return 1;
}
}
return 0;
}
$p2 = in_multi_array('Dr',$arr);
$driverlist="";
//START ANALYSIS OF THE ARRAY, GO DOWN LEVEL BY LEVEL
while (list($key, $val_level_1) = each($p->output)) {
if (is_array($val_level_1)) {
while (list($key_level_2, $val_level_2) = each($val_level_1)) {
if (is_array($val_level_2)) {
while (list($key_level_3, $val_level_3) = each($val_level_2)) {
if (is_array($val_level_3)) {
while (list($key_level_4, $val_level_4) = each($val_level_3)) {
if (is_array($val_level_4)) {
while (list($key_level_5, $val_level_5) = each($val_level_4)) {
if (is_array($val_level_5)) {
while (list($key_level_6, $val_level_6) = each($val_level_5)) {
if (is_array($val_level_6)) {
while (list($key_level_7, $val_level_7) = each($val_level_6)) {
if (is_array($val_level_7)) {
while (list($key_level_8, $val_level_8) = each($val_level_7)) {
if (is_array($val_level_8)) {
while (list($key_level_9, $val_level_9) = each($val_level_8)) {
if (is_array($val_level_9)) {
while (list($key_level_10, $val_level_10) = each($val_level_9)) {
if($serverfound==1 && $val_level_10old=="NAME"){
$driverlist = $driverlist.$val_level_10."<br>";
}
$val_level_10old=$val_level_10;
}
}else{
}
}
}else{
}
}
}else{
if($serverfound==1 && $key_level_7=="TIMEREMAINING" && $val_level_6old=="SESSION"){
$timeleft=$val_level_7;
$rdiff = ($timeleft);
$rmin = (floor(($rdiff/60)));
$rsec = ($rdiff - ($rmin*60));
$rsec = number_format($rsec,0);
if ($rmin > 0){
$tl= "$rmin"."m";
}
if (($rmin > 0) && ($rsec < '10')) {
$tl=$tl."0";
}
$tl=$tl.$rsec."s";
}
if($serverfound==1 && $key_level_7=="LAPSREMAINING" && $val_level_6old=="SESSION"){
$lapsleft=$val_level_7;
}
if($serverfound==1 && $key_level_7=="NUMBER" && $val_level_6old=="PLAYERS"){
$numplay=$val_level_7;
}
if($serverfound==1 && $key_level_7=="MAXIMUM" && $val_level_6old=="PLAYERS"){
$maxplay=$val_level_7-1;
}
}
}
}else{
if($val_level_6old == "NAME"){
$name=$val_level_6;
}
if($val_level_6old == "IP"){
if($val_level_6==$ip){
$serverfound=1;
$ip=$val_level_6;
}else{
$serverfound=0;
}
}
if($serverfound==1 && $val_level_6old == "EVENT"){
$track=$val_level_6;
}
if($serverfound==1 && $val_level_6old == "SERIES"){
$car=$val_level_6;
}
if($serverfound==1 && $val_level_6old == "SESSION"){
$sess=$val_level_6;
}
$val_level_6old = $val_level_6;
}
}
}else{
}
}
}else{
if($serverfound==1 && $val_level_4old=="SERVER"){
//SERVER FOUND, RENDER DATA
if ($serverhasbeenfound=1) { eval ("\$boxlinks[0].= \"".getTemplate("rfserver/rfonline")."\";"); }
//IF THE CURRENT SESSION IS THE RACE, SHOW LAPS LEFT, ELSE SHOW THE REMAINING TIME
if($sess=="Race") { eval ("\$boxlinks[0].= \"".getTemplate("rfserver/rfrace")."\";"); }
}
$val_level_4old=$val_level_4;
}
}
}else{
}
}
}
}
}
}
//SERVER NOT FOUND IN FEED
if($serverhasbeenfound != 1){ eval ("\$boxlinks[0].= \"".getTemplate("rfserver/rfoffline")."\";"); }
}
else{
//RSS FEED FILE DOES NOT EXIST
echo "<table cellspacing='0' cellpadding='0' class='table'><tr><td valign='top'>";
echo "<span class='header'>Server status:</span> ";
echo "</td><td>";
echo "<span class='server_offline'>RaceCast Feed Offline</span> ";
echo "</td></tr></table>";
}
?>
Komme einfach nicht weiter. Habs auch mit der Anleitung von Jens (http://www.jgs-xa.de/artikel_wbb_710_Eine-eigene-Box-mit-Template-PHP-Code-einbinden.html) versucht.
Bitte kann mir jemand helfen?
Vielen Dank!
Wart mal mit Deiner Bastelei :)
ich hab eben ein anderes Script bekommen, und teste es mal, gebe Dir dann heute abend noch bescheid..
Gruss Lupopa
Hi, das brauchst nur noch anpassen..
die phpDatei ist selbsterklärend.
zum Download (http://www.oldmanclan.de/wbb2/jgs_db.php?action=show&eintrags_id=10&katid=5&sid=)
Box kannst ja selbst erstellen:)
Dann mit Iframe reinladen...
Mfg
Lupopa
vielen Dank, das Probier ich doch gleich aus! :)
äh.... kannst du mir mit iFrame helfen, hab ich so noch nie gemacht!
Herzlichen Dank!!!!! :))
Du erstellst einfach eine neue Box und fügst das hier in etwa ein:
<iframe width="167" src="rFactor/rFactor.php" frameborder="no" scrolling="no" allowtransparency="true"></iframe>
Natürlich musst DU die "167" und den Pfad etc anpassen.
Wenn ich Zeit habe erstelle ich eine komplette Box mit allem drum und dran....
Das man diese einfach einbinden muss und feddisch...
Gruss Lupo
das wäre natürlich super!!!!!!! :D
Habs eingefügt, Fensteranzeige funktioniert; nur sei der Server offline.
Hab ich was in der .php falsch eingetragen?
<HTML>
<HEAD>
<meta http-equiv="refresh" content="30">
<TITLE>[GPCOS]: Server status on IP: <?php echo $ip;?></TITLE>
<LINK rel="stylesheet" href="stylesheet.css">
</HEAD>
<BODY class="page"><center>
<?php
//------============== DEDICATED SERVER SCRIPT v2.1 =======------------------
//------============ By: OPTIMO of UBERTECHNIK.com =======------------------
//---------------------------------------------------------------------------
// URL to Racecast XML Feed
$feedurl = "http://racecast.rfactor.net/rssfeed/RaceCastRSSFeed.xml";
// Tests if feed is up
if (@fclose(@fopen("$feedurl", "r")))
{
$racecastfeed = file_get_contents($feedurl);
// Searches for an indentifying part of your server name
//HIER DEN GENAUEN SERVERNAMEN EINGEBEN, GROSSKLEINSCHREIBUNG BEACHTEN!!!
$myserver = 'www.schikane.ch #DSL1';
$pos = strpos($racecastfeed, $myserver);
if ($pos === false)
{
echo "<b>Dedicated Server is <span class='server_offline'>OFFLINE.</span></b>";
}
else
{
{
$lines = file('http://racecast.rfactor.net/rssfeed/RaceCastRSSFeed.xml');
foreach ($lines as $line_num => $line)
{
// The "i" after the pattern delimiter indicates a case-insensitive search
//HIER DEN GENAUEN SERVERNAMEN EINGEBEN, GROSSKLEINSCHREIBUNG BEACHTEN!!!
if (preg_match("/www.schikane.ch #DSL1/i", $line))
{
echo strip_tags($lines[$line_num]),"<br>";
echo "<b>IP: </b>";
echo strip_tags($lines[$line_num+2]),"<br>";
echo "<b>Circuit: </b>";
echo strip_tags($lines[$line_num+4]),"<br>";
echo "<b>Serie: </b>";
echo strip_tags($lines[$line_num+5]),"<br>";
echo "<b>Session: </b>";
echo strip_tags($lines[$line_num+6]),"<br>";
echo "<b><u>Drivers Online:</u></b><br>";
$bad = $lines[$line_num-1];
$line_num = $line_num+9;
$total = count ($lines);
$driver = $lines[$line_num];
$bad2 = $lines[$line_num+1];
WHILE ($bad2 != $bad)
{
echo $driver,"<br>";
$line_num = $line_num+5;
$driver = $lines[$line_num];
$bad2 = $lines[$line_num+1];
}
}
}
}
}
}
else
{
echo "<b>Racecast RSS Feed is OFFLINE.</b>";
}
?>
</center>
</BODY>
</HTML>
Du musst den GENAUEN Namen Deines Servers eintragen.. Ihr hab sicherlich NICHT das #DSL1 im Servernamen, oder?
also statt www.schikane.ch #DSL1
nur www.schikane.ch
in beiden Feldern eintragen...
ach so, und auf großkleinschreibung achten!!!
Gruss Lupo
ach herrje, klar! Hab ich korrigiert, dachte es seien Steuerzeichen.
Es kommt trotzdem noch ne komische Meldung: schau mal nach:_
www.schikane.ch (http://www.schikane.ch)
Hip hip hurra, es funktioniert!!!! Vielen Dank, geniales Teil.
Hat an mir gelegen.
Informierst du mich, wenn du mehr so Ideen hast?
racepat :D
Hallo Lupo,
Ist echt genial, dein Script. Hast du die auf deiner HP selbst gemacht?
Sieht cool aus mit den Maps, die auf den Serveranzeigen abgebildet werden. 8)
Hättest du mir noch nen Tip, wie ich die Boxenhöhe automatisch anpassen kann? Je nach Anzahl Fahrer verändert sich die Höhe und ein Teil der Namen ist nicht mehr sichtbar. ;)
Hi,
also schau Dir mal das iframe an, da kannst die Höhe angeben... sie wird leider nicht automatisch variabel sein, oder Du probierst mal das ohne der höhe anzugeben, ob's dann automatisch die Größe ändert...
Das mit unseren Servern sind ja andere Scripts die schon fertig zum Download geben...
was das mit den rFactor angeht da will ich ma schauen, ob ich das so hinbekomme, das er auch die Übersicht der Strecke anzeigen kann....
ma seh'n...
Bin ab morgen abend erst mal bis Montag nicht da, haben Membertreffen ;)
Lupo
Hallo nochmal,
ja, mit der fixen Höhe geht es schon. :))
Viel Spass beim Treff! :D
Habs Stylemässig ein bisschen geändert. Nun mit einer Ampelanzeige.
www.schikane.ch (http://www.schikane.ch)
Schade ist nur, dass dieses Racecast nicht immer funktioniert.
Vielfach zeigt es den Server als offline an, obwohl er on ist.
Dasselbe kann ich auch auf der Racecast-Homepage feststellen.
Kann man so ein Tool ändern, dass es direkt auf dem Gameserver die Abfragen macht? Das wäre sicherer.
Powered by vBulletin® Version 4.1.5 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.