requires_js[] = "include/javascript/map/NetworkmapController.js";
}
public function processDBValues($dbValues) {
$filter = json_decode($dbValues['filter'], true);
$this->show_snmp_modules = $filter['show_snmp_modules'];
$this->filter_text = $filter["text"];
switch ($dbValues['source_data']) {
case MAP_SOURCE_GROUP:
$this->source_group = $dbValues['source'];
$this->source_ip_mask = "";
break;
case MAP_SOURCE_IP_MASK:
$this->source_group = $dbValues['source'];
$this->source_ip_mask = "";
break;
}
parent::processDBValues($dbValues);
}
protected function generateDot() {
// TODO
}
protected function temp_parseParameters_generateDot() {
$return = array();
$return['id_group'] = $this->source_group;
$return['simple'] = 12; // HARD CODED
$return['font_size'] = null;
$return['layout'] = null;
$return['nooverlap'] = false; // HARD CODED
$return['zoom'] = 1; // HARD CODED
$return['ranksep'] = 2.5; // HARD CODED
$return['center'] = 0; // HARD CODED
$return['regen'] = 0; // HARD CODED
$return['pure'] = 0; // HARD CODED
$return['id'] = $this->id;
$return['show_snmp_modules'] = $this->show_snmp_modules;
$return['l2_network_interfaces'] = true; // HARD CODED
$return['ip_mask'] = $this->source_ip_mask;
$return['dont_show_subgroups'] = !$this->show_groups;
$return['old_mode'] = false;
$return['filter'] = $this->filter_text;
return $return;
}
protected function getNodes() {
if (empty($this->nodes)) {
// ----- INI DEPRECATED CODE--------------------------------
// I hope this code to change for any some better and
// rewrote the old function.
$parameters = $this->temp_parseParameters_generateDot();
// Generate dot file
$graph = networkmap_generate_dot (__('Pandora FMS'),
$parameters['id_group'],
$parameters['simple'],
$parameters['font_size'],
$parameters['layout'],
$parameters['nooverlap'],
$parameters['zoom'],
$parameters['ranksep'],
$parameters['center'],
$parameters['regen'],
$parameters['pure'],
$parameters['id'],
$parameters['show_snmp_modules'],
false, //cut_names
true, // relative
'',
$parameters['l2_network_interfaces'],
$parameters['ip_mask'],
$parameters['dont_show_subgroups'],
false,
null,
$parameters['old_mode']);
$filename_dot = sys_get_temp_dir() . "/networkmap" . uniqid() . ".dot";
file_put_contents($filename_dot, $graph);
$filename_plain = sys_get_temp_dir() . "/plain.txt";
switch ($this->generation_method) {
case MAP_GENERATION_CIRCULAR:
$graphviz_command = "circo";
break;
case MAP_GENERATION_PLANO:
$graphviz_command = "dot";
break;
case MAP_GENERATION_RADIAL:
$graphviz_command = "twopi";
break;
case MAP_GENERATION_SPRING1:
$graphviz_command = "spring1";
break;
case MAP_GENERATION_SPRING2:
$graphviz_command = "spring2";
break;
}
$cmd = "$graphviz_command " .
"-Tpng -o /tmp/caca.png -Tplain -o " . $filename_plain . " " .
$filename_dot;
system ($cmd);
unlink($filename_dot);
html_debug($cmd);
html_debug($filename_plain);
html_debug(file_get_contents($filename_plain), true);
$nodes = networkmap_enterprise_loadfile($this->id,
$filename_plain,
$relation_nodes, $graph,
$parameters['l2_network_interfaces']);
//~ html_debug_print($graph);
//~ html_debug_print($nodes);
//~ html_debug_print($relation_nodes);
// debug image
// Read image path, convert to base64 encoding
$imgData = base64_encode(file_get_contents("/tmp/caca.png"));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type("/tmp/caca.png").';base64,'.$imgData;
// Echo out a sample image
echo '';
// ----- END DEPRECATED CODE--------------------------------
}
}
public function show() {
$this->getNodes();
parent::show();
}
public function printJSInit() {
echo "