开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

使用 MooTools MilkChart 和 Google Analytics 动态创建图表

用 JavaScript 创建图形图表的前景令人兴奋。这也是对 JavaScript 的完美使用——使用不显眼的脚本创建非必要的功能。我创建了 PHP(Analytics 类)、HTML 和 MooTools JavaScript 的组合,它们将连接到 Google Analytics,创建一个包含给定月份统计数据的 HTML 表格,并使用 MooTools MilkChart 将它们绘制成彩色图表。

PHP

/* defaults */
$month = date('n');
$year = date('Y');
$type = 'Column';

/* submission? */
if($_GET['month'] || $_GET['year']):
	/* cleanse lookups */
	$month = (int) $_GET['month']; if(!$month) { $month = 1; }
	$year = (int) $_GET['year']; if(!$year) { $year = date('Y'); }
	/* retrieve information from google analytics */
	require 'ga/analytics.class.php';
	$analytics = new analytics('youraccount@gmail.com', 'yourP@ss');
	$analytics->setProfileByName('yourdomain.com');
	$analytics->setMonth($month,$year);
	$visits = $analytics->getVisitors();
	$views = $analytics->getPageviews();
	/* build tables */
	if(count($visits)) {
		//visits - php
		$visits_table_data = '<table id="data-table-visits">';
		/* $visits_table_data.= '<thead><tr><th>Unique Visits</th><th>PageViews</th></tr></head><tbody>'; */
		$visits_table_data.= '<thead><tr><th>Unique Visits</th></tr></head><tbody>';
		foreach($visits as $day=>$visit) { 
			/*
			$visits_table_data.= '<tr><td>'.$visit.'</td><td>'.$views[$day].'</td></tr>'."\n"; 
			$visits_table_foot.= '<td>'.$day.'</td><td>'.$day.'</td>'."\n";
			*/
			$visits_table_data.= '<tr><td>'.$visit.'</td></tr>'."\n"; 
			$visits_table_foot.= '<td>'.$day.'</td>'."\n";
		}
		$visits_table_data.= '</tbody>';
		$visits_table_data.= '<tfoot><tr>'.$visits_table_foot.'</tr></tfoot>';
		$visits_table_data.= '</table>';
	}
endif;

这一切都始于从 Google Analytics 获取信息。只需提供您想要统计的时​​间范围。我通常选择按月检索统计信息。

生成的 HTML 和 MooTools JavaScript

<h2>Select Your Month/Year</h2>
<form method="get">
	<select name="month" id="month">
		<option value="">-- Select Month --</option>
		<?php
			for($x = 1; $x <= 12; $x++):
				echo '<option value="',$x,'"',($month == $x ? ' selected="selected"' : ''),'>',date('F',mktime(0,0,0,$x,1,2009)),'</option>';
			endfor;
		?>
	</select>
	<select name="year" id="year">
		<option value="">-- Select Year --</option>
		<?php
			for($x = 2008; $x <= date('Y'); $x++):
				echo '<option value="',$x,'"',($year == $x ? ' selected="selected"' : ''),'>',$x,'</option>';
			endfor;
		?>
	</select>
	<select name="type" id="type">
		<option value="">-- Select Chart Type --</option>
		<?php
			$chart_types = array('Column','Bar','Line','Scatter','Pie');
			foreach($chart_types as $chart_type):
				echo '<option value="',$chart_type,'"',($type == $chart_type ? ' selected="selected"' : ''),'>',$chart_type,'</option>';
			endforeach;
		?>
	</select>
	<input type="submit" name="submit" id="submit" value="Get Statistics!" />
</form>

<?php 
	//php time - echo tables
	if($visits_table_data) { echo '<h3>Visits</h3>', $visits_table_data,'<br />'; } 
?>
<?php if(count($visits)): ?>
	<script type="text/javascript">
		var visits = new MilkChart.<?php echo $_GET['type']; ?>('data-table-visits',{
			width: 960,
			height: 550,
			font: 'tahoma',
			showValues: false,
			useFooter: true
		});
	</script>
<?php endif; ?>

使用 THEAD、TBODY 和 TFOOT 元素对于确保在生成的图表中放置正确的标签非常重要。数据表本身非常简单。 MilkChart 将采用上表并创建一个包含图表的 CANVAS 元素。

您可以选择五种不同的图表类型:柱形图、条形图、饼图、折线图和散点图。 MilkChart 充分利用了 MooTools 的继承模型,因为每种类型的图表类都扩展了 MilkChart 基类。

我喜欢 MilkChart 开发人员完美利用 MooTools 的 OOP/继承模型的方式。我也很喜欢 MilkChart 要求 HTML 表格的数据最少。 MilkChart 并非没有缺陷。一些表格类型适合包含多个维度(例如,在同一图表中同时使用页面浏览量和访问量),并且价值标签的放置还有待完善。

未经允许不得转载:我爱分享网 » 使用 MooTools MilkChart 和 Google Analytics 动态创建图表

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏