= read_config_option("path_html_export_skip")) { db_execute("update settings set value='1' where name='path_html_export_ctr'"); export(); }else{ if (read_config_option("path_html_export_ctr") == "") { db_execute("delete from settings where name='path_html_export_ctr' or name='path_html_export_skip'"); db_execute("insert into settings (name,value) values ('path_html_export_ctr','1')"); db_execute("insert into settings (name,value) values ('path_html_export_skip','1')"); }else{ db_execute("update settings set value='" . (read_config_option("path_html_export_ctr") + 1) . "' where name='path_html_export_ctr'"); } } } } function export() { global $config; print "export: running graph export\n"; $cacti_root_path = $config["base_path"]; $cacti_export_path = read_config_option("path_html_export"); /* copy the css/images on the first time */ if (file_exists("$cacti_export_path/main.css") == false) { copy("$cacti_root_path/include/main.css", "$cacti_export_path/main.css"); copy("$cacti_root_path/images/tab_cacti.gif", "$cacti_export_path/tab_cacti.gif"); copy("$cacti_root_path/images/cacti_backdrop.gif", "$cacti_export_path/cacti_backdrop.gif"); copy("$cacti_root_path/images/transparent_line.gif", "$cacti_export_path/transparent_line.gif"); copy("$cacti_root_path/images/shadow.gif", "$cacti_export_path/shadow.gif"); } /* if the index file already exists, delete it */ check_remove($cacti_export_path . "/index.html"); /* open pointer to the new index file */ $fp_index = fopen($cacti_export_path . "/index.html", "w"); /* get a list of all graphs that need exported */ $graphs = db_fetch_assoc("select graph_templates_graph.id, graph_templates_graph.local_graph_id, graph_templates_graph.height, graph_templates_graph.width, graph_templates_graph.title_cache, graph_templates.name, graph_local.host_id from graph_templates_graph left join graph_templates on graph_templates_graph.graph_template_id=graph_templates.id left join graph_local on graph_templates_graph.local_graph_id=graph_local.id where graph_templates_graph.local_graph_id!=0 and graph_templates_graph.export='on' order by graph_templates_graph.title_cache"); $rras = db_fetch_assoc("select rra.id, rra.name from rra order by steps"); /* write the html header data to the index file */ fwrite($fp_index, HTML_HEADER); fwrite($fp_index, HTML_GRAPH_HEADER_ONE); fwrite($fp_index, "Displaying " . sizeof($graphs) . " Exported Graph" . ((sizeof($graphs) > 1) ? "s" : "") . ""); fwrite($fp_index, HTML_GRAPH_HEADER_TWO); /* for each graph... */ $i = 0; $k = 0; if ((sizeof($graphs) > 0) && (sizeof($rras) > 0)) { foreach ($graphs as $graph) { check_remove($cacti_export_path . "/thumb_" . $graph["local_graph_id"] . ".png"); check_remove($cacti_export_path . "/graph_" . $graph["local_graph_id"] . ".html"); /* settings for preview graphs */ $graph_data_array["use"] = true; $graph_data_array["graph_start"] = "-60000"; $graph_data_array["graph_height"] = "100"; $graph_data_array["graph_width"] = "300"; $graph_data_array["graph_nolegend"] = true; $graph_data_array["export"] = true; $graph_data_array["export_filename"] = "thumb_" . $graph["local_graph_id"] . ".png"; rrdtool_function_graph($graph["local_graph_id"], 0, $graph_data_array); /* generate html files for each graph */ $fp_graph_index = fopen($cacti_export_path . "/graph_" . $graph["local_graph_id"] . ".html", "w"); fwrite($fp_graph_index, HTML_HEADER); fwrite($fp_graph_index, HTML_GRAPH_HEADER_ONE); fwrite($fp_graph_index, "Graph - " . $graph["title_cache"] . ""); fwrite($fp_graph_index, HTML_GRAPH_HEADER_TWO); fwrite($fp_graph_index, ""); /* reset vars for actual graph image creation */ reset($rras); unset($graph_data_array); /* generate graphs for each rra */ foreach ($rras as $rra) { $graph_data_array["export"] = true; $graph_data_array["export_filename"] = "graph_" . $graph["local_graph_id"] . "_" . $rra["id"] . ".png"; rrdtool_function_graph($graph["local_graph_id"], $rra["id"], $graph_data_array); /* write image related html */ fwrite($fp_graph_index, "
\n
" . $rra["name"] . "

"); } fwrite($fp_graph_index, ""); fwrite($fp_graph_index, HTML_GRAPH_FOOTER); fwrite($fp_graph_index, HTML_FOOTER); fclose($fp_graph_index); /* main graph page html */ fwrite($fp_index, "" . $graph["title_cache"] . "\n"); $i++; $k++; if (($i == 2) && ($k < count($graphs))) { $i = 0; fwrite($fp_index, ""); } } }else{ fwrite($fp_index, "No Graphs Found."); } fwrite($fp_index, HTML_GRAPH_FOOTER); fwrite($fp_index, HTML_FOOTER); fclose($fp_index); } function check_remove($filename) { if (file_exists($filename) == true) { unlink($filename); } } define("HTML_GRAPH_HEADER_ONE", " "); define("HTML_GRAPH_FOOTER", "
"); define("HTML_GRAPH_HEADER_TWO", "
\n

"); define("HTML_HEADER", " cacti \n \n \n \n
 Cacti - http://www.raxnet.net/products/cacti/

Exported Graphs

"); define("HTML_FOOTER", "
"); ?>