noc-screen/www/screenRender.php

136 lines
4.0 KiB
PHP

<?php
header("Expires: 0");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
if(!isset($_REQUEST['hostname'])) {
$hostname = "host not known";
} else {
$hostname = $_REQUEST['hostname'];
}
$settings = json_decode(file_get_contents("../settings.json"), true);
if(!isset($settings['screens'][$hostname])) {
header("Location: /screen/?hostname=$hostname");
exit;
} elseif (!isset($settings['screens'][$hostname]['urls']) || (sizeof($settings['screens'][$hostname]['urls'])<1)) {
header("Location: /screen/?hostname=$hostname");
exit;
} else {
date_default_timezone_set("UTC");
$urls = $settings['screens'][$hostname]['urls'];
$urlk = array_keys($urls);
$urlcount = sizeof($urls);
}
if (isset($settings['screens'][$hostname]['masterRefresh'])) {
$masterRefresh = $settings['screens'][$hostname]['masterRefresh'];
} elseif (isset($settings['defaults']['masterRefresh'])) {
$masterRefresh = $settings['defaults']['masterRefresh'];
} else {
$masterRefresh = '86400';
}
if (isset($settings['screens'][$hostname]['tabTime'])) {
$tabTime = intval($settings['screens'][$hostname]['tabTime']) + 2;
} elseif (isset($settings['defaults']['tabTime'])) {
$tabTime = intval($settings['defaults']['tabTime']) + 2;
} else {
$tabTime = '30';
}
if (isset($settings['screens'][$hostname]['tabRefresh'])) {
$tabRefresh = $settings['screens'][$hostname]['tabRefresh'];
} elseif (isset($settings['defaults']['tabRefresh'])) {
$tabRefresh = $settings['defaults']['tabRefresh'];
} else {
$tabRefresh = true;
}
?>
<html>
<head>
<title>NOC Screen</title>
<meta http-equiv="refresh" content="<?php echo $masterRefresh ?>">
<style>
body {overflow: hidden;}
</style>
<script>
<!--
<?php
for ($ui = 1; $ui <= $urlcount; $ui++) {
echo "url$ui = '".$urlk[$ui-1]."';\n";
}
echo "CURPAGE = 'screen1';\n";
echo "function StartTimers() {\n";
for ($ui = 1; $ui <= $urlcount; $ui++) {
echo " frame$ui.location = url$ui;\n";
}
echo " setInterval('ScreenRefresh()',".$tabTime."000);\n";
echo " setTimeout('ScreenRefresh()',2000);\n";
echo "}\n";
echo "function ScreenRefresh() {\n";
echo " console.log(CURPAGE);\n";
if ($urlcount>1) {
for ($ui = 1; $ui <= $urlcount; $ui++) {
echo " screen$ui.style = 'display: none;';\n";
}
echo " if (CURPAGE == 'screen1') {\n";
echo " setTimeout(\"screen1.style = 'display: block;';\",2000);\n";
if (isset($urls[$urlk[0]]['tabRefresh']) && $urls[$urlk[0]]['tabRefresh']) {
echo " frame1.location = url1;\n";
} elseif (!isset($urls[$urlk[0]]['tabRefresh']) && $tabRefresh) {
echo " frame1.location = url1;\n";
}
echo " CURPAGE = 'screen2';\n";
for ($ui = 2; $ui <= $urlcount; $ui++) {
echo " } else if (CURPAGE == 'screen$ui') {\n";
echo " setTimeout(\"screen$ui.style = 'display: block;';\",2000);\n";
if (isset($urls[$ui-1]['tabRefresh']) && $urls[$ui-1]['tabRefresh']) {
echo " frame$ui.location = url$ui;\n";
} elseif (!isset($urls[$ui-1]['tabRefresh']) && $tabRefresh) {
echo " frame$ui.location = url$ui;\n";
}
echo " CURPAGE = 'screen".($ui+1)."';\n";
}
echo " }\n if (CURPAGE == 'screen".($urlcount+1)."') { CURPAGE = 'screen1'; }\n";
} else {
if (isset($urls[$urlk[0]]['tabRefresh']) && $urls[$urlk[0]]['tabRefresh']) {
echo " frame1.location = url1;\n";
} elseif (!isset($urls[$urlk[0]]['tabRefresh']) && $tabRefresh) {
echo " frame1.location = url1;\n";
} else {
echo " return;\n";
}
}
echo "}\n";
?>
-->
</script>
</head>
<body onload="StartTimers()" leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0>
<div id="sound_element" style="display:none;"></div>
<?php
for ($ui = 1; $ui <= $urlcount; $ui++) {
echo "<div id='screen$ui'>\n";
echo " <iframe src='loading.html' name='frame$ui' id='frame$ui' width=100% height=100% frameborder=0></iframe>\n";
echo "</div>\n";
}
?>
</body>
</html>