1
0
Fork 0

add faq and 404

This commit is contained in:
Christopher 2021-11-01 07:10:51 +01:00
parent ccd068a241
commit 312a481b55
12 changed files with 293 additions and 7 deletions

View File

@ -7,8 +7,8 @@
{
global $RUNTIME;
$topRegionStatement = $RUNTIME['PDO']->prepare("SELECT regions.RegionName AS Name, regions.RegionUUID AS UUID, regions.RegionImage AS Image, regions.RegionOwner AS OwnerID, users.UserName AS OwnerName, onlinetimes.RegionLastSeen AS LastSeen, onlinetimes.RegionOnlineUser AS OnlineCount FROM regions INNER JOIN onlinetimes ON regions.RegionUUID = onlinetimes.RegionUUID INNER JOIN users ON regions.RegionOwner = users.UserUUID WHERE onlinetimes.RegionLastSeen > ? ORDER BY OnlineCount DESC LIMIT ".$startRegion.", ".$totalRegionCount);
$topRegionStatement->execute(array(time() - 320));
$topRegionStatement = $RUNTIME['PDO']->prepare("SELECT regions.RegionName AS Name, regions.RegionUUID AS UUID, regions.RegionImage AS Image, regions.RegionOwner AS OwnerID, users.UserName AS OwnerName, onlinetimes.RegionLastSeen AS LastSeen, onlinetimes.RegionOnlineUser AS OnlineCount, regions.RegionVersion AS RegionVersion, regions.RegionHostname AS Hostname, regions.RegionPort AS Port FROM regions INNER JOIN onlinetimes ON regions.RegionUUID = onlinetimes.RegionUUID INNER JOIN users ON regions.RegionOwner = users.UserUUID WHERE onlinetimes.RegionLastSeen > ? ORDER BY OnlineCount DESC LIMIT ".$startRegion.", ".$totalRegionCount);
$topRegionStatement->execute(array(time() - 900));
while($row = $topRegionStatement->fetch())
{
@ -25,5 +25,21 @@
{
return array_shift($this->allRegions);
}
public static function setOnlineTime($uuid)
{
global $RUNTIME;
$topRegionStatement = $RUNTIME['PDO']->prepare("UPDATE onlinetimes SET RegionLastSeen = ? WHERE RegionUUID = ?");
$topRegionStatement->execute(array(time(), $uuid));
}
public static function removeRegion($uuid)
{
global $RUNTIME;
$topRegionStatement = $RUNTIME['PDO']->prepare("DELETE FROM regions WHERE RegionUUID = ?");
$topRegionStatement->execute(array($uuid));
}
}
?>

View File

@ -19,6 +19,18 @@ function right($str, $length)
return substr($str, -$length);
}
function ping($host, $port)
{
$waitTimeoutInSeconds = 2;
if($fp = @fsockopen($host,$port,$errCode,$errStr,$waitTimeoutInSeconds))
{
fclose($fp);
return true;
}
return false;
}
function getDataFromHTTP($URL, $contend = "", $requestTyp = "application/text")
{
try
@ -40,13 +52,45 @@ function sendInworldIM($fromUUID, $toUUID, $fromName, $targetURL, $text)
getDataFromHTTP($targetURL, $rawXML, "text/xml");
}
function getAssetServerURI($homeURL, $userID)
{
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>get_server_urls</methodName><params><param><value><struct><member><name>userID</name><value><string>'.$userID.'</string></value></member></struct></value></param></params></methodCall>';
$optionen = stream_context_create(array('http' => array('timeout' => 1, 'method' => 'POST', 'header' => 'Content-Type: application/xml', 'content' => $xml)));
$result = file_get_contents($homeURL, false, $optionen);
$servers = new SimpleXMLElement($result);
foreach ($servers->params->param->value->struct[0] as $serverEntry)
{
if($serverEntry->name == 'SRV_AssetServerURI')
return $serverEntry->value->string->__toString();
}
}
function getAssetImage($assetServer, $assetUUID)
{
global $DATA;
chdir("/var/www/html");
if(!is_file('./data/RegionImages/'.$assetUUID.'.png'))
{
$DATA['WGETCMD'] = '/usr/bin/wget '.$assetServer.'assets/'.$assetUUID.'/data -O /tmp/'.$assetUUID;
$DATA['MPEGCMD'] = '/usr/bin/ffmpeg -i /tmp/'.$assetUUID.' ./data/RegionImages/'.$assetUUID.'.png';
$DATA['WGET'] = shell_exec($DATA['WGETCMD']);
$DATA['FFMPEG'] = shell_exec($DATA['MPEGCMD']);
}
return $assetUUID.'.png';
}
function getTopRegionHTML($row)
{
if(!file_exists("./data/RegionImages/".$row['Image']))
$row['Image'] = "notFound.jpg";
if(!isset($row['Description']))
$row['Description'] = "(Es wurde noch keine Beschreibung Hinterlegt.)";
$row['Description'] = "(Es wurde noch keine Beschreibung hinterlegt.)";
return '<section id="banner"><div class="content"><header><h1>'.substr($row['Name'], 0, 50).'</h1><p>Online: '.$row['OnlineCount'].'</p></header><p>'.substr($row['Description'], 0, 800).'</p><ul class="actions"><a href="info/'.$row['UUID'].'.html" class="button big html5lightbox">Menr Infos</a></ul></div>
<span class="image object"><img src="./data/RegionImages/'.$row['Image'].'" alt="Region Image '.substr($row['Name'], 0, 50).'" /></span></section>';
@ -58,7 +102,7 @@ function getRegionHTML($row)
$row['Image'] = "notFound.jpg";
if(!isset($row['Description']))
$row['Description'] = "(Es wurde noch keine Beschreibung Hinterlegt.)";
$row['Description'] = "(Es wurde noch keine Beschreibung hinterlegt.)";
return '<article><a href="index.php?page=regionInfo&id='.$row['UUID'].'" class="image"><img src="./data/RegionImages/'.$row['Image'].'" alt="Region Image '.substr($row['Name'], 0, 50).'" /></a>
<h3>'.substr($row['Name'], 0, 50).'</h3><p>Online: '.$row['OnlineCount'].'</p><p>'.substr($row['Description'], 0, 300).'</p><ul class="actions"><li><a href="info/'.$row['UUID'].'.html" class="button html5lightbox">Menr Infos</a></li></ul></article>';

16
cron/01-check_region.php Normal file
View File

@ -0,0 +1,16 @@
<?php
$topRegionStatement = $RUNTIME['PDO']->prepare("SELECT regions.RegionName AS Name, regions.RegionUUID AS UUID, regions.RegionImage AS Image, regions.RegionOwner AS OwnerID, users.UserName AS OwnerName, onlinetimes.RegionLastSeen AS LastSeen, onlinetimes.RegionOnlineUser AS OnlineCount, regions.RegionVersion AS RegionVersion, regions.RegionHostname AS Hostname, regions.RegionPort AS Port FROM regions INNER JOIN onlinetimes ON regions.RegionUUID = onlinetimes.RegionUUID INNER JOIN users ON regions.RegionOwner = users.UserUUID WHERE onlinetimes.RegionLastSeen < ? ORDER BY LastSeen ASC");
$topRegionStatement->execute(array(time() - 600));
while($row = $topRegionStatement->fetch())
{
if(ping($row['Hostname'], $row['Port']))
{
RegionManager::setOnlineTime($row['UUID']);
continue;
}
RegionManager::removeRegion($row['UUID']);
}
?>

10
cron/02-add_region.php Normal file
View File

@ -0,0 +1,10 @@
<?php
$imageDownloadStatement = $RUNTIME['PDO']->prepare("SELECT QueueData FROM queue WHERE QueueType = 'DownloadImage'");
$imageDownloadStatement->execute(array());
while($row = $imageDownloadStatement->fetch())
{
print_r(json_decode($row['QueueData']));
}
?>

View File

@ -0,0 +1,16 @@
<?php
$topRegionStatement = $RUNTIME['PDO']->prepare("SELECT regions.RegionName AS Name, regions.RegionUUID AS UUID, regions.RegionImage AS Image, regions.RegionOwner AS OwnerID, users.UserName AS OwnerName, onlinetimes.RegionLastSeen AS LastSeen, onlinetimes.RegionOnlineUser AS OnlineCount, regions.RegionVersion AS RegionVersion, regions.RegionHostname AS Hostname, regions.RegionPort AS Port FROM regions INNER JOIN onlinetimes ON regions.RegionUUID = onlinetimes.RegionUUID INNER JOIN users ON regions.RegionOwner = users.UserUUID WHERE onlinetimes.RegionLastSeen < ? ORDER BY LastSeen ASC");
$topRegionStatement->execute(array(time() - 600));
while($row = $topRegionStatement->fetch())
{
if(ping($row['Hostname'], $row['Port']))
{
RegionManager::setOnlineTime($row['UUID']);
continue;
}
RegionManager::removeRegion($row['UUID']);
}
?>

View File

View File

View File

@ -7,11 +7,9 @@ include_once("classen/HTML.php");
include_once("classen/RegionManager.php");
$RUNTIME = array();
$RUNTIME['OPENSIM'] = new OpenSim();
include_once("config.php");
if ($handle = opendir('./cron/'))
{
while (false !== ($entry = readdir($handle)))

View File

@ -1,3 +1,9 @@
<?php
echo "Seite nicht gefunden! Error 404";
header("HTTP/1.1 404 Not Found");
$HTML = new HTML();
$HTML->setHTMLTitle("Seite nicht gefunden.");
$HTML->importHTML("style/default/404.html");
$HTML->build();
echo $HTML->ausgabe();
?>

8
pages/faq.php Normal file
View File

@ -0,0 +1,8 @@
<?php
$HTML = new HTML();
$HTML->setHTMLTitle("Übersicht");
$HTML->importHTML("style/default/faq.html");
$HTML->build();
echo $HTML->ausgabe();
?>

72
style/default/404.html Normal file
View File

@ -0,0 +1,72 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenSimulator Land - %%EchoTitle%%</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<!-- Favicons -->
<link href="./style/default/WebsiteIcon.ico" rel="icon">
<link href="./style/default/WebsiteIcon.ico" rel="apple-touch-icon">
<!-- CSS Files -->
<link rel="stylesheet" href="./style/default/assets/css/main.css" />
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<section>
<h1>Diese Seite wurde nicht gefunden!</h1>
</section>
</div>
</div>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
<!-- Search -->
<section id="search" class="alt">
<form method="post" action="#">
<input type="text" name="query" id="query" placeholder="Search" />
</form>
</section>
<!-- Menu -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="start.html">Übersicht</a></li>
<li><a href="flags.html">Kategorien</a></li>
<li><a href="beacon.html">Aufsteller</a></li>
<li><a href="search.html">Suche</a></li>
<li><a href="faq.html">FAQ</a></li>
</ul>
</nav>
<nav id="menu">
<ul>
<li><a href="imprint.html">Impressum</a></li>
<li><a href="privacy.html">Datenschutzerklärung</a></li>
</nav>
</div>
</div>
</div>
<!-- Scripts -->
<script src="./style/default/assets/js/jquery.min.js"></script>
<script src="./style/default/assets/js/browser.min.js"></script>
<script src="./style/default/assets/js/breakpoints.min.js"></script>
<script src="./style/default/assets/js/util.js"></script>
<script src="./style/default/assets/js/main.js"></script>
<script>
jQuery(".html5lightbox").html5lightbox();
</script>
</body>
</html>

100
style/default/faq.html Normal file
View File

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<title>OpenSimulator Land - %%EchoTitle%%</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<!-- Favicons -->
<link href="./style/default/WebsiteIcon.ico" rel="icon">
<link href="./style/default/WebsiteIcon.ico" rel="apple-touch-icon">
<!-- CSS Files -->
<link rel="stylesheet" href="./style/default/assets/css/main.css" />
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<section style="border-top: none">
<h1>FAQ</h1><br>
<p>Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula.</p>
<p>Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.</p>
<hr class="major" />
<h2>Welche Regionen werden hier gelistet?</h2>
<p>Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.</p>
<hr class="major" />
<h2>Wie kann ich meine Region hinzufügen?</h2>
<p>Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.</p>
<hr class="major" />
<h2>Wie kann ich Objekte zur Suche hinzufügen?</h2>
<p>Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.</p>
<hr class="major" />
<h2>Kann ich die Suchfunktion für mein Grid benutzen?</h2>
<p>Donec eget ex magna. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fergiat. Pellentesque in mi eu massa lacinia malesuada et a elit. Donec urna ex, lacinia in purus ac, pretium pulvinar mauris. Curabitur sapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam tristique libero eu nibh porttitor fermentum. Nullam venenatis erat id vehicula viverra. Nunc ultrices eros ut ultricies condimentum. Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in lectus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non lorem sit amet elit placerat maximus. Pellentesque aliquam maximus risus, vel sed vehicula. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet dolor mattis sagittis. Praesent rutrum sem diam, vitae egestas enim auctor sit amet. Pellentesque leo mauris, consectetur id ipsum sit amet, fersapien risus, commodo eget turpis at, elementum convallis elit. Pellentesque enim turpis, hendrerit tristique lorem ipsum dolor.</p>
</section>
</div>
</div>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
<!-- Search -->
<section id="search" class="alt">
<form method="post" action="#">
<input type="text" name="query" id="query" placeholder="Search" />
</form>
</section>
<!-- Menu -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="start.html">Übersicht</a></li>
<li><a href="flags.html">Kategorien</a></li>
<li><a href="beacon.html">Aufsteller</a></li>
<li><a href="search.html">Suche</a></li>
<li><a href="faq.html">FAQ</a></li>
</ul>
</nav>
<nav id="menu">
<ul>
<li><a href="imprint.html">Impressum</a></li>
<li><a href="privacy.html">Datenschutzerklärung</a></li>
</nav>
</div>
</div>
</div>
<!-- Scripts -->
<script src="./style/default/assets/js/jquery.min.js"></script>
<script src="./style/default/assets/js/browser.min.js"></script>
<script src="./style/default/assets/js/breakpoints.min.js"></script>
<script src="./style/default/assets/js/util.js"></script>
<script src="./style/default/assets/js/main.js"></script>
<script>
jQuery(".html5lightbox").html5lightbox();
</script>
</body>
</html>