CI 코드

제목 [라이브러리추가] 구글 그래프 사용
글쓴이 준이 작성시각 2009/12/03 15:42:14
댓글 : 3 추천 : 1 스크랩 : 1 조회수 : 17848   RSS
http://www.phpclasses.org/browse/package/5802.html 여기에 있는 소스를 참고 하였구요;;



<설치방법>

-controller폴더에 chart.php 생성

-application/libraries폴더에 GoogleChart.php 생성

http://ci설치경로/chart 로 확인하기.


application/controllers/chart.php
<?php
class Chart extends Controller
{
	function Chart()
	{
		parent::Controller();
		$this->load->library('googlechart');
	}

	function index()
	{
		$values = array(
									'IE7' => 22,
									'IE6' => 30.7,
									'IE5' => 1.7,
									'Firefox' => 36.5,
									'Mozilla' => 1.1,
									'Safari' => 2,
									'Opera' => 1.4
								);

		foreach ($values as $key => $val)
		{
			$label[] = $key;
			$data[] = $val;
		}
		$label = implode('|', $label);
		$data = implode(',', $data);
		$this->googlechart->setType("p3");
		$this->googlechart->setSize("500", "200");
		$this->googlechart->setTitle("Browser");
		$this->googlechart->setTCS("000000", "20");
		$this->googlechart->setData("{$data}");
		$this->googlechart->setLabel("{$label}");
		$this->googlechart->setLegend("{$label}");
		$this->googlechart->setColor("FF0000");
		$this->googlechart->showChart(); 
	}
}

application/libraries/GoogleChart.php
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

/*
Google Chart Class | PHP 5
jonathan.discipulo@wideout.com
Build 1.0
*/

// }}
// {{ GoogleChart
class GoogleChart {

	var $size;
	var $data;
	var $fill;
	var $multi;
	var $type;
	var $title;
	var $tcs;
	var $label;
	var $legend;
	var $color;
	var $api;
	var $url;

	// }}
	// {{ Constructor
	function __construct() {
		
		$this->api = "http://chart.apis.google.com/chart";
		return true;
		
	}
	
	// }}
	// {{ setType
	function setType( $type ) {
		
		/*
		
		Chart Types
		http://code.google.com/apis/chart/types.html
		
		Line charts (lc, ls, lxy)
		Bar charts (bhs, bvs, bhg, bvg)
		Pie charts (p, p3, pc)
		Venn diagrams (v)
		Scatter plots (s)
		Radar charts (r, rs)
		Maps (t)
		Google-o-meters (gom)
		QR codes (qr)
		
		*/
		
		$this->type = "cht={$type}";
		
	}

	// }}
	// {{ setSize
	function setSize( $width, $height ) {
		
		$this->size = "chs={$width}x{$height}";
		
	}

	// }}
	// {{ setFill
	function setFill( $fill ) {
		
		$this->fill = "chf={$fill}";
		
	}

	// }}
	// {{ setMultiFill
	function setMultiFill( $multi ) {
		
		$this->multi = "chm={$multi}";
		
	}

	// }}
	// {{ setColor
	function setColor( $color ) {
		
		$this->color = "chco={$color}";
		
	}

	// }}
	// {{ setTitle
	function setTitle( $title ) {
		
		$this->title = "chtt={$title}";
		
	}

	// }}
	// {{ setTCS
	function setTCS( $tc, $ts ) {
		
		$this->tcs = "chts={$tc},{$ts}";
		
	}
	
	// }}
	// {{ setData
	function setData( $data ) {
		
		$this->data = "chd=t:{$data}";
		
	}

	// }}
	// {{ setLabel
	function setLabel( $label ) {
		
		$this->label = "chl={$label}";
		
	}

	// }}
	// {{ setLegend
	function setLegend( $legend ) {
		
		$this->legend = "chdl={$legend}";
		
	}

	// }}
	// {{ showURL
	function showURL() {
		
		$this->url = $this->api . "?" .
			$this->type . "&" .
			$this->size . "&" .
			$this->color . "&" .
			$this->multi . "&" .
			$this->fill . "&" .
			$this->legend . "&" .
			$this->title . "&" .
			$this->tcs . "&" .
			$this->data . "&" .
			$this->label;

	}

	// }}
	// {{ showChart
	function showChart() {
		
		$this->showURL();
		echo "<img src=\"{$this->url}\" alt=\"{$this->title}\" title=\"{$this->title}\" border=\"0\" />";
		
	}

	function __destruct() {
		// reserved for codes to run when this object is destructed
	}

}


 다음글 php 4.x 에서 profiler 의 query 문제... (1)
 이전글 asset library (4)

댓글

변종원(웅파) / 2009/12/03 17:40:41 / 추천 0
좋은 정보 감사합니다.
미드필드 / 2009/12/06 16:33:59 / 추천 0
좋은  공부 되었습니다.
양승현 / 2009/12/08 09:33:13 / 추천 0
좋네요..^^;