MastodonHelp/web/site/stats.php

94 lines
3.5 KiB
PHP
Raw Normal View History

2020-10-27 16:32:23 +01:00
<?php
echo('</nav>
2020-10-26 16:05:59 +01:00
<div class="scrwide">
<div class="scrwidein">
<section class="sectcontm">
2020-10-27 16:32:23 +01:00
<h3>'._('Statistics').'</h3>
2020-10-26 16:05:59 +01:00
<link rel="stylesheet" type="text/css" href="'.$prepath.'stats.css?v='.$cjrand.'">
<script language="JavaScript">
</script>
'.N);
function sp($num,$sing,$plur) {
if ($num==1)
return($sing);
else
return($plur);
}
$link=mysqli_connect($conf['db_host'],$conf['db_user_name'],$conf['db_user_password'],$conf['db_name'],$conf['db_port'],$conf['db_socket']) or muorimeglio(_('Couldnt connect to database: ').mysqli_connect_error().' ['.mysqli_connect_errno().']',false);
mysqli_set_charset($link,'utf8mb4');
$res=mysqli_query($link,'SELECT MAX(Visits) AS MaxVisits, MAX(Hits) AS MaxHits FROM ZStats') or muorimeglio(__LINE__.': '.mysqli_error($link),true);
$row=mysqli_fetch_assoc($res);
$maxvisits=$row['MaxVisits'];
$maxhits=$row['MaxHits'];
echo('<p>'._('Statistics for the last 30 days.').'</p>'.N);
$now=time();
$tdstart=gmmktime(0,0,0,gmdate('n',$now),gmdate('j',$now),gmdate('Y',$now));
$limit=$tdstart-(30*24*60*60);
$res=mysqli_query($link,'SELECT * FROM ZStats WHERE TS >= '.$limit.' ORDER BY TS DESC') or muorimeglio(__LINE__.': '.mysqli_error($link),true);
2020-10-31 06:57:34 +01:00
$hlmap=array(
'ca'=>_('Catalan'),
'en'=>_('English'),
'es'=>_('Spanish'),
'fr'=>_('French'),
'it'=>_('Italian')
);
$hpmap=array(
'home'=>_('Guide'),
'instances'=>_('Instances'),
'about'=>_('About'),
'statistics'=>_('Statistics'),
'contribute'=>_('Contribute'),
'404'=>'404'
);
2020-10-26 16:05:59 +01:00
while ($row=mysqli_fetch_assoc($res)) {
2020-10-31 06:57:34 +01:00
$hl=explode(';',$row['HitsLang']);
$buf=array();
foreach($hl as $key=>$val) {
$val=explode(':',$val);
$buf[$hlmap[$val[0]]]=$val[1];
}
2020-10-26 16:05:59 +01:00
arsort($buf);
2020-10-31 06:57:34 +01:00
$hl='';
foreach($buf as $key=>$val) $hl.=$key.': '.$val.'; ';
$hl=_('Hits per language').': '.substr($hl,0,-2);
$hp=explode(';',$row['HitsPage']);
$buf=array();
foreach($hp as $key=>$val) {
$val=explode(':',$val);
$buf[$hpmap[$val[0]]]=$val[1];
}
2020-10-26 16:05:59 +01:00
arsort($buf);
2020-10-31 06:57:34 +01:00
$hp='';
foreach($buf as $key=>$val) $hp.=$key.': '.$val.'; ';
$hp=_('Hits per page').': '.substr($hp,0,-2);
2020-10-26 16:05:59 +01:00
echo('<div class="info">'.gmdate('d/m/Y',$row['TS']).': '.$row['Visits'].' <span class="visitslab">'.sp($row['Visits'],_('visit'),_('visits')).'</span>, '.$row['Hits'].' <span class="hitslab">'.sp($row['Hits'],_('hit'),_('hits')).'</span></div>'.N);
2020-10-31 06:57:34 +01:00
echo('<div class="info">'.$hl.'</div>'.N);
echo('<div class="info">'.$hp.'</div>'.N);
2020-10-26 16:05:59 +01:00
echo('<div class="visits" style="width:'.(100/$maxvisits*$row['Visits']).'%"></div>'.N);
echo('<div class="hits" style="width:'.(100/$maxhits*$row['Hits']).'%"></div>'.N);
echo('<div class="sep"></div>'.N);
}
mysqli_close($link);
2020-10-27 16:32:23 +01:00
echo('</section>
2020-10-26 16:05:59 +01:00
</div>
2020-10-27 16:32:23 +01:00
</div>'.N);
$tradnotes=array(
'ca'=>'Translation of this page to catalan language is missing, please click <a href="/contribute/ca">here</a> if youd like to help, or <span class="transc" onclick="document.getElementById(\'transd\').style.display=\'none\'">here</span> to close this message',
'es'=>'Translation of this page to spanish language is missing, please click <a href="/contribute/es">here</a> if youd like to help, or <span class="transc" onclick="document.getElementById(\'transd\').style.display=\'none\'">here</span> to close this message',
'fr'=>'Translation of this page to french language is missing, please click <a href="/contribute/fr">here</a> if youd like to help, or <span class="transc" onclick="document.getElementById(\'transd\').style.display=\'none\'">here</span> to close this message'
);
if (array_key_exists($dlang,$tradnotes))
echo('<div id="transd">'.$tradnotes[$dlang].'</div>'.N);
?>