\n";
else {
echo "
\ndigraph xyz {
\nsize=\"6,6\";
\nnode [color=lightblue2, style=filled];
\n";
foreach ($targets as $k => $t)
printgw($pagename, $t, $k);
echo "}
\n";
}
}
function MkGW($pagename, $auth, $level, $basegw)
{
global $LinkTargets, $gwStart;
if (time() > $gwStart+10) { echo "."; $gwStart = time(); flush; }
#echo "MkGW($pagename, ...): Entering
\n";
$page = RetrieveAuthPage($pagename, $auth);
$text = $page['text'];
if (!$text) return(0); // indicates we've reached a node
$LinkTargets = array();
$html = MarkupToHTML($pagename,$text); // calculate $LinkTargets as byproduct
#echo "MkGW: LinkTargets=".print_r($LinkTargets,true)."
\n";
$targets = array_keys((array)$LinkTargets);
if (!$targets) return(0); // indicates we've reached a node
foreach ($targets as $t) {
if (in_array($t, $basegw)) {
#echo "MkGW($pagename): $t is a repeat!
\n";
$gw[$t] = -1;
} else {
$basegw[] = $t;
#echo "MkGW($pagename): Calling MkGW($t)
\n";
$gw[$t] = MkGW($t, $auth, $level+1, $basegw);
}
}
#echo "MkGW($pagename): returning ".print_r($gw,true)."
\n";
return($gw);
}
function printgw($src, $val, $key)
{
echo "'$src' -> '$key';
\n";
if (is_array($val))
foreach ($val as $k => $t)
printgw($key, $t, $k);
}