fetch_assoc()) $knots .= "\"p" . $row["id"] . "\" [label = \"" . $row["name"] . "\", fontcolor = \"" . $row["color"] . "\"];\n"; $result = mysql_run_query( "SELECT MAX(`d_bpir_links`.`dependent`) AS `dependent`," . "`dependency_types`.`name` AS `dep_type`," . "MAX(`d_bpir_links`.`depending_on`) AS `depending_on`" . " FROM `d_bpir_links`" . " JOIN `dependency_types` ON `d_bpir_links`.`dep_type`=`dependency_types`.`id`" . " JOIN `d_bpir` ON `d_bpir`.`id`=`d_bpir_links`.`dependent`" . " JOIN `d_bpir_copy` ON `d_bpir_copy`.`id`=`d_bpir_links`.`depending_on`" . " GROUP BY CONCAT(`d_bpir`.`group`,\"-\",`d_bpir_copy`.`group`)" ); while ($row = $result->fetch_assoc()) { $edges .= "\"p" . $row["depending_on"] . "\" -> \"p" . $row["dependent"] . "\" [color = \""; switch ($row["dep_type"]) { case "run": $edges .= "#000000"; break; case "make": $edges .= "#0000ff"; break; case "link": $edges .= "#008000"; break; case "check": $edges .= "#000080"; break; default: $edges .= "#ff00ff"; } $edges .= "#000080"; $edges .= "\"];\n"; } header ("Content-type: image/png"); passthru( "echo '" . base64_encode( "digraph dependencies {\n" . "rankdir=LR;\n" . "fontname=dejavu;\n" . $knots . $edges . "}\n" ) . "' | " . "base64 -d | " . "dot -Tpng -o/dev/stdout /dev/stdin" );