v1.6.28 : drill-down IP par AS dans stats pays, suppression Répartition par réseau
- Admin stats : clic sur un réseau AS affiche les IPs avec mini sparkline 14 jours + articles/livres consultés - AccessLogParser : calcul ip_data (daily + top paths) inclus dans le cache stats - Suppression du tableau statique "Répartition par réseau" (fusionné dans accordéon pays) - PHP-CS-Fixer appliqué sur l'ensemble des fichiers modifiés Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+15
-13
@@ -230,7 +230,9 @@ function adminStatusBadge(array $a, int $now): string
|
||||
return '/admin/articles?' . http_build_query($p);
|
||||
};
|
||||
$_sortIcon = function (string $col) use ($_sortBy, $_sortDir): string {
|
||||
if ($_sortBy !== $col) { return '<span class="text-muted ms-1" style="font-size:.75em">↕</span>'; }
|
||||
if ($_sortBy !== $col) {
|
||||
return '<span class="text-muted ms-1" style="font-size:.75em">↕</span>';
|
||||
}
|
||||
return '<span class="ms-1" style="font-size:.75em">' . ($_sortDir === 'asc' ? '↑' : '↓') . '</span>';
|
||||
};
|
||||
?>
|
||||
@@ -389,7 +391,7 @@ function adminStatusBadge(array $a, int $now): string
|
||||
'sort' => $_sortBy,
|
||||
'dir' => $_sortDir,
|
||||
], fn ($v) => $v !== ''));
|
||||
foreach ($adminData['articles'] as $_fa):
|
||||
foreach ($adminData['articles'] as $_fa):
|
||||
?>
|
||||
<form id="toggle-featured-<?= htmlspecialchars($_fa['uuid']) ?>" method="post" action="/?action=admin_toggle_featured" hidden>
|
||||
<input type="hidden" name="uuid" value="<?= htmlspecialchars($_fa['uuid']) ?>">
|
||||
@@ -1422,11 +1424,11 @@ foreach (COLOR_PALETTE_16 as $_i => $_rgb):
|
||||
<option value="">— Choisir un article —</option>
|
||||
<?php
|
||||
$alreadyIn = $eb['articles'] ?? [];
|
||||
foreach ($adminData['all_articles'] as $aa):
|
||||
if (in_array($aa['slug'] ?? '', $alreadyIn, true)) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
foreach ($adminData['all_articles'] as $aa):
|
||||
if (in_array($aa['slug'] ?? '', $alreadyIn, true)) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<option value="<?= htmlspecialchars($aa['slug'] ?? '') ?>">
|
||||
<?= htmlspecialchars($aa['title']) ?>
|
||||
<?= !$aa['published'] ? ' (brouillon)' : '' ?>
|
||||
@@ -1495,11 +1497,11 @@ foreach (COLOR_PALETTE_16 as $_i => $_rgb):
|
||||
|
||||
<?php
|
||||
$_aiNotice = $adminData['ai_notice'] ?? '';
|
||||
$_aiProvider = $adminData['ai_provider'] ?? 'anthropic';
|
||||
$_aiModel = $adminData['ai_model'] ?? '';
|
||||
$_anthropicOk = $adminData['anthropic_key_set'] ?? false;
|
||||
$_cliOk = $adminData['claude_cli_found'] ?? false;
|
||||
?>
|
||||
$_aiProvider = $adminData['ai_provider'] ?? 'anthropic';
|
||||
$_aiModel = $adminData['ai_model'] ?? '';
|
||||
$_anthropicOk = $adminData['anthropic_key_set'] ?? false;
|
||||
$_cliOk = $adminData['claude_cli_found'] ?? false;
|
||||
?>
|
||||
|
||||
<?php if ($_aiNotice === 'saved'): ?>
|
||||
<div class="alert alert-success py-2 small">Configuration IA enregistrée.</div>
|
||||
@@ -1619,6 +1621,6 @@ sudo -u www-data HOME=/var/lib/claude-www /usr/local/bin/claude --print "Répond
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
$content = ob_get_clean();
|
||||
$content = ob_get_clean();
|
||||
$title = 'Administration — ' . siteTitle();
|
||||
include __DIR__ . '/layout.php';
|
||||
|
||||
Reference in New Issue
Block a user