Hiho werte Community
Ich habe seid längerem nach einer Möglichkeit gesucht das auf unserem Board angezeigt wird ob der Spiele-Server Online ist!
Da Bioware dafür selber keine Scripts stellt oder die Ip rausgibt oder gar eine API worauf man was aufbauen könnte wurde mal ein Php Script geschrieben indem einfach die Seite ausgelesen wird.
Nach dem Einrichten ( Php Noob) habe ich es zum laufen gebracht!
Css für das Aussehen war kein Problem!
Nun habe ich eben gesehen das der Server in Wartung ist! Also sprich Offline! Dieses wird auch angezeigt ABER ich bekomme trotzdem ein Fehler!
Und deswegen wende ich mich damit an euch!.
Der Fehler "PHP notice in file /var/www/vhosts/xxxxx/xxxxx/serverstatus/swtor-server-widget.php (72): Undefined index: population"
Dieses Script Zeigt an welchen Server man gewählt hat und daraus liest er dann aus!
Offline / Online erkennt er richtig und wirft den Wert auch aus! Auch um was für einen Server es sich handelt (PVE,PVP,RP etc.)
Bei der Population erkennt er es auch richtig ABER wenn der Server Down ist gibt es ja keine Spieler und da hakt es!
Dort bekomme ich den Fehler!
Ich weiß nun das im Grunde zwar abgefragt wird was auf der Seite steht aber er weiß nicht was er ausgeben soll wenn der Server nicht vorhanden ist!
Sprich Offline = Population nicht vorhanden!
In der Php gibt es die Wert von Population Leicht - Voll.
Ich weiss nicht wie ich da ansetzten soll um das zu richten!
So schaut es aus wenn alles richtig läuft
und das passiert wenn der Server Offline ist
Hier mal die "swtor-server-widget.php"
<?php
/**
* @author Dan Kraus
* @link http://github.com/dankraus/Star-Wars-The-Old-Republic-Server-Status-Widget
@email dskraus@gmail.com
* @copyright Creative Common Attribution-NonCommercial 3.0: http://creativecommons.org/licenses/by-nc/3.0/
Use as you wish non-commercially, but link back to the github repo please at: http://github.com/dankraus/Star-Wars-The-Old-Republic-Server-Status-Widget for credit.
If you are interested in using it commercially, contact me
*/
//SERVER-SET-UP-CONFIG
$serverName = "the ebon hawk"; //server name in lower case (spaces are ok)
$url = "http://www.swtor.com/server-status"; //we hit the server status page located here to get our server info
$cache_file_name = "server-status-cache.html"; //cache the server status page to this file name. It is saved in the same folder as this file
$cache_time_life = '300';//seconds to cache file
include_once('simple_html_dom.php');
$data = new simple_html_dom();
//Check to see if cache file exists. if it doesn't exist or we've exceed the cache life length, get fresh data from the source
//else, load it from the cached file
if( !(file_exists($cache_file_name)) || time() - filemtime($cache_file_name) >= $cache_time_life ) {
$data->load_file($url);
$data->save($cache_file_name);
}
else{
$data->load_file($cache_file_name);
}
//Grab the div for this server on server status page.
$serverElm = $data->find("div[data-name=$serverName]", 0);
$server["name"] = $serverElm->find("div.name",0)->innertext; //name of server
$server["status"] = $serverElm->getAttribute('data-status'); //status - Online/Offline
$server["type"] = $serverElm->getAttribute('data-type'); //type - PVP, PVE etc
$server["language"] = $serverElm->getAttribute('data-language'); //timezone - east, west, europe
switch($serverElm->getAttribute('data-population')){ //1,2,3,4,5
case '1':
$server["population"] = 'Leicht';
break;
case '2':
$server["population"] = 'Standard';
break;
case '3':
$server["population"] = 'Schwer';
break;
case '4':
$server["population"] = 'sehr Schwer';
break;
case '5':
$server["population"] = 'Voll';
break;
}
?>
<div id="swtor-serverStatus-widget">
<div class="container">
<div class="name"><?php echo $server["name"] .' ('.$server["type"].', '.$server["language"].')';?></div>
<div class="status <?php echo $server["status"];?>"><strong>Status:</strong> <?php echo $server["status"];?></div>
<div class="population"><strong>Population:</strong> <?php echo $server["population"];?></div>
</div>
</div>
Alles anzeigen
und die dazu gehörige "simple_html_dom.php" Umbenannt in txt als Anhang da mir nur 10000 Zeichen zur Verfügung standen und Php als Anhang nicht erlaubt ist.
Wie gesagt ich bin was Php angeht ein Absoluter Neuling und weiß nicht wie ich es umsetzten kann das dann einfach Angezeigt wird Population "Leer" oder nicht vorhanden.
Ich habe auch per Tante Google nach einer Lösung gesucht!
Es wird ja wie gesagt abgefragt Server On/Offline. Das wird ausgegeben mit Up oder Down
Population wird Abgefragt und dann durch die Werte "Leicht bis Voll" angegeben.
Aber wie Frage ich in dieser Php ab "Offline = Population Null" ?
Ich bin über jede Hilfe Dankbar. Jede Erklärung ist auch Willkommen aber habt Nachsicht mit mir Ich brauche Verständliches Deutsch zum Umsetzten!
Ich will hier auch keine Lösung auf dem Silberteller haben!
Ich Danke schonmal für jede Hilfe die hier kommt
Gruß mcburn