89 lines
3.5 KiB
PHP
89 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace WP_Piwik\Widget;
|
|
|
|
use WP_Piwik\Widget;
|
|
|
|
class Chart extends Visitors
|
|
{
|
|
|
|
public $className = __CLASS__;
|
|
|
|
public function show()
|
|
{
|
|
$result = $this->requestData();
|
|
$response = $result["response"];
|
|
if (!$result["success"]) {
|
|
echo '<strong>' . __('Piwik error', 'wp-piwik') . ':</strong> ' . htmlentities($response[$method]['message'], ENT_QUOTES, 'utf-8');
|
|
} else {
|
|
$values = $labels = $bounced = $unique = '';
|
|
$count = $uniqueSum = 0;
|
|
if (is_array($response['VisitsSummary.getVisits']))
|
|
foreach ($response['VisitsSummary.getVisits'] as $date => $value) {
|
|
$count++;
|
|
$values .= $value . ',';
|
|
$unique .= $response['VisitsSummary.getUniqueVisitors'][$date] . ',';
|
|
$bounced .= $response['VisitsSummary.getBounceCount'][$date] . ',';
|
|
if ($this->parameter['period'] == 'week') {
|
|
preg_match("/[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/", $date, $dateList);
|
|
$textKey = $this->dateFormat($dateList[0], 'short_week');
|
|
} else $textKey = substr($date, -2);
|
|
$labels .= '["' . $textKey . '"],';
|
|
$uniqueSum += $response['VisitsSummary.getActions'][$date];
|
|
}
|
|
else {
|
|
$values = '0,';
|
|
$labels = '[0,"-"],';
|
|
$unique = '0,';
|
|
$bounced = '0,';
|
|
}
|
|
$average = round($uniqueSum / 30, 0);
|
|
$values = substr($values, 0, -1);
|
|
$unique = substr($unique, 0, -1);
|
|
$labels = substr($labels, 0, -1);
|
|
$bounced = substr($bounced, 0, -1);
|
|
?>
|
|
<div>
|
|
<canvas id="wp-piwik_stats_vistors_graph" style="height:220px;"></canvas>
|
|
</div>
|
|
<script>
|
|
new Chart(
|
|
document.getElementById('wp-piwik_stats_vistors_graph'),
|
|
{
|
|
type: 'line',
|
|
data: {
|
|
labels: [<?php echo $labels ?>],
|
|
datasets: [
|
|
{
|
|
label: 'Visitors',
|
|
backgroundColor: '#0277bd',
|
|
borderColor: '#0277bd',
|
|
data: [<?php echo $values; ?>],
|
|
borderWidth: 1
|
|
},
|
|
{
|
|
label: 'Unique',
|
|
backgroundColor: '#ff8f00',
|
|
borderColor: '#ff8f00',
|
|
data: [<?php echo $unique; ?>],
|
|
borderWidth: 1
|
|
},
|
|
{
|
|
label: 'Bounced',
|
|
backgroundColor: '#ad1457',
|
|
borderColor: '#ad1457',
|
|
data: [<?php echo $bounced; ?>],
|
|
borderWidth: 1
|
|
},
|
|
]
|
|
},
|
|
options: {}
|
|
}
|
|
);
|
|
</script>
|
|
<?php
|
|
}
|
|
}
|
|
|
|
}
|