|
From: <ma...@sc...> - 2006-05-01 15:17:10
|
Update of /cvsroot/meshdb/www/db2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18917/www/db2 Modified Files: index.php Log Message: added link to export nodes to google earth Index: index.php =================================================================== RCS file: /cvsroot/meshdb/www/db2/index.php,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- index.php 16 Feb 2005 23:54:50 -0000 1.13 +++ index.php 1 May 2006 15:17:01 -0000 1.14 @@ -1,374 +1,376 @@ -<? - include("config.php"); - /* Use the imgsz query arg if it is there */ - $len = 0; - - $DEFAULTLEN = $PREF["imgsz"]; - - if (isset($_GET["imgsz"])) - $len = intval($_GET["imgsz"]); - if ($len < 50) $len = $DEFAULTLEN; - - $db = mysql_connect($MYSQLHOST, $MYSQLUSER, $MYSQLPASS); - mysql_select_db($MYSQLDB, $db) - or die(mysql_error($db)); - $result = mysql_query("SELECT max(unix_timestamp(updated)) from admin", $db) - or die(mysql_error($db)); - $row = mysql_fetch_row($result); - $updated = max(intval($row[0]), $PREF["_moddate"]); - header("Last-Modified: ".gmdate("D, d M Y H:i:s", $updated)." GMT"); -?> - -<html> -<head> -<link rel="stylesheet" href="<?=$PREF["stylesheet"]?>" type="text/css"> -<link rel="icon" href="favicon.ico"> -<title>Brisbane Mesh node database</title> -<style type="text/css"> - td { font-size: smaller; } - td.ID { text-align: right; } - td.Status { text-align: center; } - td.Ifs { text-align: right; } - td.Age { text-align: right; } - td.Map { color: red; } -</style> -</head> -<body> - -<img align=center src="../img/mesh-small.gif" - width=107 height=68 alt="Brisbane Mesh"> - -<h1>Brisbane Mesh node database</h1> - -<p> -This is a simple database for people operating or interested in operating -wireless network nodes in Brisbane. -If you're interested, please create a node for yourself. -</p> - -<h2>Node database</h2> - -<p> -Currently there <? - $result = mysql_query("SELECT count(*) from admin", $db) - or die(mysql_error($db)); - $row = mysql_fetch_row($result); - $nentries = intval($row[0]); - if ($nentries == 1) - printf("is 1 lonely node"); - else - printf("are $nentries nodes"); -?> and <? - $result = mysql_query("SELECT count(*) - FROM netloc - WHERE status = 'full' - AND active", $db) - or die(mysql_error($db)); - $row = mysql_fetch_row($result); - $nentries = intval($row[0]); - if ($nentries == 1) - printf("1 active interface"); - else - printf("$nentries active interfaces"); -?> (<? - $result = mysql_query("SELECT count(*) from netloc", $db) - or die(mysql_error($db)); - $row = mysql_fetch_row($result); - printf(strval($row[0])." total"); -?>). - -<form method=get action="search.php"> -Node search: <input name="q"> -</form> - -<ul><li><strong><? if (!$READONLY) { - ?><a href="create.php">Create a new node entry</a><? - } else { - ?>Database is in READ-ONLY (development) mode<? - } ?></strong></li></ul> - -<map name="summarymap"> -<? -/* figure out the limits of the map */ -$result = mysql_query("SELECT" - ." min(e) as mine," - ." min(n) as minn," - ." max(e) as maxe," - ." max(n) as maxn" - ." FROM physloc, admin" - /* limit to a 200km radius about UQ */ - ." WHERE (e-501372)*(e-501372)+(n-6958178)*(n-6958178) < 200000*200000" - ." AND admin.nodeid = physloc.nodeid" - ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"], - $db) - or die(mysql_error($db)); -$row = mysql_fetch_assoc($result); -$mwid = max(max( $row["maxn"]-$row["minn"] , $row["maxe"]-$row["mine"] ), 1); -$mapscale = $len/$mwid/1.1; -$mapn = ($row["minn"]+$row["maxn"])/2; -$mape = ($row["mine"]+$row["maxe"])/2; -$mapargb = "w=${len}&h=${len}&s=${mapscale}&n=${mapn}&e=${mape}&updated=${updated}&maxage=".$PREF["maxnodeage"]; - -$result = mysql_query("SELECT" - ." admin.nodeid," - ." nodename," - ." n," - ." e" - ." FROM admin, physloc" - ." WHERE admin.nodeid = physloc.nodeid" - ." AND n is not null" - ." AND e is not null" - ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"], - $db) - or die(mysql_error($db)); -while ($row = mysql_fetch_assoc($result)) { - if ($row["n"] && $row["e"]) { - $x = intval($len/2 + (doubleval($row["e"]) - $mape) * $mapscale); - $y = intval($len/2 - (doubleval($row["n"]) - $mapn) * $mapscale); - if ($x >= 0 && $y >= 0 && $x < $len && $y < $len) { - echo "<area href=\"view.php?nodeid=".$row["nodeid"]."\""; - echo " alt=\"".htmlspecialchars($row["nodename"])."\""; - echo " shape=circle coords=\"$x,$y,8\">\n"; - } - } -} -?> -</map> - -<map name="networkmap"> -<? -$result = mysql_query("SELECT" - ." admin.nodeid AS nodeid," - ." nodename," - ." e," - ." n" - ." FROM admin, netloc, physloc" - ." WHERE (netloc.nodeid = admin.nodeid" - ." OR netloc.peerid = admin.nodeid)" - ." AND physloc.nodeid = admin.nodeid" - ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"] - ." GROUP BY nodeid", - $db) - or die(mysql_error($db)); -while ($row = mysql_fetch_assoc($result)) { - if ($row["n"] && $row["e"]) { - $x = intval($len/2 + (doubleval($row["e"]) - $mape) * $mapscale); - $y = intval($len/2 - (doubleval($row["n"]) - $mapn) * $mapscale); - if ($x >= 0 && $y >= 0 && $x < $len && $y < $len) { - echo "<area href=\"view.php?nodeid=".$row["nodeid"]."\""; - echo " alt=\"".htmlspecialchars($row["nodename"])."\""; - echo " shape=circle coords=\"$x,$y,8\">\n"; - } - } -} -?> -</map> - -<table class="summary"> - -<tr valign=top> -<td><table> -<? - $havecmp = 0; - $cols = array("ID", "Name", "Suburb", "Map", "Ifs", "Status", "Age"); - if ($PREF["myid"] > 0) { - $result = mysql_query("SELECT e,n" - ." FROM physloc" - ." WHERE nodeid=".intval($PREF["myid"])) - or die(mysql_error($db)); - $row = mysql_fetch_assoc($result); - if ($row) { - $cmpe = $row["e"]; - $cmpn = $row["n"]; - if ($cmpe > 0 && $cmpn > 0) { - $cols[] = "Distance"; - $havecmp = 1; - } - } - } -?> -<tr><th class="major" colspan=<?=count($cols)?>>Current nodes</th></tr> -<tr> -<? - if (isset($_GET["orderkey"])) - $orderkey = $_GET["orderkey"]; - if (isset($_GET["orderdir"])) - $orderdir = $_GET["orderdir"]; - - /* fallback on cookies if no override */ - list($def_orderkey, $def_orderdir) = explode(":", $PREF["indexsort"]); - if (!isset($orderkey) || !in_array($orderkey, $cols)) - $orderkey = $def_orderkey; - if ($orderdir != "asc" && $orderdir != "desc") - $orderdir = $def_orderdir; - - /* fallback defaults */ - if (!isset($orderkey) || !in_array($orderkey, $cols)) - $orderkey = "ID"; - if ($orderdir != "asc" && $orderdir != "desc") - $orderdir = "asc"; - - $opporderdir = ($orderdir == "asc" ? "desc" : "asc"); - foreach ($cols as $col) { - if ($col == $orderkey) { - echo " <th class=\"minor\"><a href=\"index.php?orderkey=${col}&orderdir=${opporderdir}\">$col</a>"; - echo "<sup>".($orderdir== "asc" ? - /* "↓" : "↑" */ - "+" : "-" - )."</sup>"; - echo "</th>\n"; - } else - echo " <th class=\"minor\"><a href=\"index.php?orderkey=${col}&orderdir=asc\">$col</a></th>\n"; - } -?> -</tr> -<!-- <?=print_r($PREF)?> <?=$PREF["maxnodeage"]?> --> -<? - $infinite = 100000000; - $result = mysql_query("SELECT" - ." admin.nodeid AS ID" - .", admin.nodename AS Name" - .", physaddr.suburb AS Suburb" - .", admin.status AS Status" - .", TO_DAYS(NOW())-TO_DAYS(admin.updated) AS Age" - .", (e IS NOT NULL AND n IS NOT NULL) AS Map" - .", COUNT(netloc.ifname) AS Ifs" - .($havecmp ? - ",IFNULL(SQRT(POW(e - $cmpe,2)+POW(n - $cmpn,2))," - ."$infinite) AS Distance" : "") - ." FROM physaddr,physloc,admin" - ." LEFT JOIN netloc ON admin.nodeid=netloc.nodeid" - ." WHERE physaddr.nodeid = admin.nodeid" - ." AND physloc.nodeid = admin.nodeid" - ." AND to_days(now()) - to_days(admin.updated) <= " . $PREF["maxnodeage"] - ." GROUP BY admin.nodeid" - ." ORDER BY $orderkey $orderdir" - .($PREF["indexlimit"] > 0 ? " LIMIT ".$PREF["indexlimit"] : "") - , $db) - or die(mysql_error($db)); - - while ($row = mysql_fetch_assoc($result)) { - $nodeid = $row["ID"]; - if ($nodeid == $PREF["myid"]) - echo "<tr class=\"myrow\">\n"; - else - echo "<tr>\n"; - foreach($cols as $col) { - $v = htmlspecialchars($row[$col]); - if ($col == "Status") - echo " <td class=\"$col $v\">"; - else - echo " <td class=\"$col\">"; - if ($col == "Ifs" && $v == "0") - $v = " "; - else if ($col == "Ifs") - $v = "<a href=\"touchgraph.php?nodeid=$nodeid\">$v</a>"; - if ($col == "Name") - echo "<a href=\"view.php?nodeid=$nodeid\">$v</a>"; - else if ($col == "Age" && $row[$col] > 0) - echo $v."d"; - else if ($col == "Age") - echo " "; - else if ($col == "Map") - echo ($row[$col] ? " " : - "no"); - else if ($col == "Distance" && - ($v == "" || $v >= $infinite)) - echo " "; - else if ($col == "Distance") - echo sprintf("%.1fkm", $v/1000); - else - echo $v; - echo "</td>\n"; - } -?> -</tr> -<? - } -?> -</table> - -<? if ($PREF["indexlimit"] > 0) { ?> - <br>(List <a href="cookies.php">limited</a> to <?=$PREF["indexlimit"]?> entries.) -<? } ?> - -</td> - -<? - $maps = explode(" ", trim($PREF["viewmaplist"])); - if (count($maps)) { -?> -<td> - <table> - -<? foreach ($maps as $maptype) { - if ($maptype == "net") { ?> - - <tr><th class="major">Network connectivity view</th></tr> - <tr><td valign=top><img - width=<?=$len?> height=<?=$len?> - usemap="#networkmap" - src="map4b.php?<?=$mapargb?>&nonumbers=1" - ></td> - </tr> -<? } else if ($maptype == "loc") { ?> - - <tr><th class="major">Location view</th></tr> - <tr> - <td valign=top><img - width=<?=$len?> height=<?=$len?> - usemap="#summarymap" - src="map2b.php?<?=$mapargb?>" - ></td> - </tr> - -<? } else if ($maptype == "ter") { ?> - - <tr><th class="major">Terrain view</th></tr> - <tr><td valign=top><img - width=<?=$len?> height=<?=$len?> - usemap="#summarymap" - src="map3b.php?<?=$mapargb?>" - ></td> - </tr> -<? } else if ($maptype == "elev") { - /* ignore elevation */ - } else { ?> - <tr><th class="major">Unknown: <?=htmlspecialchars($maptype)?> - </th></tr> -<? } - } /* foreach */ ?> - </table> -</td> -<? } /* if maps */ ?> -</tr> -</table> - -<p> -Select a node for more information. The meanings of the columns are: -<dl compact> -<dt>Age</dt> <dd>How long ago the entry record was modified. </dd> -<dt>Map</dt> <dd>If the site coordinates are known, and hence if -the site is displayed on maps.</dd> -<dt>Ifs</dt> <dd>Number of interfaces (network cards) that the node has.</dt> -<? if ($PREF["myid"] > 0) { ?> -<dt>Distance</dt> <dd>Distance to node #<?=$PREF["myid"]?>.</dt> -<? } ?> -</dl> -</p> - -<ul> -<li>Make key maps -<a href="index.php?imgsz=<?=$len * 2?>">bigger</a> or -<a href="index.php?imgsz=<?=$len / 2?>">smaller</a></li> -<li><a href="about.html">About this database</a></li> -<li><a href="grid-instructions.html">How to find your grid coordinates</a></li> -<li><a href="policies.html">Node access policies</a></li> -<li><a href="address.html">Address allocation</a></li> -</ul> - -<hr> -<? include("footer.inc"); ?> - -</body> -</html> +<? + include("config.php"); + /* Use the imgsz query arg if it is there */ + $len = 0; + + $DEFAULTLEN = $PREF["imgsz"]; + + if (isset($_GET["imgsz"])) + $len = intval($_GET["imgsz"]); + if ($len < 50) $len = $DEFAULTLEN; + + $db = mysql_connect($MYSQLHOST, $MYSQLUSER, $MYSQLPASS); + mysql_select_db($MYSQLDB, $db) + or die(mysql_error($db)); + $result = mysql_query("SELECT max(unix_timestamp(updated)) from admin", $db) + or die(mysql_error($db)); + $row = mysql_fetch_row($result); + $updated = max(intval($row[0]), $PREF["_moddate"]); + header("Last-Modified: ".gmdate("D, d M Y H:i:s", $updated)." GMT"); +?> + +<html> +<head> +<link rel="stylesheet" href="<?=$PREF["stylesheet"]?>" type="text/css"> +<link rel="icon" href="favicon.ico"> +<title>Brisbane Mesh node database</title> +<style type="text/css"> + td { font-size: smaller; } + td.ID { text-align: right; } + td.Status { text-align: center; } + td.Ifs { text-align: right; } + td.Age { text-align: right; } + td.Map { color: red; } +</style> +</head> +<body> + +<img align=center src="../img/mesh-small.gif" + width=107 height=68 alt="Brisbane Mesh"> + +<h1>Brisbane Mesh node database</h1> + +<p> +This is a simple database for people operating or interested in operating +wireless network nodes in Brisbane. +If you're interested, please create a node for yourself. +</p> + +<h2>Node database</h2> + +<p> +Currently there <? + $result = mysql_query("SELECT count(*) from admin", $db) + or die(mysql_error($db)); + $row = mysql_fetch_row($result); + $nentries = intval($row[0]); + if ($nentries == 1) + printf("is 1 lonely node"); + else + printf("are $nentries nodes"); +?> and <? + $result = mysql_query("SELECT count(*) + FROM netloc + WHERE status = 'full' + AND active", $db) + or die(mysql_error($db)); + $row = mysql_fetch_row($result); + $nentries = intval($row[0]); + if ($nentries == 1) + printf("1 active interface"); + else + printf("$nentries active interfaces"); +?> (<? + $result = mysql_query("SELECT count(*) from netloc", $db) + or die(mysql_error($db)); + $row = mysql_fetch_row($result); + printf(strval($row[0])." total"); +?>). + +<form method=get action="search.php"> +Node search: <input name="q"> +</form> + +<ul><li><strong><? if (!$READONLY) { + ?><a href="create.php">Create a new node entry</a><? + } else { + ?>Database is in READ-ONLY (development) mode<? + } ?></strong></li> + <li><strong><a href="google.php">Export to Google Earth</a> (all nodes)</strong></li> +</ul> + +<map name="summarymap"> +<? +/* figure out the limits of the map */ +$result = mysql_query("SELECT" + ." min(e) as mine," + ." min(n) as minn," + ." max(e) as maxe," + ." max(n) as maxn" + ." FROM physloc, admin" + /* limit to a 200km radius about UQ */ + ." WHERE (e-501372)*(e-501372)+(n-6958178)*(n-6958178) < 200000*200000" + ." AND admin.nodeid = physloc.nodeid" + ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"], + $db) + or die(mysql_error($db)); +$row = mysql_fetch_assoc($result); +$mwid = max(max( $row["maxn"]-$row["minn"] , $row["maxe"]-$row["mine"] ), 1); +$mapscale = $len/$mwid/1.1; +$mapn = ($row["minn"]+$row["maxn"])/2; +$mape = ($row["mine"]+$row["maxe"])/2; +$mapargb = "w=${len}&h=${len}&s=${mapscale}&n=${mapn}&e=${mape}&updated=${updated}&maxage=".$PREF["maxnodeage"]; + +$result = mysql_query("SELECT" + ." admin.nodeid," + ." nodename," + ." n," + ." e" + ." FROM admin, physloc" + ." WHERE admin.nodeid = physloc.nodeid" + ." AND n is not null" + ." AND e is not null" + ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"], + $db) + or die(mysql_error($db)); +while ($row = mysql_fetch_assoc($result)) { + if ($row["n"] && $row["e"]) { + $x = intval($len/2 + (doubleval($row["e"]) - $mape) * $mapscale); + $y = intval($len/2 - (doubleval($row["n"]) - $mapn) * $mapscale); + if ($x >= 0 && $y >= 0 && $x < $len && $y < $len) { + echo "<area href=\"view.php?nodeid=".$row["nodeid"]."\""; + echo " alt=\"".htmlspecialchars($row["nodename"])."\""; + echo " shape=circle coords=\"$x,$y,8\">\n"; + } + } +} +?> +</map> + +<map name="networkmap"> +<? +$result = mysql_query("SELECT" + ." admin.nodeid AS nodeid," + ." nodename," + ." e," + ." n" + ." FROM admin, netloc, physloc" + ." WHERE (netloc.nodeid = admin.nodeid" + ." OR netloc.peerid = admin.nodeid)" + ." AND physloc.nodeid = admin.nodeid" + ." AND to_days(now()) - to_days(admin.updated) <= ".$PREF["maxnodeage"] + ." GROUP BY nodeid", + $db) + or die(mysql_error($db)); +while ($row = mysql_fetch_assoc($result)) { + if ($row["n"] && $row["e"]) { + $x = intval($len/2 + (doubleval($row["e"]) - $mape) * $mapscale); + $y = intval($len/2 - (doubleval($row["n"]) - $mapn) * $mapscale); + if ($x >= 0 && $y >= 0 && $x < $len && $y < $len) { + echo "<area href=\"view.php?nodeid=".$row["nodeid"]."\""; + echo " alt=\"".htmlspecialchars($row["nodename"])."\""; + echo " shape=circle coords=\"$x,$y,8\">\n"; + } + } +} +?> +</map> + +<table class="summary"> + +<tr valign=top> +<td><table> +<? + $havecmp = 0; + $cols = array("ID", "Name", "Suburb", "Map", "Ifs", "Status", "Age"); + if ($PREF["myid"] > 0) { + $result = mysql_query("SELECT e,n" + ." FROM physloc" + ." WHERE nodeid=".intval($PREF["myid"])) + or die(mysql_error($db)); + $row = mysql_fetch_assoc($result); + if ($row) { + $cmpe = $row["e"]; + $cmpn = $row["n"]; + if ($cmpe > 0 && $cmpn > 0) { + $cols[] = "Distance"; + $havecmp = 1; + } + } + } +?> +<tr><th class="major" colspan=<?=count($cols)?>>Current nodes</th></tr> +<tr> +<? + if (isset($_GET["orderkey"])) + $orderkey = $_GET["orderkey"]; + if (isset($_GET["orderdir"])) + $orderdir = $_GET["orderdir"]; + + /* fallback on cookies if no override */ + list($def_orderkey, $def_orderdir) = explode(":", $PREF["indexsort"]); + if (!isset($orderkey) || !in_array($orderkey, $cols)) + $orderkey = $def_orderkey; + if ($orderdir != "asc" && $orderdir != "desc") + $orderdir = $def_orderdir; + + /* fallback defaults */ + if (!isset($orderkey) || !in_array($orderkey, $cols)) + $orderkey = "ID"; + if ($orderdir != "asc" && $orderdir != "desc") + $orderdir = "asc"; + + $opporderdir = ($orderdir == "asc" ? "desc" : "asc"); + foreach ($cols as $col) { + if ($col == $orderkey) { + echo " <th class=\"minor\"><a href=\"index.php?orderkey=${col}&orderdir=${opporderdir}\">$col</a>"; + echo "<sup>".($orderdir== "asc" ? + /* "↓" : "↑" */ + "+" : "-" + )."</sup>"; + echo "</th>\n"; + } else + echo " <th class=\"minor\"><a href=\"index.php?orderkey=${col}&orderdir=asc\">$col</a></th>\n"; + } +?> +</tr> +<!-- <?=print_r($PREF)?> <?=$PREF["maxnodeage"]?> --> +<? + $infinite = 100000000; + $result = mysql_query("SELECT" + ." admin.nodeid AS ID" + .", admin.nodename AS Name" + .", physaddr.suburb AS Suburb" + .", admin.status AS Status" + .", TO_DAYS(NOW())-TO_DAYS(admin.updated) AS Age" + .", (e IS NOT NULL AND n IS NOT NULL) AS Map" + .", COUNT(netloc.ifname) AS Ifs" + .($havecmp ? + ",IFNULL(SQRT(POW(e - $cmpe,2)+POW(n - $cmpn,2))," + ."$infinite) AS Distance" : "") + ." FROM physaddr,physloc,admin" + ." LEFT JOIN netloc ON admin.nodeid=netloc.nodeid" + ." WHERE physaddr.nodeid = admin.nodeid" + ." AND physloc.nodeid = admin.nodeid" + ." AND to_days(now()) - to_days(admin.updated) <= " . $PREF["maxnodeage"] + ." GROUP BY admin.nodeid" + ." ORDER BY $orderkey $orderdir" + .($PREF["indexlimit"] > 0 ? " LIMIT ".$PREF["indexlimit"] : "") + , $db) + or die(mysql_error($db)); + + while ($row = mysql_fetch_assoc($result)) { + $nodeid = $row["ID"]; + if ($nodeid == $PREF["myid"]) + echo "<tr class=\"myrow\">\n"; + else + echo "<tr>\n"; + foreach($cols as $col) { + $v = htmlspecialchars($row[$col]); + if ($col == "Status") + echo " <td class=\"$col $v\">"; + else + echo " <td class=\"$col\">"; + if ($col == "Ifs" && $v == "0") + $v = " "; + else if ($col == "Ifs") + $v = "<a href=\"touchgraph.php?nodeid=$nodeid\">$v</a>"; + if ($col == "Name") + echo "<a href=\"view.php?nodeid=$nodeid\">$v</a>"; + else if ($col == "Age" && $row[$col] > 0) + echo $v."d"; + else if ($col == "Age") + echo " "; + else if ($col == "Map") + echo ($row[$col] ? " " : + "no"); + else if ($col == "Distance" && + ($v == "" || $v >= $infinite)) + echo " "; + else if ($col == "Distance") + echo sprintf("%.1fkm", $v/1000); + else + echo $v; + echo "</td>\n"; + } +?> +</tr> +<? + } +?> +</table> + +<? if ($PREF["indexlimit"] > 0) { ?> + <br>(List <a href="cookies.php">limited</a> to <?=$PREF["indexlimit"]?> entries.) +<? } ?> + +</td> + +<? + $maps = explode(" ", trim($PREF["viewmaplist"])); + if (count($maps)) { +?> +<td> + <table> + +<? foreach ($maps as $maptype) { + if ($maptype == "net") { ?> + + <tr><th class="major">Network connectivity view</th></tr> + <tr><td valign=top><img + width=<?=$len?> height=<?=$len?> + usemap="#networkmap" + src="map4b.php?<?=$mapargb?>&nonumbers=1" + ></td> + </tr> +<? } else if ($maptype == "loc") { ?> + + <tr><th class="major">Location view</th></tr> + <tr> + <td valign=top><img + width=<?=$len?> height=<?=$len?> + usemap="#summarymap" + src="map2b.php?<?=$mapargb?>" + ></td> + </tr> + +<? } else if ($maptype == "ter") { ?> + + <tr><th class="major">Terrain view</th></tr> + <tr><td valign=top><img + width=<?=$len?> height=<?=$len?> + usemap="#summarymap" + src="map3b.php?<?=$mapargb?>" + ></td> + </tr> +<? } else if ($maptype == "elev") { + /* ignore elevation */ + } else { ?> + <tr><th class="major">Unknown: <?=htmlspecialchars($maptype)?> + </th></tr> +<? } + } /* foreach */ ?> + </table> +</td> +<? } /* if maps */ ?> +</tr> +</table> + +<p> +Select a node for more information. The meanings of the columns are: +<dl compact> +<dt>Age</dt> <dd>How long ago the entry record was modified. </dd> +<dt>Map</dt> <dd>If the site coordinates are known, and hence if +the site is displayed on maps.</dd> +<dt>Ifs</dt> <dd>Number of interfaces (network cards) that the node has.</dt> +<? if ($PREF["myid"] > 0) { ?> +<dt>Distance</dt> <dd>Distance to node #<?=$PREF["myid"]?>.</dt> +<? } ?> +</dl> +</p> + +<ul> +<li>Make key maps +<a href="index.php?imgsz=<?=$len * 2?>">bigger</a> or +<a href="index.php?imgsz=<?=$len / 2?>">smaller</a></li> +<li><a href="about.html">About this database</a></li> +<li><a href="grid-instructions.html">How to find your grid coordinates</a></li> +<li><a href="policies.html">Node access policies</a></li> +<li><a href="address.html">Address allocation</a></li> +</ul> + +<hr> +<? include("footer.inc"); ?> + +</body> +</html> |