3declare(strict_types=1);
13 if (!is_file($requiredFile)) {
14 fwrite(STDERR,
'Pflichtdatei fehlt: ' . $requiredFile . PHP_EOL);
21 fwrite(STDERR,
'Das V4-Poster hat nicht die erwarteten 1024x576 Pixel.' . PHP_EOL);
26 fwrite(STDERR,
'Backup-Verzeichnis konnte nicht erstellt werden: ' .
$backupDir . PHP_EOL);
32 fwrite(STDERR,
'Mediendatenbank konnte nicht gesichert werden.' . PHP_EOL);
42define(
'dbxSystem',
'dbxWebApp');
43define(
'dbxRunAsAdmin', 1);
45require
$base .
'/dbx/vendor/autoload.php';
46require_once
$base .
'/dbx/include/dbxKernel.php';
53 throw new RuntimeException(
'Die Medientransaktion konnte nicht gestartet werden.');
57 if (!is_array($before) || (
int)($before[
'id'] ?? 0) !==
$mediaId) {
58 throw new RuntimeException(
'Der erwartete Medieneintrag #442 existiert nicht.');
60 if ((
string)($before[
'media_type'] ??
'') !==
'video') {
61 throw new RuntimeException(
'Der Medieneintrag #442 ist kein Video.');
65 'update_date' => date(
'Y-m-d H:i:s.v'),
68 'title' =>
'dbxapp TV-Spot – Event-Choreografie',
69 'alt' =>
'Dynamischer dbxapp TV-Spot mit eingeblendeten Statuskarten, UI-Ereignissen und klaren Zustandswechseln',
71 'file_path' =>
'media/video/' . basename(
$videoFile),
72 'mime' =>
'video/mp4',
76 'thumb_file_path' =>
'media/img/images/' . basename(
$posterFile),
77 'thumb_width' => 1024,
78 'thumb_height' => 576,
79 'media_type' =>
'video',
80 'storage_type' =>
'local',
81 'media_folder' =>
'video',
84 throw new RuntimeException(
'Der Medieneintrag #442 konnte nicht aktualisiert werden.');
89 throw new RuntimeException(
'Der aktualisierte Medieneintrag konnte nicht verifiziert werden.');
93 throw new RuntimeException(
'Die Medientransaktion konnte nicht abgeschlossen werden.');
95}
catch (Throwable $exception) {
97 fwrite(STDERR, $exception->getMessage() . PHP_EOL);
98 fwrite(STDERR,
'Unveränderte Sicherung: ' .
$backupFile . PHP_EOL);
102echo json_encode(array(
104 'previous_file' => (
string)($before[
'file_name'] ??
''),
105 'active_file' => (
string)(
$after[
'file_name'] ??
''),
106 'active_size' => (
int)(
$after[
'size'] ?? 0),
107 'poster' => (
string)(
$after[
'thumb_file_path'] ??
''),
109), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . PHP_EOL;
if(!is_array( $before)||(int)( $before[ 'id'] ?? 0) !==$mediaId) if((string)($before['media_type'] ?? '') !=='video') $updated
foreach(array($dbFile, $videoFile, $posterFile) as $requiredFile) $posterInfo
$_SERVER['REQUEST_METHOD']
if(!is_file($dbFile)) $backupDir
if(!is_dir($backupDir) &&!mkdir($backupDir, 0775, true) &&!is_dir($backupDir)) $backupFile
DBX schema administration.