feat: plugin analytics avec custom field kirbyup + Chart.js
Refactoring complet du plugin analytics : remplacement de la section avec template Vue inline par un custom field compilé avec kirbyup. Dashboard avec KPIs, line chart Chart.js et filtres par date. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7371e66ec1
commit
8a73da920f
15 changed files with 873 additions and 0 deletions
50
public/site/plugins/analytics/routes/get-data.php
Normal file
50
public/site/plugins/analytics/routes/get-data.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
<?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
|
||||
];
|
||||
}
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue