51 lines
1.2 KiB
PHP
51 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
return [
|
||
|
|
'pattern' => 'analytics-data.json',
|
||
|
|
'method' => 'GET',
|
||
|
|
'action' => function () {
|
||
|
|
$kirby = kirby();
|
||
|
|
$user = $kirby->user();
|
||
|
|
|
||
|
|
// Seuls les admins peuvent accéder aux données analytics
|
||
|
|
if (!$user || !$user->isAdmin()) {
|
||
|
|
return [
|
||
|
|
'status' => 'error',
|
||
|
|
'message' => 'Unauthorized'
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
$analyticsPage = $kirby->page('analytics');
|
||
|
|
|
||
|
|
if (!$analyticsPage) {
|
||
|
|
return [
|
||
|
|
'status' => 'error',
|
||
|
|
'message' => 'Analytics page not found'
|
||
|
|
];
|
||
|
|
}
|
||
|
|
|
||
|
|
$request = $kirby->request();
|
||
|
|
$filters = [];
|
||
|
|
|
||
|
|
// Récupérer les filtres depuis query params
|
||
|
|
if ($startDate = $request->query()->get('startDate')) {
|
||
|
|
$filters['startDate'] = $startDate;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($endDate = $request->query()->get('endDate')) {
|
||
|
|
$filters['endDate'] = $endDate;
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($project = $request->query()->get('project')) {
|
||
|
|
$filters['project'] = $project;
|
||
|
|
}
|
||
|
|
|
||
|
|
$data = $analyticsPage->getAnalyticsData($filters);
|
||
|
|
|
||
|
|
return [
|
||
|
|
'status' => 'success',
|
||
|
|
'data' => $data
|
||
|
|
];
|
||
|
|
}
|
||
|
|
];
|