blob: 35fc0a5a1f7c8b7db20f545e447fda9dfbd4dbbd [file] [log] [blame]
<?php
$columns = array(
"project_id",
"stats_date",
"liveness",
"bugs_total",
"bugs_7_delta",
"bugs_7_percentage",
"bugs_7_gainloss",
"bugs_30_delta",
"bugs_30_percentage",
"bugs_30_gainloss",
"bugs_180_delta",
"bugs_180_percentage",
"bugs_180_gainloss",
"news_7_answer_average_time",
"news_7_unanswered_number",
"news_7_insider_posts",
"news_7_number_posts",
"news_7_average_posts",
"news_30_answer_average_time",
"news_30_unanswered_number",
"news_30_insider_posts",
"news_30_number_posts",
"news_30_average_posts",
"mail_7_number_posts",
"mail_7_average_posts",
"mail_7_average_subscribers",
"mail_30_number_posts",
"mail_30_average_posts",
"mail_30_average_subscribers",
"mail_180_number_posts",
"mail_180_average_posts",
"mail_180_average_subscribers",
);
require_once "/home/data/httpd/eclipse-php-classes/system/dbconnection_dashboard_rw.class.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/projects/stats/hostname.php";
$dbc_cache = new DBConnectionDashboard();
$db_handle = $dbc_cache->connect();
function download_csv_dashboard($db_handle,$project){
global $columns;
$csv_file = "";
$count = count($columns);
for ($i = 0; $i < $count; $i++) {
$csv_file .= $columns[$i] . ",";
}
$csv_file .= "\r\n";
if ($project == ""){
// Get last available date
$query = "SELECT stats_date FROM ".stats_table()." ORDER BY stats_date DESC LIMIT 1";
$result = mysql_query($query,$db_handle);
$row = mysql_fetch_assoc($result);
$last_date = $row['stats_date'];
// Main query to select all stats from dashboard
$query = "SELECT * FROM ".stats_table()." WHERE stats_date = \"".$last_date."\"";
}else{
$query = "SELECT * FROM ".stats_table()." WHERE project_id = \"".$project."\" ORDER BY stats_date DESC";
}
$result = mysql_query($query,$db_handle);
while($row = mysql_fetch_assoc($result)){
for ($i = 0; $i < $count; $i++) {
$value = $row[$columns[$i]];
if( $columns[$i] == "stats_date" ) {
$pos1 = strpos($value,"-");
$pos2 = strpos($value,"-",$pos1+1);
$month = substr($value, $pos1+1, $pos2-$pos1-1);
$day = substr($value, $pos2+1);
$year = substr($value, 0, $pos1);
$value = $month . "/" . $day . "/" . $year;
}
$csv_file .= $value . ",";
}
$csv_file .= "\r\n";
}
return $csv_file;
}
@ob_start();
if (isset($_GET['project'])){
$project = ereg_replace("[^a-zA-Z0-9 ]","",$_GET['project']);
$csv_file = download_csv_dashboard($db_handle,$project);
$output_file = $project.'_statistics.csv';
}else{
$project = "";
$csv_file = download_csv_dashboard($db_handle,$project);
$output_file = 'dashboard_statistics.csv';
}
@ob_end_clean();
@ini_set('zlib.output_compression', 'Off');
header('Pragma: public');
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Content-Transfer-Encoding: none');
// This should work for IE & Opera
header('Content-Type: application/octetstream; name="' . $output_file . '"');
// This should work for the rest
header('Content-Type: application/octet-stream; name="' . $output_file . '"');
header('Content-Disposition: inline; filename="' . $output_file . '"');
echo $csv_file;
$output_file = null;
$csv_file = null;
$query = null;
$result = null;
$db_handle = null;
$dbc_cache = null;
exit();
?>