Location: PHPKode > projects > QuickTicket > quickticket/qti_stats_dt_csv.php
<?php

// QuickTicket 2.3 build:20091102

session_start();
require_once('bin/qti_init.php');
if ( !$oVIP->CanView('V4') ) HtmlPage(11);
include(Translate('qti_stat.php'));

// --------
// INITIALISE
// --------

$oVIP->output='print';

$strCSV = '';

$s = -1;   // section filter
$y = date('Y'); if ( intval(date('n'))<2 ) $y--; // year filter
$tag = ''; // tags filter
$tt = 'g'; // tab: g=global, gt=globaltrend, d=detail, dt=detailtrend
$ch = array('m','b','a','a'); // chart parameters
// [0] blocktime: m=month, q=quarter, d=10days 
// [1] graph type: b=bar, l=line, B=bar+variation, L=line+variation
// [2] graphics reals: a=actual, p=percent
// [3] trends reals: a=actual, p=percent

// --------
// SUBMITTED
// --------
  
if ( isset($_GET['y']) ) $y = intval($_GET['y']);
if ( isset($_GET['s']) ) $s = intval($_GET['s']);
if ( $s>=0 ) { $strSection = 'forum='.$s.' AND'; } else { $strSection=''; }
if ( isset($_GET['tag']) ) $tag = strip_tags($_GET['tag']);
  $strTags = '';
  if ( !empty($tag) )
  {
    if ( substr($tag,-1,1)==';' ) $tag = substr($tag,0,-1); 
    $arrTags = explode(';',$tag);
    $str = '';
    foreach($arrTags as $strTag)
    {
    if ( !empty($str) ) $str .= ' OR ';
    $str .= 'UPPER(tags) LIKE "%'.strtoupper($strTag).'%"';
    }
    if ( !empty($str) ) $strTags = ' ('.$str.') AND';
  }
if ( isset($_GET['tt']) ) $tt = strip_tags($_GET['tt']);
if ( isset($_GET['ch']) )
{
  $str = strip_tags($_GET['ch']);
  if ( strlen($str)>0 ) $ch['time'] = substr($str,0,1); // blocktime
  if ( strlen($str)>1 ) $ch['type'] = substr($str,1,1); // graph type
  if ( strlen($str)>2 ) $ch['value'] = substr($str,2,1); // value type
  if ( strlen($str)>3 ) $ch['trend'] = substr($str,3,1); // trends value type
}

// ------
// OUTPUT
// ------

$arrYears = array($y-1,$y); // Normal is 1 year but for Trends analysis, 2 years

include('qti_stats_inc.php');

$arr = QTarrget(GetSections($oVIP->role));
$strCSV .= '"'.($y-1).$y.($s>=0 ? ' ('.$arr[$s].')' : '').(empty($tag) ? '' : ', '.$L['With_tag'].' '.str_replace(';',' '.$L['or'].' ',$tag)).'"<br/>';

// -----
foreach($arrYears as $y) {
// -----

// Table header

$strCSV .= '"'.$y.'";';

switch($ch['time'])
{
case 'q': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"Q'.$i.'";'; } break;
case 'm': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"'.$L['dateMM'][$i].'";'; } break;
case 'd': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"'.QTdatestr( DateAdd($strTendaysago,$i,'day'),'d M','' ).'";'; } break;
}
$strCSV .= '"'.($ch['time']=='d' ? '10 '.strtolower($L['Days']) : $L['Year']).'"<br/>';

// Table body

$strCSV .= '"'.$L['New_topics'].'";';
for ($intBt=1;$intBt<=$intMaxBt;$intBt++) { $strCSV .= (isset($arrN[$y][$intBt]) ? $arrN[$y][$intBt] : '0').';'; }
$strCSV .= $arrNs[$y].'<br/>';

$strCSV .= '"'.$L['Closed_topics'].'";';
for ($intBt=1;$intBt<=$intMaxBt;$intBt++) { $strCSV .= (isset($arrC[$y][$intBt]) ? $arrC[$y][$intBt] : '0').';'; }
$strCSV .= $arrCs[$y].'<br/><br/>';

// -----
}
// -----

// Table header

$strCSV .= '"'.$L['Trends'].'";';

switch($ch['time'])
{
case 'q': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"Q'.$i.'";'; } break;
case 'm': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"'.$L['dateMM'][$i].'";'; } break;
case 'd': for ($i=1;$i<=$intMaxBt;$i++) { $strCSV .= '"'.QTdatestr( DateAdd($strTendaysago,$i,'day'),'d M','' ).'";'; } break;
}
$strCSV .= '"'.($ch['time']=='d' ? '10 '.strtolower($L['Days']) : $L['Year']).'"<br/>';

// Table body

$strCSV .= $L['New_topics'].';';
for ($intBt=1;$intBt<=$intMaxBt;$intBt++) 
{
  $i = 0;
  if ( isset($arrN[$y][$intBt]) && isset($arrN[$y-1][$intBt]) )
  {
    $i = $arrN[$y][$intBt]-$arrN[$y-1][$intBt];
    if ( $ch['trend']=='p' && $i!=0 )
    {
      if ( $arrN[$y-1][$intBt]==0 ) $arrN[$y-1][$intBt]=1;
      $i = intval(($i/$arrN[$y-1][$intBt])*100);
    }
  }
  $strCSV .= $i.';';
}
$i = 0;
if ( isset($arrNs[$y]) && isset($arrNs[$y-1]) )
{
  $i = $arrNs[$y]-$arrNs[$y-1];
  if ( $ch['trend']=='p' && $i!=0 )
  {
    if ( $arrNs[$y-1]==0 ) $arrNs[$y-1]=1;
    $i = intval(($i/$arrNs[$y-1])*100);
  }
}
$strCSV .= $i.'<br/>';

// Closed_topics trends

$strCSV .= $L['Closed_topics'].';';
for ($intBt=1;$intBt<=$intMaxBt;$intBt++) 
{
  $i = 0;
  if ( isset($arrC[$y][$intBt]) && isset($arrC[$y-1][$intBt]) )
  {
    $i = $arrC[$y][$intBt]-$arrC[$y-1][$intBt];
    if ( $ch['trend']=='p' && $i!=0 )
    {
      if ( $arrC[$y-1][$intBt]==0 ) $arrC[$y-1][$intBt]=1;
      $i = intval(($i/$arrC[$y-1][$intBt])*100);
    }
  }
  $strCSV .= $i.';';
}
$i = 0;
if ( isset($arrCs[$y]) && isset($arrCs[$y-1]) )
{
  $i = $arrCs[$y]-$arrCs[$y-1];
  if ( $ch['trend']=='p' && $i!=0 )
  {
    if ( $arrCs[$y-1]==0 ) $arrCs[$y-1]=1;
    $i = intval(($i/$arrCs[$y-1])*100);
  }
}
$strCSV .= $i.'<br/>';

// Export

if ( !headers_sent() )
{
  $strCSV = str_replace('<br/>',"\r\n",$strCSV);
  header('Content-Type: text/csv; charset='.QTI_HTML_CHAR);
  header('Content-Disposition: attachment; filename="global_stat_'.$y.'.csv"');
}

echo $strCSV;

?>
Return current item: QuickTicket