<?php |
<?php |
include_once('include/common.inc.php'); |
include_once('include/common.inc.php'); |
//include_header(); |
//include_header(); |
?> |
$format = "html"; |
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> |
if (isset($_REQUEST['format'])) { |
<script src="lib/springy/springy.js"></script> |
$format = $_REQUEST['format']; |
<script src="lib/springy/springyui.js"></script> |
} |
<script> |
|
var graph = new Graph(); |
function add_node($id, $label, $parent="") { |
var nodes = []; |
global $format; |
<?php |
if ($format == "html") { |
|
// echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL; |
|
} |
|
if ($format == "dot" && $label != "") { |
|
echo "$id [label=\"$label\"];". PHP_EOL; |
|
} |
|
if ($format == "gexf") { |
|
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)."'/>" |
|
."</node>". PHP_EOL; |
|
} |
|
} |
|
|
|
function add_edge($from, $to, $color) { |
|
global $format; |
|
if ($format == "html") { |
|
// echo "graph.newEdge(nodes[\"$from\"], nodes['$to'], {color: '$color'});" . PHP_EOL; |
|
} |
|
if ($format == "dot") { |
|
echo "$from -> $to ".($color != ""? "[color=$color]":"").";". PHP_EOL; |
|
} |
|
if ($format == "gexf") { |
|
echo "<edge id='$from$to' source='$from' target='$to' />". PHP_EOL; |
|
} |
|
} |
|
if ($format == "gexf") { |
|
//header('Content-Type: text/xml'); |
|
header('Content-Type: application/gexf+xml'); |
|
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"> |
|
<meta lastmodifieddate="2009-03-20"> |
|
<creator>Gexf.net</creator> |
|
<description>A hello world! file</description> |
|
</meta> |
|
<graph mode="static" defaultedgetype="directed"> |
|
<nodes>'. PHP_EOL; |
|
} |
|
|
|
if ($format == "dot") { |
|
echo 'digraph g {'. PHP_EOL; |
|
} |
$db = $server->get_db('disclosr-agencies'); |
$db = $server->get_db('disclosr-agencies'); |
echo "nodes[\"fedg\"] = graph.newNode({label: \"Federal Government - Commonwealth of Australia\"});" . PHP_EOL; |
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) { |
echo "nodes[\"{$row->value}\"] = graph.newNode({label: \"{$row->key}\"});" . PHP_EOL; |
add_node($row->id, $row->key); |
} |
} |
} catch (SetteeRestClientException $e) { |
} catch (SetteeRestClientException $e) { |
setteErrorHandler($e); |
setteErrorHandler($e); |
} |
} |
|
if ($format == "gexf") { |
|
echo '</nodes> |
|
<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) { |
echo "graph.newEdge(nodes[\"fedg\"], nodes['{$row->value}'], {color: '#00A0B0'});" . PHP_EOL; |
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) { |
echo "graph.newEdge(nodes[\"{$row->key}\"], nodes['{$row->value}'], {color: '#FFA0B0'});" . PHP_EOL; |
add_edge($row->key, $row->value, 'blue'); |
} |
} |
} catch (SetteeRestClientException $e) { |
} catch (SetteeRestClientException $e) { |
setteErrorHandler($e); |
setteErrorHandler($e); |
} |
} |
?> |
if ($format == "html") { |
window.onload = function() { |
?> |
$(document).ready(function() { |
<div id="sigma-example" width="960" style="min-height:800px;background-color: #333;"></div> |
var springy = $('#springydemo').springy({ |
<script src="javascripts/sigma.min.js"></script> |
graph: graph |
<script src="javascripts/sigma/plugins/sigma.parseGexf.js"></script> |
}); |
<script src="javascripts/sigma/plugins/sigma.forceatlas2.js"></script> |
}); |
<script type="text/javascript">function init() { |
}; |
// Instanciate sigma.js and customize rendering : |
|
var sigInst = sigma.init(document.getElementById('sigma-example')).drawingProperties({ |
|
defaultLabelColor: '#fff', |
|
defaultLabelSize: 14, |
|
defaultLabelBGColor: '#fff', |
|
defaultLabelHoverColor: '#000', |
|
labelThreshold: 6, |
|
defaultEdgeType: 'curve' |
|
}).graphProperties({ |
|
minNodeSize: 0.5, |
|
maxNodeSize: 5, |
|
minEdgeSize: 5, |
|
maxEdgeSize: 5 |
|
}).mouseProperties({ |
|
maxRatio: 32 |
|
}); |
|
|
|
// Parse a GEXF encoded file to fill the graph |
|
// (requires "sigma.parseGexf.js" to be included) |
|
sigInst.parseGexf('graph.php?format=gexf'); |
|
sigInst.bind('downnodes',function(event){ |
|
var nodes = event.content; |
|
}); |
|
// Start the ForceAtlas2 algorithm |
|
// (requires "sigma.forceatlas2.js" to be included) |
|
sigInst.startForceAtlas2(); |
|
|
|
// Draw the graph : |
|
sigInst.draw(); |
|
} |
|
|
|
if (document.addEventListener) { |
|
document.addEventListener("DOMContentLoaded", init, false); |
|
} else { |
|
window.onload = init; |
|
} |
</script> |
</script> |
|
|
<canvas id="springydemo" width="1260" height="680" /> |
<?php |
<?php |
} |
|
if ($format == "dot") { |
|
echo "}"; |
|
} |
|
if ($format == "gexf") { |
|
echo ' </edges> |
|
</graph> |
|
</gexf>'. PHP_EOL; |
|
} |
//include_footer(); |
//include_footer(); |
?> |
?> |
|
|
|
|