$u, 'sizes' => $size . 'x' . $size, 'type' => 'image/png']; } } return ['src' => $fallback, 'sizes' => $size . 'x' . $size, 'type' => 'image/png']; }; $icons = []; $i192 = $icon('icon-192', 192, 'assets/icons/icon-192.png'); $i512 = $icon('icon-512', 512, 'assets/icons/icon-512.png'); $m192 = $icon('icon-192-maskable', 192, 'assets/icons/icon-192-maskable.png'); $m512 = $icon('icon-512-maskable', 512, 'assets/icons/icon-512-maskable.png'); if ($i192) { $icons[] = $i192; } if ($i512) { $icons[] = $i512; } if ($m192) { $m192['purpose'] = 'maskable'; $icons[] = $m192; } if ($m512) { $m512['purpose'] = 'maskable'; $icons[] = $m512; } $out = [ 'name' => $name, 'short_name' => $short, 'start_url' => './', 'scope' => './', 'display' => 'standalone', 'background_color' => '#d8d9da', 'theme_color' => setting('primary_color', '#2F6BF7'), 'icons' => $icons, ]; echo json_encode($out, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);