dbxapp 4.1.3
CMS, Shop, Workflows und modulare Geschäftsanwendungen
Loading...
Searching...
No Matches
activate_home_tvspot_v4_20260731.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
5$repoRoot = dirname(__DIR__, 4);
6$dbFile = $repoRoot . '/dbx/modules/dbx/db/dbxMedia.db3';
7$videoFile = $repoRoot . '/files/media/video/dbxapp-tvspot-20260731-v4.mp4';
8$posterFile = $repoRoot . '/files/media/img/images/dbxapp-tvspot-poster-20260731-v4.webp';
9$backupDir = $repoRoot . '/files/tmp';
11
12foreach (array($dbFile, $videoFile, $posterFile) as $requiredFile) {
13 if (!is_file($requiredFile)) {
14 fwrite(STDERR, 'Pflichtdatei fehlt: ' . $requiredFile . PHP_EOL);
15 exit(1);
16 }
17}
18
19$posterInfo = @getimagesize($posterFile);
20if (!is_array($posterInfo) || (int)($posterInfo[0] ?? 0) !== 1024 || (int)($posterInfo[1] ?? 0) !== 576) {
21 fwrite(STDERR, 'Das V4-Poster hat nicht die erwarteten 1024x576 Pixel.' . PHP_EOL);
22 exit(1);
23}
24
25if (!is_dir($backupDir) && !mkdir($backupDir, 0775, true) && !is_dir($backupDir)) {
26 fwrite(STDERR, 'Backup-Verzeichnis konnte nicht erstellt werden: ' . $backupDir . PHP_EOL);
27 exit(1);
28}
29
30$backupFile = $backupDir . '/dbxMedia-before-tvspot-v4-' . date('Ymd-His') . '.db3';
31if (!copy($dbFile, $backupFile)) {
32 fwrite(STDERR, 'Mediendatenbank konnte nicht gesichert werden.' . PHP_EOL);
33 exit(1);
34}
35
37chdir($base);
38$_SERVER['REQUEST_URI'] = '/dbxapp/';
39$_SERVER['HTTP_HOST'] = 'localhost';
40$_SERVER['SCRIPT_NAME'] = '/dbxapp/index.php';
41
42define('dbxSystem', 'dbxWebApp');
43define('dbxRunAsAdmin', 1);
44
45require $base . '/dbx/vendor/autoload.php';
46require_once $base . '/dbx/include/dbxKernel.php';
47
48$db = dbx()->get_system_obj('dbxDB');
49$mediaDd = 'dbx|dbxMedia';
50
51try {
52 if ($db->begin($mediaDd) !== 1) {
53 throw new RuntimeException('Die Medientransaktion konnte nicht gestartet werden.');
54 }
55
56 $before = $db->select1($mediaDd, $mediaId, '*', 0);
57 if (!is_array($before) || (int)($before['id'] ?? 0) !== $mediaId) {
58 throw new RuntimeException('Der erwartete Medieneintrag #442 existiert nicht.');
59 }
60 if ((string)($before['media_type'] ?? '') !== 'video') {
61 throw new RuntimeException('Der Medieneintrag #442 ist kein Video.');
62 }
63
64 $updated = $db->update($mediaDd, array(
65 'update_date' => date('Y-m-d H:i:s.v'),
66 'update_uid' => 1,
67 'active' => 1,
68 'title' => 'dbxapp TV-Spot – Event-Choreografie',
69 'alt' => 'Dynamischer dbxapp TV-Spot mit eingeblendeten Statuskarten, UI-Ereignissen und klaren Zustandswechseln',
70 'file_name' => basename($videoFile),
71 'file_path' => 'media/video/' . basename($videoFile),
72 'mime' => 'video/mp4',
73 'size' => filesize($videoFile),
74 'width' => 1024,
75 'height' => 576,
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',
82 ), $mediaId, 0, 1, 0, 1);
83 if ($updated !== 1) {
84 throw new RuntimeException('Der Medieneintrag #442 konnte nicht aktualisiert werden.');
85 }
86
87 $after = $db->select1($mediaDd, $mediaId, '*', 0);
88 if (!is_array($after) || (string)($after['file_name'] ?? '') !== basename($videoFile)) {
89 throw new RuntimeException('Der aktualisierte Medieneintrag konnte nicht verifiziert werden.');
90 }
91
92 if ($db->commit($mediaDd) !== 1) {
93 throw new RuntimeException('Die Medientransaktion konnte nicht abgeschlossen werden.');
94 }
95} catch (Throwable $exception) {
96 $db->rollback($mediaDd);
97 fwrite(STDERR, $exception->getMessage() . PHP_EOL);
98 fwrite(STDERR, 'Unveränderte Sicherung: ' . $backupFile . PHP_EOL);
99 exit(1);
100}
101
102echo json_encode(array(
103 'media_id' => $mediaId,
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'] ?? ''),
108 'backup' => $backupFile,
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
if($updated !==1) $after
foreach(array($dbFile, $videoFile, $posterFile) as $requiredFile) $posterInfo
$_SERVER['REQUEST_METHOD']
exit
Definition index.php:146
DBX schema administration.