feat : sparklines 14j stats + filtre IPs LAN (v1.6.27)
- Admin stats : sparklines SVG par page (120×28 px, courbe + dégradé), carte « Pages les plus visitées » en pleine largeur - AccessLogParser : données par jour (pages_by_day) sur 14 jours - AccessLogParser : IPs privées/LAN exclues de la répartition réseau - ArticleManager : suppression opérateur nullsafe superflu (PHPStan) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -293,7 +293,7 @@ class ArticleManager
|
||||
}
|
||||
$meta['updated_at'] = date('Y-m-d H:i:s');
|
||||
$this->writeMeta($dir, $meta);
|
||||
$this->git?->commit("meta: " . ($meta['title'] ?? $uuid));
|
||||
$this->git?->commit('meta: ' . ($meta['title'] ?? $uuid));
|
||||
}
|
||||
|
||||
public function saveDraftOverlay(string $uuid, array $metaFields, ?string $content = null): void
|
||||
@@ -379,7 +379,7 @@ class ArticleManager
|
||||
@unlink($dir . '/draft_overlay.json');
|
||||
@unlink($dir . '/draft_overlay.md');
|
||||
if ($title !== null) {
|
||||
$this->git?->commit("discard-draft: $title");
|
||||
$this->git->commit("discard-draft: $title");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -488,7 +488,7 @@ class ArticleManager
|
||||
}
|
||||
$meta['cover'] = $coverName;
|
||||
$this->writeMeta($this->dataDir . '/' . $uuid, $meta);
|
||||
$this->git?->commit("cover: " . ($article['title'] ?? $uuid));
|
||||
$this->git?->commit('cover: ' . ($article['title'] ?? $uuid));
|
||||
}
|
||||
|
||||
public function addFileFromUrl(string $uuid, string $url, bool $isCover = false, string $author = '', string $sourceUrl = '', string $title = '', array $extraMeta = []): ?string
|
||||
@@ -775,7 +775,7 @@ class ArticleManager
|
||||
$this->tagTypesPath(),
|
||||
json_encode($types, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . "\n"
|
||||
);
|
||||
$this->git?->commit("tag-types");
|
||||
$this->git?->commit('tag-types');
|
||||
}
|
||||
|
||||
/** Enregistre les tags d'un article directement (utile pour les scripts de migration). */
|
||||
@@ -795,7 +795,7 @@ class ArticleManager
|
||||
$meta['tags'] = $this->normalizeTags($tags);
|
||||
$this->writeMeta($dir, $meta);
|
||||
$this->rebuildSearchIndex();
|
||||
$this->git?->commit("tags: " . ($meta['title'] ?? $uuid));
|
||||
$this->git?->commit('tags: ' . ($meta['title'] ?? $uuid));
|
||||
}
|
||||
|
||||
/** @return list<string> Toutes les valeurs distinctes d'un type de tag, triées. */
|
||||
@@ -845,7 +845,7 @@ class ArticleManager
|
||||
$this->writeMeta($dir, $meta);
|
||||
$this->allCache = null;
|
||||
@unlink($this->articleCachePath($uuid));
|
||||
$this->git?->commit("featured: " . ($meta['title'] ?? $uuid) . " (" . ($featured ? 'on' : 'off') . ")");
|
||||
$this->git?->commit('featured: ' . ($meta['title'] ?? $uuid) . ' (' . ($featured ? 'on' : 'off') . ')');
|
||||
}
|
||||
|
||||
public function delete(string $uuid): bool
|
||||
@@ -871,7 +871,7 @@ class ArticleManager
|
||||
}
|
||||
$this->rebuildSearchIndex();
|
||||
$this->rebuildBacklinksCache();
|
||||
$this->git?->commit("delete: " . ($title ?? $uuid));
|
||||
$this->git?->commit('delete: ' . ($title ?? $uuid));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user