Add dot/graphviz graph output
Former-commit-id: 0b4b69f7119c9dffcbe50018402d03b38bfb0c14
--- a/graph.php
+++ b/graph.php
@@ -1,21 +1,51 @@
<?php
include_once('include/common.inc.php');
//include_header();
-?>
-<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
-<script src="lib/springy/springy.js"></script>
-<script src="lib/springy/springyui.js"></script>
-<script>
- var graph = new Graph();
- var nodes = [];
-<?php
+$format = "html";
+if (isset($_REQUEST['format'])) {
+ $format = $_REQUEST['format'];
+}
+
+function add_node($id, $label) {
+ global $format;
+ if ($format == "html") {
+ echo "nodes[\"$id\"] = graph.newNode({label: \"$label\"});" . PHP_EOL;
+ }
+ if ($format == "dot" && $label != "") {
+ echo "$id [label=\"$label\"];". 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 == "html") {
+ ?>
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
+ <script src="lib/springy/springy.js"></script>
+ <script src="lib/springy/springyui.js"></script>
+ <script>
+ var graph = new Graph();
+ var nodes = [];
+ <?php
+}
+if ($format == "dot") {
+ echo 'digraph g {'. PHP_EOL;
+}
$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 {
$rows = $db->get_view("app", "byCanonicalName", null, true)->rows;
- //print_r($rows);
+//print_r($rows);
foreach ($rows as $row) {
- echo "nodes[\"{$row->id}\"] = graph.newNode({label: \"{$row->key}\"});" . PHP_EOL;
+ add_node($row->id, $row->key);
}
} catch (SetteeRestClientException $e) {
setteErrorHandler($e);
@@ -23,9 +53,9 @@
try {
$rows = $db->get_view("app", "byDeptStateName", null, true)->rows;
- //print_r($rows);
+//print_r($rows);
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) {
setteErrorHandler($e);
@@ -33,25 +63,30 @@
try {
$rows = $db->get_view("app", "parentOrgs", null, true)->rows;
- // print_r($rows);
+// print_r($rows);
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) {
setteErrorHandler($e);
}
-?>
- window.onload = function() {
- $(document).ready(function() {
- var springy = $('#springydemo').springy({
- graph: graph
+if ($format == "html") {
+ ?>
+ window.onload = function() {
+ $(document).ready(function() {
+ var springy = $('#springydemo').springy({
+ graph: graph
+ });
});
- });
- };
-</script>
+ };
+ </script>
-<canvas id="springydemo" width="1260" height="680" />
-<?php
+ <canvas id="springydemo" width="1260" height="680" />
+ <?php
+}
+if ($format == "dot") {
+ echo "}";
+}
//include_footer();
?>