用 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 并非没有缺陷。一些表格类型适合包含多个维度(例如,在同一图表中同时使用页面浏览量和访问量),并且价值标签的放置还有待完善。
