2011-04-01 Sergio Martin <sergio.martin@artica.es>
* include/graphs/functions_pchart.php include/graphs/pChart/pDraw.class.php include/graphs/fgraph.php include/graphs/functions_utils.php: Changed the send data method from sessions to files with serialize functions. Creation of a utils functions file. Improvement of the pChart library adding attributes to avoid ticks and grids when the data under the xaxis is empty. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4160 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
39c1c5b8f6
commit
47f4f0bf33
|
@ -1,3 +1,14 @@
|
|||
2011-04-01 Sergio Martin <sergio.martin@artica.es>
|
||||
|
||||
* include/graphs/functions_pchart.php
|
||||
include/graphs/pChart/pDraw.class.php
|
||||
include/graphs/fgraph.php
|
||||
include/graphs/functions_utils.php: Changed the send data method
|
||||
from sessions to files with serialize functions. Creation of a
|
||||
utils functions file. Improvement of the pChart library adding
|
||||
attributes to avoid ticks and grids when the data under the
|
||||
xaxis is empty.
|
||||
|
||||
2011-04-01 Juan Manuel Ramon <juanmanuel.ramon@artica.es>
|
||||
|
||||
* operation/gis_maps/render_view.php: Fixed bad sql query sintax.
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
<?php
|
||||
// INTEGRIA - the ITIL Management System
|
||||
// http://integria.sourceforge.net
|
||||
// ==================================================
|
||||
// Copyright (c) 2008-2011 Ártica Soluciones Tecnológicas
|
||||
// Copyright (c) 2011-2011 Ártica Soluciones Tecnológicas
|
||||
// http://www.artica.es <info@artica.es>
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
|
@ -14,13 +11,25 @@
|
|||
// GNU General Public License for more details.
|
||||
|
||||
include_once('functions_fsgraph.php');
|
||||
include_once('functions_utils.php');
|
||||
|
||||
function vbar_graph($flash_chart, $chart_data, $width, $height) {
|
||||
function vbar_graph($flash_chart, $chart_data, $width, $height, $color, $legend) {
|
||||
if($flash_chart) {
|
||||
echo fs_2d_column_chart ($chart_data, $width, $height);
|
||||
}
|
||||
else {
|
||||
echo "<img src='include/graphs/functions_pchart.php?graph_type=vbar&data=".json_encode($chart_data)."&width=".$width."&height=".$height."'>";
|
||||
$id_graph = uniqid();
|
||||
|
||||
$graph = array();
|
||||
$graph['data'] = $chart_data;
|
||||
$graph['width'] = $width;
|
||||
$graph['height'] = $height;
|
||||
$graph['color'] = $color;
|
||||
$graph['legend'] = $legend;
|
||||
|
||||
$id_graph = serialize_in_temp($graph);
|
||||
|
||||
echo "<img src='include/graphs/functions_pchart.php?graph_type=vbar&id_graph=".$id_graph."'>";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,8 +13,9 @@
|
|||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
include_once("../functions.php");
|
||||
include_once("../functions_html.php");
|
||||
include_once('functions_utils.php');
|
||||
include_once('../functions.php');
|
||||
include_once('../functions_html.php');
|
||||
|
||||
/* pChart library inclusions */
|
||||
include_once("pChart/pData.class.php");
|
||||
|
@ -36,10 +37,7 @@ $legend = json_decode(safe_output(get_parameter('legend')), true);
|
|||
$id_graph = get_parameter('id_graph', false);
|
||||
|
||||
if ($id_graph) {
|
||||
session_start();
|
||||
$graph = $_SESSION['graph_session'][$id_graph];
|
||||
unset($_SESSION['graph_session'][$id_graph]);
|
||||
session_write_close();
|
||||
$graph = unserialize_in_temp($id_graph, false);
|
||||
|
||||
if (isset($graph)) {
|
||||
$data = $graph['data'];
|
||||
|
@ -68,13 +66,6 @@ if ($id_graph) {
|
|||
|
||||
$rgb_color[$i]['alpha'] = $color['alpha'];
|
||||
}
|
||||
// $graph['avg_only'] = $avg_only;
|
||||
// $graph['resolution'] = $resolution;
|
||||
// $graph['time_format'] = $time_format;
|
||||
// $graph['show_events'] = $show_events;
|
||||
// $graph['show_alerts'] = $show_alerts;
|
||||
// $graph['caption'] = $caption;
|
||||
// $graph['baseline'] = $baseline;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,8 +148,7 @@ function pch_pie_graph ($graph_type, $data_values, $legend_values, $width, $heig
|
|||
$myPicture = new pImage($width,$height,$MyData,TRUE);
|
||||
|
||||
/* Set the default font properties */
|
||||
//$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/verdana.ttf","FontSize"=>8,"R"=>80,"G"=>80,"B"=>80));
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>8,"R"=>80,"G"=>80,"B"=>80));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>8,"R"=>80,"G"=>80,"B"=>80));
|
||||
|
||||
/* Create the pPie object */
|
||||
$PieChart = new pPie($myPicture,$MyData);
|
||||
|
@ -199,7 +189,7 @@ function pch_radar_graph ($graph_type, $data_values, $legend_values, $width, $he
|
|||
$myPicture = new pImage($width,$height,$MyData,TRUE);
|
||||
|
||||
/* Set the default font properties */
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>8,"R"=>80,"G"=>80,"B"=>80));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>8,"R"=>80,"G"=>80,"B"=>80));
|
||||
|
||||
/* Create the pRadar object */
|
||||
$SplitChart = new pRadar();
|
||||
|
@ -210,11 +200,11 @@ function pch_radar_graph ($graph_type, $data_values, $legend_values, $width, $he
|
|||
/* Draw an AA pie chart */
|
||||
switch($graph_type) {
|
||||
case "radar":
|
||||
$Options = array("SkipLabels"=>0,"LabelPos"=>RADAR_LABELS_HORIZONTAL, "LabelMiddle"=>FALSE,"Layout"=>RADAR_LAYOUT_STAR,"BackgroundGradient"=>array("StartR"=>255,"StartG"=>255,"StartB"=>255,"StartAlpha"=>100,"EndR"=>207,"EndG"=>227,"EndB"=>125,"EndAlpha"=>50), "FontName"=>"pChart/fonts/pf_arma_five.ttf","FontSize"=>6);
|
||||
$Options = array("SkipLabels"=>0,"LabelPos"=>RADAR_LABELS_HORIZONTAL, "LabelMiddle"=>FALSE,"Layout"=>RADAR_LAYOUT_STAR,"BackgroundGradient"=>array("StartR"=>255,"StartG"=>255,"StartB"=>255,"StartAlpha"=>100,"EndR"=>207,"EndG"=>227,"EndB"=>125,"EndAlpha"=>50), "FontName"=>"../fonts/code.ttf","FontSize"=>6);
|
||||
$SplitChart->drawRadar($myPicture,$MyData,$Options);
|
||||
break;
|
||||
case "polar":
|
||||
$Options = array("Layout"=>RADAR_LAYOUT_CIRCLE,"BackgroundGradient"=>array("StartR"=>255,"StartG"=>255,"StartB"=>255,"StartAlpha"=>100,"EndR"=>207,"EndG"=>227,"EndB"=>125,"EndAlpha"=>50), "FontName"=>"pChart/fonts/pf_arma_five.ttf","FontSize"=>6);
|
||||
$Options = array("Layout"=>RADAR_LAYOUT_CIRCLE,"BackgroundGradient"=>array("StartR"=>255,"StartG"=>255,"StartB"=>255,"StartAlpha"=>100,"EndR"=>207,"EndG"=>227,"EndB"=>125,"EndAlpha"=>50), "FontName"=>"../fonts/code.ttf","FontSize"=>6);
|
||||
$SplitChart->drawRadar($myPicture,$MyData,$Options);
|
||||
break;
|
||||
}
|
||||
|
@ -224,7 +214,7 @@ function pch_radar_graph ($graph_type, $data_values, $legend_values, $width, $he
|
|||
}
|
||||
|
||||
/* TOFIX */
|
||||
function pch_vbar_graph ($graph_type, $index, $data, $width, $height, $rgb_color = false, $xaxisname = "", $yaxisname = "", $show_values = false, $show_legend = true) {
|
||||
function pch_bar_graph ($graph_type, $index, $data, $width, $height, $rgb_color = false, $xaxisname = "", $yaxisname = "", $show_values = false, $show_legend = true) {
|
||||
/* CAT: Vertical Bar Chart */
|
||||
if(is_array($data[0])) {
|
||||
$data2 = array();
|
||||
|
@ -244,11 +234,19 @@ function pch_vbar_graph ($graph_type, $index, $data, $width, $height, $rgb_color
|
|||
/* Create and populate the pData object */
|
||||
$MyData = new pData();
|
||||
foreach($data as $i => $values) {
|
||||
$MyData->addPoints($values,$i);
|
||||
$MyData->setPalette($i, array("R" => $rgb_color[$i]['color']["R"], "G" => $rgb_color[$i]['color']["G"], "B" => $rgb_color[$i]['color']["B"], "Alpha" => $rgb_color[$i]['alpha']));
|
||||
$MyData->addPoints($values,"bar");
|
||||
if($rgb_color !== false) {
|
||||
$MyData->setPalette($i,
|
||||
array("R" => $rgb_color[$i]['color']["R"],
|
||||
"G" => $rgb_color[$i]['color']["G"],
|
||||
"B" => $rgb_color[$i]['color']["B"],
|
||||
"BorderR" => $rgb_color[$i]['border']["R"],
|
||||
"BorderG" => $rgb_color[$i]['border']["G"],
|
||||
"BorderB" => $rgb_color[$i]['border']["B"],
|
||||
"Alpha" => $rgb_color[$i]['alpha']));
|
||||
}
|
||||
}
|
||||
|
||||
//$MyData->addPoints($data,"Yaxis");
|
||||
$MyData->setAxisName(0,$yaxisname);
|
||||
$MyData->addPoints($index,"Xaxis");
|
||||
$MyData->setSerieDescription("Xaxis", $xaxisname);
|
||||
|
@ -264,13 +262,15 @@ function pch_vbar_graph ($graph_type, $index, $data, $width, $height, $rgb_color
|
|||
//$myPicture->drawRectangle(0,0,$width,$height,array("R"=>0,"G"=>0,"B"=>0));
|
||||
|
||||
/* Set the default font */
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>7));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>10));
|
||||
|
||||
/* Define the chart area */
|
||||
$myPicture->setGraphArea(30,20,$width,$height-100);
|
||||
|
||||
/* Draw the scale */
|
||||
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "XMargin" => 40, "LabelRotation" => 90);
|
||||
// TODO: AvoidTickWhenEmpty = FALSE When the distance between two ticks will be less than 50 px
|
||||
// TODO: AvoidTickWhenEmpty = TRUE When the distance between two ticks will be greater than 50 px
|
||||
$scaleSettings = array("AvoidTickWhenEmpty" => FALSE, "AvoidGridWhenEmpty" => FALSE, "GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE, "Mode"=>SCALE_MODE_START0, "XMargin" => 40, "LabelRotation" => 90);
|
||||
$myPicture->drawScale($scaleSettings);
|
||||
|
||||
if($show_legend) {
|
||||
|
@ -289,7 +289,7 @@ function pch_vbar_graph ($graph_type, $index, $data, $width, $height, $rgb_color
|
|||
$myPicture->drawBarChart($settings);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* Render the picture */
|
||||
$myPicture->stroke();
|
||||
}
|
||||
|
@ -329,19 +329,17 @@ function pch_vertical_graph ($graph_type, $index, $data, $width, $height, $rgb_c
|
|||
$point_id = $i;
|
||||
}
|
||||
|
||||
if ($i == 'alert') {
|
||||
$values[100] = 100;
|
||||
}
|
||||
|
||||
$MyData->addPoints($values,$point_id);
|
||||
$MyData->setPalette($point_id,
|
||||
array("R" => $rgb_color[$i]['color']["R"],
|
||||
"G" => $rgb_color[$i]['color']["G"],
|
||||
"B" => $rgb_color[$i]['color']["B"],
|
||||
"BorderR" => $rgb_color[$i]['border']["R"],
|
||||
"BorderG" => $rgb_color[$i]['border']["G"],
|
||||
"BorderB" => $rgb_color[$i]['border']["B"],
|
||||
"Alpha" => $rgb_color[$i]['alpha']));
|
||||
if($rgb_color !== false) {
|
||||
$MyData->setPalette($point_id,
|
||||
array("R" => $rgb_color[$i]['color']["R"],
|
||||
"G" => $rgb_color[$i]['color']["G"],
|
||||
"B" => $rgb_color[$i]['color']["B"],
|
||||
"BorderR" => $rgb_color[$i]['border']["R"],
|
||||
"BorderG" => $rgb_color[$i]['border']["G"],
|
||||
"BorderB" => $rgb_color[$i]['border']["B"],
|
||||
"Alpha" => $rgb_color[$i]['alpha']));
|
||||
}
|
||||
}
|
||||
|
||||
//$MyData->addPoints($data,"Yaxis");
|
||||
|
@ -360,7 +358,7 @@ function pch_vertical_graph ($graph_type, $index, $data, $width, $height, $rgb_c
|
|||
//$myPicture->drawRectangle(0,0,$width,$height,array("R"=>0,"G"=>0,"B"=>0));
|
||||
|
||||
/* Set the default font */
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>7));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>7));
|
||||
|
||||
/* Define the chart area */
|
||||
$myPicture->setGraphArea(30,20,$width,$height-100);
|
||||
|
@ -371,7 +369,6 @@ function pch_vertical_graph ($graph_type, $index, $data, $width, $height, $rgb_c
|
|||
|
||||
if(isset($legend)) {
|
||||
/* Write the chart legend */
|
||||
//$myPicture->drawLegend($height/2,$width/1.8,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
|
||||
$myPicture->drawLegend($height/2,$height-20,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
|
||||
}
|
||||
|
||||
|
@ -420,7 +417,7 @@ function pch_threshold_graph ($graph_type, $index, $data, $width, $height, $xaxi
|
|||
$myPicture->drawRectangle(0,0,699,229,array("R"=>200,"G"=>200,"B"=>200));
|
||||
|
||||
/* Write the picture title */
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>11));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>11));
|
||||
$myPicture->drawText(60,35,$title,array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMLEFT));
|
||||
|
||||
/* Do some cosmetic and draw the chart */
|
||||
|
@ -428,7 +425,7 @@ function pch_threshold_graph ($graph_type, $index, $data, $width, $height, $xaxi
|
|||
$myPicture->drawFilledRectangle(60,40,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
|
||||
$myPicture->drawScale(array("GridR"=>180,"GridG"=>180,"GridB"=>180, "Mode" => SCALE_MODE_START0));
|
||||
$myPicture->setShadow(TRUE,array("X"=>2,"Y"=>2,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>6));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>6));
|
||||
$settings = array("Gradient"=>TRUE,"GradientMode"=>GRADIENT_EFFECT_CAN,"DisplayValues"=>$show_values,"DisplayZeroValues"=>FALSE,"DisplayR"=>100,"DisplayG"=>100,"DisplayB"=>100,"DisplayShadow"=>TRUE,"Surrounding"=>5,"AroundZero"=>FALSE);
|
||||
$myPicture->drawSplineChart($settings);
|
||||
$myPicture->setShadow(FALSE);
|
||||
|
@ -462,7 +459,7 @@ function pch_horizontal_graph ($graph_type, $index, $data, $width, $height, $xax
|
|||
//$myPicture->drawRectangle(0,0,$width,$height,array("R"=>0,"G"=>0,"B"=>0));
|
||||
|
||||
/* Set the default font */
|
||||
$myPicture->setFontProperties(array("FontName"=>"pChart/fonts/code.ttf","FontSize"=>7));
|
||||
$myPicture->setFontProperties(array("FontName"=>"../fonts/code.ttf","FontSize"=>7));
|
||||
|
||||
/* Define the chart area */
|
||||
$myPicture->setGraphArea(75,20,$width,$height);
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
// Copyright (c) 2011-2011 Ártica Soluciones Tecnológicas
|
||||
// http://www.artica.es <info@artica.es>
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU General Public License
|
||||
// as published by the Free Software Foundation; version 2
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
function serialize_in_temp($array = array(), $serial_id = null) {
|
||||
$json = json_encode($array);
|
||||
|
||||
if($serial_id === null) {
|
||||
$serial_id = uniqid();
|
||||
}
|
||||
|
||||
$file_path = sys_get_temp_dir()."/pandora_serialize_".$serial_id;
|
||||
|
||||
if(file_put_contents($file_path, $json) === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $serial_id;
|
||||
}
|
||||
|
||||
function unserialize_in_temp($serial_id = null, $delete = true) {
|
||||
if($serial_id === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$file_path = sys_get_temp_dir()."/pandora_serialize_".$serial_id;
|
||||
|
||||
$content = file_get_contents($file_path);
|
||||
|
||||
if($content === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$array = json_decode($content, true);
|
||||
|
||||
if($delete) {
|
||||
unlink($file_path);
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
function delete_unserialize_in_temp($serial_id = null) {
|
||||
if($serial_id === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$file_path = sys_get_temp_dir()."/pandora_serialize_".$serial_id;
|
||||
|
||||
return unlink($file_path);
|
||||
}
|
||||
?>
|
|
@ -1707,6 +1707,7 @@
|
|||
$OuterTickWidth = isset($Format["OuterTickWidth"]) ? $Format["OuterTickWidth"] : 2;
|
||||
$DrawXLines = isset($Format["DrawXLines"]) ? $Format["DrawXLines"] : TRUE;
|
||||
$DrawYLines = isset($Format["DrawYLines"]) ? $Format["DrawYLines"] : ALL;
|
||||
$AvoidGridWhenEmpty = isset($Format["AvoidGridWhenEmpty"]) ? $Format["AvoidGridWhenEmpty"] : FALSE;
|
||||
$GridTicks = isset($Format["GridTicks"]) ? $Format["GridTicks"] : 4;
|
||||
$GridR = isset($Format["GridR"]) ? $Format["GridR"] : 255;
|
||||
$GridG = isset($Format["GridG"]) ? $Format["GridG"] : 255;
|
||||
|
@ -1716,6 +1717,7 @@
|
|||
$AxisGo = isset($Format["AxisG"]) ? $Format["AxisG"] : 0;
|
||||
$AxisBo = isset($Format["AxisB"]) ? $Format["AxisB"] : 0;
|
||||
$AxisAlpha = isset($Format["AxisAlpha"]) ? $Format["AxisAlpha"] : 100;
|
||||
$AvoidTickWhenEmpty = isset($Format["AvoidTickWhenEmpty"]) ? $Format["AvoidTickWhenEmpty"] : FALSE;
|
||||
$TickRo = isset($Format["TickR"]) ? $Format["TickR"] : 0;
|
||||
$TickGo = isset($Format["TickG"]) ? $Format["TickG"] : 0;
|
||||
$TickBo = isset($Format["TickB"]) ? $Format["TickB"] : 0;
|
||||
|
@ -1978,8 +1980,16 @@
|
|||
}
|
||||
else
|
||||
{
|
||||
if ( $DrawXLines && ($XPos != $this->GraphAreaX1 && $XPos != $this->GraphAreaX2) ) { $this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks)); }
|
||||
if ( $InnerTickWidth !=0 || $OuterTickWidth != 0 ) { $this->drawLine($XPos,$YPos-$InnerTickWidth,$XPos,$YPos+$OuterTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha)); }
|
||||
if ( $DrawXLines && ($XPos != $this->GraphAreaX1 && $XPos != $this->GraphAreaX2) ) {
|
||||
if($Data["Series"][$Abscissa]["Data"][$i] != "" || $AvoidGridWhenEmpty) {
|
||||
$this->drawLine($XPos,$this->GraphAreaY1+$FloatingOffset,$XPos,$this->GraphAreaY2-$FloatingOffset,array("R"=>$GridR,"G"=>$GridG,"B"=>$GridB,"Alpha"=>$GridAlpha,"Ticks"=>$GridTicks));
|
||||
}
|
||||
}
|
||||
if ( $InnerTickWidth !=0 || $OuterTickWidth != 0 ) {
|
||||
if($Data["Series"][$Abscissa]["Data"][$i] != "" || $AvoidTickWhenEmpty) {
|
||||
$this->drawLine($XPos,$YPos-$InnerTickWidth,$XPos,$YPos+$OuterTickWidth,array("R"=>$TickR,"G"=>$TickG,"B"=>$TickB,"Alpha"=>$TickAlpha));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue