Spade

Mini Shell

Directory:~$ /proc/self/root/usr/local/lsws/admin/html.5.4.11/classes/
Upload File

[Home] [System Details] [Kill Me]
Current File:~$ //proc/self/root/usr/local/lsws/admin/html.5.4.11/classes/CHART.php

<?php

class CHART {
	
	var $live = FALSE;
	var $live_delay = 1;
	var $live_url = NULL;
	
	var $y_max_value = 0;
	
	var $yaxis_label = NULL;
	
	var $data = array();
	
	function __construct($live = FALSE, $live_delay = 1, $url = NULL) {
		$this->live = (boolean) $live;
		$this->live_delay = (int) $live_delay;
		$this->live_url = trim($url);
	}
	
	function addDataSet($data, $title, $color) {
		$this->data[] = new CHART_DATA($data, $title, $color);
	}
	
	function render() {
		return $this->render_header() .  $this->render_data() .
$this->render_footer();
		
	}
	
	private function render_data() {
		$buf = "";
		$buf .= "<chart_data>";
		
		$buf .="<row>\n<null/>\n";
		
		if(isset($this->data[0])) {
			for($c = count($this->data[0]->data), $i=1; $i <= $c; $i++) {
				$buf .= "<string>{$i}</string>\n";
			}
		}
		$buf .="</row>";
		
		foreach($this->data as $chart_data) {
			$buf .=
"<row>\n<string>{$chart_data->title}</string>\n";
			
			foreach($chart_data->data as $value) {
				$buf .= "<number>{$value}</number>\n";	
			}
			
			$buf .= "</row>";
		}
		
		$buf .="</chart_data>";
		
		return $buf;
	
	}
	
	private function render_header() {
		$buf = "
	<chart>
	

	<axis_category size='10' color='000000'
alpha='0' font='arial' bold='false'
skip='0' steps='6' orientation='horizontal'
/>
	<axis_ticks value_ticks='true'
category_ticks='true' major_thickness='1'
minor_thickness='1' minor_count='1'
major_color='000000' minor_color='222222'
position='outside' />
	<axis_value min='0' max='{$this->y_max_value}'
font='arial' bold='false' size='10'
color='000000' alpha='100' steps='6'
prefix='' suffix='' decimals='0'
separator='' show_min='true' />

	<chart_border color='000000' top_thickness='1'
bottom_thickness='1' left_thickness='1'
right_thickness='1' />\n";
		
		$buf .= "<series_color>\n";

		foreach($this->data as $set) {
			$buf .= "<color>{$set->color}</color>\n";
		}
		
		$buf .= "</series_color>\n";
		
		return $buf;
	}
	
	private function render_footer() {
		
		$buf = "<chart_grid_h alpha='10'
color='000000' thickness='1' type='solid'
/>
	<chart_grid_v alpha='10' color='000000'
thickness='1' type='solid' />
	<chart_pref line_thickness='2' point_shape='none'
fill_shape='false' />
	<chart_rect x='50' y='35' width='890'  
positive_alpha='30' negative_color='ff0000'
negative_alpha='10' />
	<chart_type>Line</chart_type>
	<chart_value position='cursor' size='12'
color='ffffff' alpha='75' />

	<legend_label layout='horizontal' bold='false'
size='11' alpha='90'/>
	<legend_rect x='50' y='10' width='890'
height='20' margin='0' fill_alpha='8'
line_color='000000' line_alpha='0'
line_thickness='0'/>

<draw>
<text color='000000' alpha='60'
font='arial' rotation='-90' bold='true'
size='13' x='0' y='155' width='250'
height='30' h_align='middle'
v_align='middle'>{$this->yaxis_label}</text>
</draw>
	

	
	";
		

		if($this->live) {
			$buf .= "<live_update url='{$this->live_url}'
delay='{$this->live_delay}' />\n";	
		}
		
		

		$buf .= "</chart>";
		
		return $buf;
		
	}
	
	
}

class CHART_DATA {
	
	var $data = array();
	
	//options
	var $title = NULL;
	var $color = NULL;
	
	function CHART_DATA(&$data, $title, $color) {
		$this->data = &$data;
		$this->title = &$title;
		$this->color = &$color;
	}
	
}