aboutsummaryrefslogtreecommitdiff
path: root/src/staff/report/piechart.php
blob: e6dbf95d1281fa4c9dfe189424ff1be9a0ec5615 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
////////////////////////////////////////////////////////////////////////////////
//BOCA Online Contest Administrator
//    Copyright (C) 2003-2012 by BOCA Development Team (bocasystem@gmail.com)
//
//    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, either version 3 of the License, or
//    (at your option) any later version.
//
//    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.
//    You should have received a copy of the GNU General Public License
//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////////////
// Last modified 05/aug/2012 by cassio@ime.usp.br

ob_start();
header ("Expires: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
session_start();
$locr = $_SESSION['locr'];
$loc = $_SESSION['loc'];

require_once($locr . "/libchart/libchart.php");
header("Content-type: image/png");
ob_end_flush();

$v = explode(chr(1),rawurldecode($_GET['dados']),100);
$cor = null;
if(isset($_GET['color']))
  $cor = explode("-",rawurldecode($_GET['color']),100);

if(count($v)/2 > 8)
  $chart = new PieChart(450, 300);
else
  $chart = new PieChart(400, 250);

if(isset($_GET['order'])) $chart->order=true;
else $chart->order=false;

$tot=0;
for($i=1;$i<count($v); $i+=2) {
	$tot += $v[$i+1];
}
for($i=1;$i<count($v); $i+=2) {
  $color = null;
  if($cor != null) {
    $r = hexdec( substr($cor[($i-1)/2], 0, 2) );
    $g = hexdec( substr($cor[($i-1)/2], 2, 2) );
    $b = hexdec( substr($cor[($i-1)/2], 4, 2) );
    $color = array($r, $g, $b);
  }
  if($v[$i+1] > $tot/100)
	  $chart->addPoint(new Point($v[$i], $v[$i+1], $color));
  else
	  $chart->addPoint(new Point($v[$i], $tot/100, $color));
}

$chart->setTitle($v[0]);
$chart->setLogo($locr. "/images/poweredbyboca.png");
$chart->render();

?>