HTML server list now allows for refreshing every 10+ seconds and filtering by game server version

This commit is contained in:
Tom Reynolds 2012-08-07 19:19:06 +00:00
parent 30f1c47dd9
commit f23a216087

View File

@ -12,6 +12,9 @@
// allow for automatic refreshing in web browser by appending '?refresh=VALUE', where VALUE is a numeric value in seconds.
define( 'REFRESH_INTERVAL', (int) $_GET['refresh'] );
// allow for filtering by gameserver version
define( 'FILTER_VERSION', $_GET['version'] );
// consider replacing this by a cron job
cleanupServerList();
@ -30,8 +33,12 @@
// Representation starts here
header( 'Content-Type: text/html; charset=utf-8' );
if ( REFRESH_INTERVAL != 0 ) {
if ( REFRESH_INTERVAL <= 10 ) {
header( 'Refresh: 10:' );
} else {
header( 'Refresh: ' . REFRESH_INTERVAL );
}
}
echo '<!DOCTYPE HTML>' . PHP_EOL;
echo '<html>' . PHP_EOL;
echo ' <head>' . PHP_EOL;
@ -60,11 +67,14 @@
echo ' </tr>' . PHP_EOL;
foreach( $all_servers as $server )
{
# Filter by version if requested
if ( FILTER_VERSION == $server['glestVersion'] OR FILTER_VERSION == '' )
{
echo "\t\t\t" . '<tr>' . PHP_EOL;
// glestVersion
printf( "\t\t\t\t<td>%s</td>%s", htmlspecialchars( $server['glestVersion'], ENT_QUOTES ), PHP_EOL );
printf( "\t\t\t\t<td><a href=\"?version=%s\">%s</a></td>%s", htmlspecialchars( $server['glestVersion'], ENT_QUOTES ), htmlspecialchars( $server['glestVersion'], ENT_QUOTES ), PHP_EOL );
// status
$status_code = $server['status'];
@ -98,7 +108,7 @@
$status_title = 'unknown';
$status_class = 'unknown';
}
printf( "\t\t\t\t<td class=\"%s\">%s</td>%s", $status_class, htmlspecialchars( $status_title, ENT_QUOTES ), PHP_EOL );
printf( "\t\t\t\t<td title=\"%s\" class=\"%s\">%s</td>%s", $server['status'], $status_class, htmlspecialchars( $status_title, ENT_QUOTES ), PHP_EOL );
// country
if ( $server['country'] !== '' ) {
@ -148,12 +158,30 @@
echo "\t\t\t" . '</tr>' . PHP_EOL;
}
}
echo ' </table>' . PHP_EOL;
echo ' <p>' . PHP_EOL;
echo ' <br />' . PHP_EOL;
echo ' </p>' . PHP_EOL;
if ( FILTER_VERSION != '' )
{
echo "\t\t<p>Filters active:</p>" . PHP_EOL;
echo "\t\t<ul>" . PHP_EOL;
printf( "\t\t\t<li>Version <a href=\"?\">%s</a></li>%s", htmlspecialchars( FILTER_VERSION, ENT_QUOTES ), PHP_EOL );
echo "\t\t</ul>" . PHP_EOL;
}
echo ' <p>Usage:</p>' . PHP_EOL;
echo ' <ul>' . PHP_EOL;
echo ' <li>You can have this page auto <a href="?refresh=60">refresh every 60 seconds</a> by appending <code>?refresh=60</code> to the URL. Minimum refresh time is 10 seconds.</li>' . PHP_EOL;
echo ' <li>The parameters used by the masterserver API will display when you move your mouse pointer over any of the table headings.</li>' . PHP_EOL;
echo ' </ul>' . PHP_EOL;
echo ' </body>' . PHP_EOL;
echo '</html>' . PHP_EOL;
unset( $all_servers );
unset( $server );
echo <<<END
</table>
</body>
</html>
END;
?>