Queue watermark precache after configuration changes

This commit is contained in:
Terranom674
2026-08-15 16:51:57 +02:00
parent 634b8e08e6
commit 1cab3a746a

View File

@@ -44,13 +44,8 @@ function bratonien_tools_clear_image_cache()
throw new RuntimeException('Piwigos Funktion clear_derivative_cache() ist nicht verfuegbar.');
}
// Zuerst exakt denselben Mechanismus verwenden wie
// Wartung -> Mehrfache Bildgroessen entfernen -> Alles.
clear_derivative_cache('all');
// Danach bewusst ALLE verbleibenden erzeugten Bilddateien im
// Derivatverzeichnis entfernen. Damit werden auch Dateien erfasst,
// die von Plugins erzeugt wurden oder nicht in Piwigos Typ-Muster passen.
$failed_files = array();
$residual_deleted = 0;
@@ -111,9 +106,11 @@ function bratonien_tools_clear_image_cache()
);
}
bratonien_tools_request_watermark_precache();
return array(
'message' => sprintf(
'Bildcache vollstaendig geleert: %d Dateien (%s) entfernt, davon %d Custom-Derivate. %d Restdateien wurden zusaetzlich ausserhalb von Piwigos Standard-Löschmustern entfernt.',
'Bildcache vollstaendig geleert: %d Dateien (%s) entfernt, davon %d Custom-Derivate. %d Restdateien wurden zusaetzlich ausserhalb von Piwigos Standard-Loeschmustern entfernt. Wasserzeichen-Precache wurde vorgemerkt.',
$before['files'],
bratonien_tools_format_bytes($before['bytes']),
$before['custom'],
@@ -172,6 +169,25 @@ function bratonien_tools_scan_image_cache($cache_root)
return $result;
}
function bratonien_tools_request_watermark_precache()
{
$request_file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'bratonien-tools-precache.request';
$directory = dirname($request_file);
if (!is_dir($directory) && !mkdir($directory, 0755, true) && !is_dir($directory))
{
throw new RuntimeException('Precache-Anforderung konnte nicht vorbereitet werden.');
}
if (@file_put_contents($request_file, (string)time()."\n", LOCK_EX) === false)
{
throw new RuntimeException('Precache-Anforderung konnte nicht gespeichert werden.');
}
@chmod($request_file, 0664);
return $request_file;
}
function bratonien_tools_format_bytes($bytes)
{
$units = array('B', 'KB', 'MB', 'GB', 'TB');