| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/seaside.pacim.de/web/ |
Upload File : |
<?php
/**
* manifest.php – Web-App-Manifest NUR für die mobile Tages-/Check-in-App (day-list.php + checkin.php).
*
* Wird ausschließlich von der mobilen Ansicht per <link rel="manifest" href="manifest.php?t=TOKEN">
* eingebunden – NICHT vom PaCIM-CRM. Dadurch ist nur die mobile Ansicht „installierbar"
* (Zum Startbildschirm hinzufügen) und nutzt die Seaside-CI (Icon + Farben).
*
* Der Token wandert in start_url/scope/id, damit die installierte App direkt die richtige
* (gefilterte, rechtebeschränkte) Liste des jeweiligen Mitarbeiter-Zugangs öffnet.
*/
// Token (mobile Ansicht) ODER Terminal-Hash. Beide: bin2hex(random_bytes(12)) = 24 Hex-Zeichen. Kein DB-Zugriff.
$tok = substr( preg_replace( '/[^a-f0-9]/', '', strtolower( (string) ( $_GET['t'] ?? '' ) ) ), 0, 32 );
$term = substr( preg_replace( '/[^a-f0-9]/', '', strtolower( (string) ( $_GET['term'] ?? '' ) ) ), 0, 32 );
if ( $term !== '' ) {
// Terminal-App: gleiche Icons/Farben wie die mobile Ansicht, start_url = Terminal-Portal.
$start = 'terminal.php?h=' . $term . '&src=pwa';
$appName = 'PaCIM Terminal'; $appShort = 'Terminal'; $appDesc = 'PaCIM Terminal – Auswahl der Mobil-Ansichten.';
} else {
// start_url/id relativ zur Manifest-URL (ohne Query) -> /day-list.php?t=…
$start = $tok !== '' ? ( 'day-list.php?t=' . $tok . '&src=pwa' ) : 'day-list.php';
$appName = 'Seaside Parking'; $appShort = 'Parking'; $appDesc = 'Mobile Anreise- & Check-in-Liste für Seaside-Travel-Parking.';
}
// Seaside-Logo als Icon, Farben im CI (Navy). start_url/scope/id = Token/Hash (Technik).
$manifest = array(
'name' => $appName,
'short_name' => $appShort,
'description' => $appDesc,
'lang' => 'de',
'dir' => 'ltr',
'start_url' => $start,
'scope' => './',
'id' => $start,
'display' => 'standalone',
'display_override' => array( 'standalone', 'fullscreen' ),
'background_color' => '#0d2c44', // Splash-Hintergrund = CI-Navy (passend zum weißen Logo-Icon)
'theme_color' => '#0d2c44', // App-Leiste = CI-Navy (deckt sich mit dem Header der App)
'categories' => array( 'business', 'productivity' ),
'prefer_related_applications' => false,
'icons' => array(
array( 'src' => 'assets/webapp/icon-192.png', 'sizes' => '192x192', 'type' => 'image/png', 'purpose' => 'any' ),
array( 'src' => 'assets/webapp/icon-512.png', 'sizes' => '512x512', 'type' => 'image/png', 'purpose' => 'any' ),
array( 'src' => 'assets/webapp/icon-192-maskable.png', 'sizes' => '192x192', 'type' => 'image/png', 'purpose' => 'maskable' ),
array( 'src' => 'assets/webapp/icon-512-maskable.png', 'sizes' => '512x512', 'type' => 'image/png', 'purpose' => 'maskable' ),
),
);
header( 'Content-Type: application/manifest+json; charset=utf-8' );
header( 'Cache-Control: public, max-age=3600' );
echo json_encode( $manifest, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT );