Die Exportfunktion ist ausdrücklich nicht als Backuplösung gedacht. Hier sollte auf jeden Fall auf bekannte Möglichkeiten zurückgegriffen werden! Dies ist aus dem CMS heraus schlicht nicht praktikabel möglich. Ein korrektes Backup beinhaltet schließlich nicht nur die Inhalte des CMS
Aber ja, dass diese Funktion lange Zeit nicht funktionierte, war natürlich unschön. Die Prioritäten lagen damals schlicht woanders. Und, wie gesagt, auf diese Funktion solltest du nicht angewiesen sein. Ich persönlich hätte sie schon länger rausgeworfen, aber (vielleicht glücklicherweise ) treffe ich diese Entscheidungen nicht.
Ja ich nenne das immer Backup.
Nur die Funktion ist zb. nützlich wenn man die kompletten Seiten einmal Sichern möchte um zb. diese woanders Einspielen zu können, oder halt wenn man das mal Neu Aufsetzt.
Mittlerweile weiß ich ja auch das alles was vor dem Import Vorhanden war gelöscht wird Restlos.
Also die Funktion ansich ist Praktisch und doch Nützlich finde ich, da sie wenn diese Ordnungsgemäß läuft ja ihren Zweck voll und ganz erfüllt.
Mir scheint dein Aufbau zu kompliziert. Du kannst, so wie ich das sehe, alle bis auf den ersten „Zweispaltig“-Inhalt entfernen Hier wollen wir mit späteren Versionen aber auch deutlich nachbessern.
Wie meinst du dies genau?
Hier kannst du dir das ja mal Live Anschauen, anders konnte ich das zu der 2.0er Zeit nicht umsetzen das die Ansicht so ist wie ich sie gerne hätte.
Das 2.1er konnte ich mir bis dato noch nicht so genau Anschauen, da ich erstmal das mit dem Import bewerkstelligen wollte bevor ich mich dort Austobe.
Hm, was genau meinst du damit? Ich stimme dir zwar zu, dass hier ein bisschen was verbessert werden kann, aber eine Katastrophe würde ich es dann doch nicht nennen. Hast du konkrete Probleme, die ich mir einmal ansehen kann?
Frage ich mal anders, wie würdest du bei dem jetzigen CMS das Einbinden?
<html>
<head><meta charset="utf-8" /><head>
<body>
<?php
include("webStatsInclude.php");
echo "<h1>Server Stats</h1>\n";
$serverAddress = "http://192.168.1.217:8080/feed/dedicated-server-stats.xml?code=80d680aac1ab86fd43b4273909b41ba0";
$xml = getServerStatsSimpleXML($serverAddress);
if ($xml) {
echo "<h2>Game</h2>\n";
echo "Game: " . $xml["game"] . "<br />\n";
echo "Server: " . $xml["server"] . "<br />\n";
echo "Name: " . $xml["name"] . "<br />\n";
echo "Map: " . $xml["mapName"] . "<br />\n";
echo "Money: " . $xml["money"] . "<br />\n";
echo "<br />\n";
echo "<h2>Players</h2>\n";
$slotCount = 1;
foreach ($xml->Slots->Player as $player) {
if ($player["isUsed"] == "true") {
$hours = floor($player["uptime"]/60);
$minutes = floor($player["uptime"]-($hours*60));
echo "Slot " . $slotCount . ": " . $player . " " . $hours . ":" . sprintf("%02d", $minutes) . "h " . (($player["isAdmin"] == "true")?"Admin":"") . "<br />\n";
} else {
echo "Slot " . $slotCount . ": ---Empty---<br />\n";
}
$slotCount++;
}
echo "<br />\n";
echo "<h2>Mods</h2>\n";
foreach ($xml->Mods->Mod as $mod) {
echo $mod . " / " . $mod["author"] . " / " . $mod["version"] . "<br />\n";
}
echo "<br />\n";
//-------------------------------------------------------------------------
// vehicles
echo "<h2>Vehicles</h2>\n";
echo "<table border=\"0\" cellspacing=\"7\">";
printf("<tr><th align=\"left\">Name</th><th align=\"left\">Machine Type<th><th align=\"left\">Type</th><th align=\"left\">Grain Tank Fill Level</th><th align=\"left\">Grain Tank Fruit Type</th><th align=\"left\">Fill Level</th><th align=\"left\">Fill Type</th></tr>");
foreach ($xml->Vehicles->Vehicle as $veh) {
printf("<tr><td>%s</td><td>%s<td><td>%s</td><td>%d</td><td>%s</td><td>%d</td><td>%s</td></tr>",
$veh["name"], $veh["machineType"], $veh["type"], $veh["grainTankFillLevel"], $veh["grainTankFruitType"], $veh["fillLevel"], $veh["fillType"] );
}
echo "</table>";
echo "<br />\n";
//-------------------------------------------------------------------------
// map image with vehicles
echo "<h2>Map</h2>\n";
$linkToServer = str_replace( "dedicated-server-stats.xml", "dedicated-server-stats-map.jpg", $serverAddress );
$imageQuality = 90; // 60, 75, 90
$imageSize = 1024; // 256, 512, 1024, 2048
$linkToImage = sprintf("%s&quality=%s&size=%s", $linkToServer, $imageQuality, $imageSize);
$machineIconSize = 19;
$machineIconTractors = "icons/vehicleSelectionTractorIcon_normal.png";
$machineIconTractorsHover = "icons/vehicleSelectionTractorIcon_selected.png";
$machineIconHarvesters = "icons/vehicleSelectionCombineIcon_normal.png";
$machineIconHarvestersHover = "icons/vehicleSelectionCombineIcon_selected.png";
$machineIconTools = "icons/vehicleSelectionToolIcon_normal.png";
$machineIconToolsHover = "icons/vehicleSelectionToolIcon_selected.png";
echo "<div id=\"mapContainer\" style=\"position:relative; width:1024px; height:1024px; overflow:auto\" >";
echo "<img src=\"" . $linkToImage . "\"/>";
echo "<div id=\"mapElementsContainer\" >";
$i=0;
foreach ($xml->Vehicles->Vehicle as $veh) {
$i++;
$x = ($veh["x"] + 1024.0) / (2048.0 / $imageSize);
$z = ($veh["z"] + 1024.0) / (2048.0 / $imageSize);
$x = $x - ($machineIconSize-1)/2;
$z = $z - ($machineIconSize-1)/2;
$icon = $machineIconTools;
$iconHover = $machineIconToolsHover;
$backgroundColor = "#4dafd7";
if ($veh["machineType"] == "harvesters") {
$icon = $machineIconHarvesters;
$iconHover = $machineIconHarvestersHover;
$backgroundColor = "#4dafd7";
}
else if ($veh["machineType"] == "tractors") {
$icon = $machineIconTractors;
$iconHover = $machineIconTractorsHover;
$backgroundColor = "#4dafd7";
}
printf("<div id=\"vehicle%dContainer\" style=\"position:absolute; left: %dpx; top: %dpx;\" onmouseout=\"document.getElementById('vehicle%d').style.display='none'; document.getElementById('vehicle%dImage').src='%s'; document.getElementById('vehicle%dContainer').style.zIndex=1;\" onmouseover=\"document.getElementById('vehicle%d').style.display='block'; document.getElementById('vehicle%dImage').src='%s'; document.getElementById('vehicle%dContainer').style.zIndex=10; \" >
<image id=\"vehicle%dImage\" src=\"%s\" width=\"%d\" height=\"%d\" />
<div id=\"vehicle%d\" style=\"display:none; position:absolute; bottom:0px; left:%dpx; background:%s; padding-left:8px; padding-right:8px; color: #ffffff; \">
<nobr>%s</nobr>
</div>
</div>", $i, $x, $z, $i, $i, $icon, $i, $i, $i, $iconHover, $i, $i, $icon, $machineIconSize, $machineIconSize, $i, $machineIconSize+1, $backgroundColor, $veh["name"]);
}
echo "</div>";
echo "</div>";
} else {
echo "<p>Server stats feed unavailable</p>\n";
}
echo "<br />\n";
echo "Powered By <a href=\"http://www.giants-software.com/\">GIANTS Software</a>\n";
?>
</body>
</html>
Alles anzeigen
<?php
/**
* Copyright (c) 2008-2013 GIANTS Software GmbH, Confidential, All Rights Reserved.
* Copyright (c) 2003-2013 Christian Ammann and Stefan Geiger, Confidential, All Rights Reserved.
*/
function loadFileHTTPSocket($domain, $port, $path, $timeout) {
$fp = fsockopen($domain, $port, $errno, $errstr, $timeout);
if ($fp) {
// Make request
$out = "GET ". $path . " HTTP/1.0\r\n";
$out .= "Host: ". $domain . "\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
// Get response
$resp = "";
while (!feof($fp)) {
$resp .= fgets($fp, 256);
}
fclose($fp);
// Check status is 200
if(preg_match("/HTTP\/1\.\d\s(\d+)/", $resp, $matches) && $matches[1] == 200) {
// Load xml as object
$parts = explode("\r\n\r\n", $resp);
$temp = "";
for ($i=1;$i<count($parts);$i++) {
$temp .= $parts[$i];
}
return $temp;
}
}
return false;
}
function getServerStatsSimpleXML($url) {
$urlParts = parse_url($url);
$cacheFile = "dedicated-server-stats.cached";
$cacheTimeout = 60*2;
if(file_exists($cacheFile) && filemtime($cacheFile) > (time() - ($cacheTimeout) + rand(0, 10))) {
$xmlStr = file_get_contents($cacheFile);
} else {
error_reporting(0);
$xmlStr = loadFileHTTPSocket($urlParts["host"], $urlParts["port"], $urlParts["path"] . "?" . $urlParts["query"], 4);
error_reporting(E_ALL);
if ($xmlStr) {
$fp = fopen($cacheFile, "w");
fwrite($fp, $xmlStr);
fclose($fp);
}
}
return simplexml_load_string($xmlStr);
}
?>
Alles anzeigen
Ich habe ihn zwar mittlerweile zum Laufen gebracht.
Aber dennoch geht zb. das nicht Gleichzeitig im Hauptbereich und Seitenleiste zugleich, da scheint das CMS irgendwas nicht Richtig umzusetzen zwecks der Einbindung. ![]()