<?php |
<?php |
include_once('include/common.inc.php'); |
include_once('include/common.inc.php'); |
//include_header(); |
//include_header(); |
$format = "html"; |
$format = "html"; |
if (isset($_REQUEST['format'])) { |
if (isset($_REQUEST['format'])) { |
$format = $_REQUEST['format']; |
$format = $_REQUEST['format']; |
} |
} |
|
|
function add_node($id, $label, $parent="") { |
function add_node($id, $label, $parent="") { |
global $format; |
global $format; |
if ($format == "html") { |
if ($format == "html") { |
// echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL; |
// echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL; |
} |
} |
if ($format == "dot" && $label != "") { |
if ($format == "dot" && $label != "") { |
echo "$id [label=\"$label\"];". PHP_EOL; |
echo "$id [label=\"$label\"];". PHP_EOL; |
} |
} |
if ($format == "gexf") { |
if ($format == "gexf") { |
echo "<node id='$id' label=\"".htmlentities($label,ENT_XML1)."\" ".($parent != ""? "pid='$parent'><viz:size value='1'/>":"><viz:size value='2'/>") |
echo "<node id='$id' label=\"".htmlentities($label,ENT_XML1)."\" ".($parent != ""? "pid='$parent'><viz:size value='1'/>":"><viz:size value='2'/>") |
."<viz:color b='".rand(0,255)."' g='".rand(0,255)."' r='".rand(0,255)."'/>" |
."<viz:color b='".rand(0,255)."' g='".rand(0,255)."' r='".rand(0,255)."'/>" |
."</node>". PHP_EOL; |
."</node>". PHP_EOL; |
} |
} |
} |
} |
|
|
function add_edge($from, $to, $color) { |
function add_edge($from, $to, $color) { |
global $format; |
global $format; |
if ($format == "html") { |
if ($format == "html") { |
// echo "graph.newEdge(nodes[\"$from\"], nodes['$to'], {color: '$color'});" . PHP_EOL; |
// echo "graph.newEdge(nodes[\"$from\"], nodes['$to'], {color: '$color'});" . PHP_EOL; |
} |
} |
if ($format == "dot") { |
if ($format == "dot") { |
echo "$from -> $to ".($color != ""? "[color=$color]":"").";". PHP_EOL; |
echo "$from -> $to ".($color != ""? "[color=$color]":"").";". PHP_EOL; |
} |
} |
if ($format == "gexf") { |
if ($format == "gexf") { |
echo "<edge id='$from$to' source='$from' target='$to' />". PHP_EOL; |
echo "<edge id='$from$to' source='$from' target='$to' />". PHP_EOL; |
} |
} |
} |
} |
if ($format == "gexf") { |
if ($format == "gexf") { |
//header('Content-Type: text/xml'); |
//header('Content-Type: text/xml'); |
header('Content-Type: application/gexf+xml'); |
header('Content-Type: application/gexf+xml'); |
echo '<?xml version="1.0" encoding="UTF-8"?> |
echo '<?xml version="1.0" encoding="UTF-8"?> |
<gexf xmlns="http://www.gexf.net/1.2draft" xmlns:viz="http://www.gexf.net/1.2draft/viz" version="1.2"> |
<gexf xmlns="http://www.gexf.net/1.2draft" xmlns:viz="http://www.gexf.net/1.2draft/viz" version="1.2"> |
<meta lastmodifieddate="2009-03-20"> |
<meta lastmodifieddate="2009-03-20"> |
<creator>Gexf.net</creator> |
<creator>Gexf.net</creator> |
<description>A hello world! file</description> |
<description>A hello world! file</description> |
</meta> |
</meta> |
<graph mode="static" defaultedgetype="directed"> |
<graph mode="static" defaultedgetype="directed"> |
<nodes>'. PHP_EOL; |
<nodes>'. PHP_EOL; |
} |
} |
|
|
if ($format == "dot") { |
if ($format == "dot") { |
echo 'digraph g {'. PHP_EOL; |
echo 'digraph g {'. PHP_EOL; |
} |
} |
$db = $server->get_db('disclosr-agencies'); |
$db = $server->get_db('disclosr-agencies'); |
add_node("fedg","Federal Government - Commonwealth of Australia"); |
add_node("fedg","Federal Government - Commonwealth of Australia"); |
try { |
try { |
$rows = $db->get_view("app", "byCanonicalName", null, true)->rows; |
$rows = $db->get_view("app", "byCanonicalName", null, true)->rows; |
//print_r($rows); |
//print_r($rows); |
foreach ($rows as $row) { |
foreach ($rows as $row) { |
add_node($row->id, $row->key); |
add_node($row->id, $row->key); |
} |
} |
} catch (SetteeRestClientException $e) { |
} catch (SetteeRestClientException $e) { |
setteErrorHandler($e); |
setteErrorHandler($e); |
} |
} |
if ($format == "gexf") { |
if ($format == "gexf") { |
echo '</nodes> |
echo '</nodes> |
<edges>'. PHP_EOL; |
<edges>'. PHP_EOL; |
} |
} |
try { |
try { |
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows; |
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows; |
//print_r($rows); |
//print_r($rows); |
foreach ($rows as $row) { |
foreach ($rows as $row) { |
add_edge("fedg", $row->value, 'yellow'); |
add_edge("fedg", $row->value, 'yellow'); |
} |
} |
} catch (SetteeRestClientException $e) { |
} catch (SetteeRestClientException $e) { |
setteErrorHandler($e); |
setteErrorHandler($e); |
} |
} |
|
|
try { |
try { |
$rows = $db->get_view("app", "parentOrgs", null, true)->rows; |
$rows = $db->get_view("app", "parentOrgs", null, true)->rows; |
// print_r($rows); |
// print_r($rows); |
foreach ($rows as $row) { |
foreach ($rows as $row) { |
add_edge($row->key, $row->value, 'blue'); |
add_edge($row->key, $row->value, 'blue'); |
} |
} |
} catch (SetteeRestClientException $e) { |
} catch (SetteeRestClientException $e) { |
setteErrorHandler($e); |
setteErrorHandler($e); |
} |
} |
if ($format == "html") { |
if ($format == "html") { |
?> |
?> |
<div id="sigma-example" width="960" style="min-height:800px;background-color: #333;"></div> |
<div id="sigma-example" width="960" style="min-height:800px;background-color: #333;"></div> |
<script src="javascripts/sigma.min.js"></script> |
<script src="javascripts/sigma.min.js"></script> |
<script src="javascripts/sigma/plugins/sigma.parseGexf.js"></script> |
<script src="javascripts/sigma/plugins/sigma.parseGexf.js"></script> |
<script src="javascripts/sigma/plugins/sigma.forceatlas2.js"></script> |
<script src="javascripts/sigma/plugins/sigma.forceatlas2.js"></script> |
<script type="text/javascript">function init() { |
<script type="text/javascript">function init() { |
// Instanciate sigma.js and customize rendering : |
// Instanciate sigma.js and customize rendering : |
var sigInst = sigma.init(document.getElementById('sigma-example')).drawingProperties({ |
var sigInst = sigma.init(document.getElementById('sigma-example')).drawingProperties({ |
defaultLabelColor: '#fff', |
defaultLabelColor: '#fff', |
defaultLabelSize: 14, |
defaultLabelSize: 14, |
defaultLabelBGColor: '#fff', |
defaultLabelBGColor: '#fff', |
defaultLabelHoverColor: '#000', |
defaultLabelHoverColor: '#000', |
labelThreshold: 6, |
labelThreshold: 6, |
defaultEdgeType: 'curve' |
defaultEdgeType: 'curve' |
}).graphProperties({ |
}).graphProperties({ |
minNodeSize: 0.5, |
minNodeSize: 0.5, |
maxNodeSize: 5, |
maxNodeSize: 5, |
minEdgeSize: 5, |
minEdgeSize: 5, |
maxEdgeSize: 5 |
maxEdgeSize: 5 |
}).mouseProperties({ |
}).mouseProperties({ |
maxRatio: 32 |
maxRatio: 32 |
}); |
}); |
|
|
// Parse a GEXF encoded file to fill the graph |
// Parse a GEXF encoded file to fill the graph |
// (requires "sigma.parseGexf.js" to be included) |
// (requires "sigma.parseGexf.js" to be included) |
sigInst.parseGexf('graph.php?format=gexf'); |
sigInst.parseGexf('graph.php?format=gexf'); |
sigInst.bind('downnodes',function(event){ |
sigInst.bind('downnodes',function(event){ |
var nodes = event.content; |
var nodes = event.content; |
}); |
}); |
// Draw the graph : |
|
sigInst.draw(); |
|
// Start the ForceAtlas2 algorithm |
// Start the ForceAtlas2 algorithm |
// (requires "sigma.forceatlas2.js" to be included) |
// (requires "sigma.forceatlas2.js" to be included) |
sigInst.startForceAtlas2(); |
sigInst.startForceAtlas2(); |
|
|
|
// Draw the graph : |
|
sigInst.draw(); |
} |
} |
|
|
if (document.addEventListener) { |
if (document.addEventListener) { |
document.addEventListener("DOMContentLoaded", init, false); |
document.addEventListener("DOMContentLoaded", init, false); |
} else { |
} else { |
window.onload = init; |
window.onload = init; |
} |
} |
</script> |
</script> |
|
|
<?php |
<?php |
} |
} |
if ($format == "dot") { |
if ($format == "dot") { |
echo "}"; |
echo "}"; |
} |
} |
if ($format == "gexf") { |
if ($format == "gexf") { |
echo ' </edges> |
echo ' </edges> |
</graph> |
</graph> |
</gexf>'. PHP_EOL; |
</gexf>'. PHP_EOL; |
} |
} |
//include_footer(); |
//include_footer(); |
?> |
?> |
|
|
|
|