[] * * Das dritte Argument ist Umuts Ordner „unterlagenfrwebsite“ (12.10.2026): Alpaka-Fotos, PQ-Logo, * Galabau-Signet und die drei PDFs. Sie bekommen hier feste, einfache Namen, damit das Seed-Skript * nicht an „Freistellungsbescheinigung §48 … bis 11.05.2029.pdf“ hängt. Kommt eine neue * Bescheinigung, genügt es, sie nach dem gleichen Muster benannt in den Ordner zu legen. */ $quelle = rtrim($argv[1] ?? '', '/\\'); $ziel = rtrim($argv[2] ?? '', '/\\'); if ('' === $quelle || '' === $ziel || !is_dir($quelle.'/images')) { fwrite(STDERR, "Aufruf: php scripts/build-huefner-assets.php \n"); exit(1); } if (!is_dir($ziel) && !mkdir($ziel, 0775, true)) { fwrite(STDERR, "Zielordner lässt sich nicht anlegen: $ziel\n"); exit(1); } foreach (glob($quelle.'/images/*.{jpg,png}', GLOB_BRACE) ?: [] as $datei) { copy($datei, $ziel.'/'.basename($datei)); } // Baum und Steine: im 1600 x 607 px großen Logo etwa x 15–500, y 10–560. $logo = imagecreatefrompng($quelle.'/images/logo.png'); if (false === $logo) { fwrite(STDERR, "logo.png lässt sich nicht lesen.\n"); exit(1); } $kante = 512; $symbol = imagecreatetruecolor($kante, $kante); imagesavealpha($symbol, true); imagealphablending($symbol, false); imagefill($symbol, 0, 0, imagecolorallocatealpha($symbol, 0, 0, 0, 127)); imagealphablending($symbol, true); [$x, $y, $b, $h] = [15, 10, 490, 550]; $massstab = min(($kante - 24) / $b, ($kante - 24) / $h); $zb = (int) round($b * $massstab); $zh = (int) round($h * $massstab); imagecopyresampled($symbol, $logo, (int) (($kante - $zb) / 2), (int) (($kante - $zh) / 2), $x, $y, $zb, $zh, $b, $h); imagepng($symbol, $ziel.'/favicon.png'); echo "Bilder kopiert, Seitensymbol geschnitten: $ziel\n"; $unterlagen = rtrim($argv[3] ?? '', '/\\'); if ('' === $unterlagen) { exit(0); } // Muster im Ordner => fester Name. Bei mehreren Treffern gewinnt der letzte in Namensreihenfolge. $feste = [ 'Alpaka (1).jpeg' => 'alpaka-plakat.jpg', 'Alpaka (2).jpeg' => 'alpaka-wiese.jpg', 'Alpaka (3).jpeg' => 'alpaka-stall.jpg', 'Alpaka (4).jpeg' => 'alpaka-blume.jpg', 'Alpaka (6).jpeg' => 'alpaka-zaunbau.jpg', 'Alpaka (9).jpeg' => 'alpaka-rasen.jpg', 'PQ-Logo*.png' => 'pq-logo.png', 'Signum*.png' => 'galabau-signet.png', '100-emoji.png' => 'hundert.png', 'PQ-Bescheinigung*.pdf' => 'pq-bescheinigung.pdf', 'Freistellungsbescheinigung §13*.pdf' => 'freistellung-13b.pdf', 'Freistellungsbescheinigung §48*.pdf' => 'freistellung-48b.pdf', ]; $dateien = scandir($unterlagen) ?: []; foreach ($feste as $muster => $name) { $treffer = array_values(array_filter($dateien, static fn (string $d): bool => fnmatch($muster, $d, FNM_NOESCAPE))); if ([] === $treffer) { fwrite(STDERR, "Fehlt in den Unterlagen: $muster\n"); exit(1); } sort($treffer); copy($unterlagen.'/'.end($treffer), $ziel.'/'.$name); } echo 'Unterlagen übernommen: '.count($feste)." Dateien\n";