feat : barre de partage articles + déduplication images uploadées (v1.6.20)

- post_view.php : barre de partage (mail, X, LinkedIn, Mastodon, copier, Web Share) sur articles publiés (#47)
- share.js : logique clipboard + navigator.share sans script tiers, compatible CSP (#47)
- addFile() : hardlink vers fichier identique si même hash16-size.ext dans un autre article (#35)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 10:56:43 +02:00
parent 5ce91da06a
commit 3b22be94e8
6 changed files with 85 additions and 2 deletions
+10 -1
View File
@@ -1197,7 +1197,16 @@ class ArticleManager
$size = filesize($uploadedFile['tmp_name']);
$name = "{$hash}-{$size}.{$ext}";
$dest = $dir . '/' . $name;
if (!rename($uploadedFile['tmp_name'], $dest) && !move_uploaded_file($uploadedFile['tmp_name'], $dest)) {
// Déduplication : si ce fichier identique existe déjà dans un autre article, crée un hardlink
if (!file_exists($dest)) {
$existing = glob($this->dataDir . '/*/files/' . $name);
if (!empty($existing) && is_file($existing[0])) {
link($existing[0], $dest) || copy($existing[0], $dest);
@unlink($uploadedFile['tmp_name']);
return $name;
}
}
if (!file_exists($dest) && !rename($uploadedFile['tmp_name'], $dest) && !move_uploaded_file($uploadedFile['tmp_name'], $dest)) {
return null;
}
return $name;