@php function generateNew($fill) { $basicManifest = [ 'name' => $fill['name'], 'short_name' => $fill['short_name'], 'start_url' => $fill['start_url'], 'background_color' => '#ffffff', 'theme_color' => '#000000', 'display' => 'standalone', 'orientation' => "any", 'status_bar' => "black", 'splash' => $fill['splash'] ]; foreach ($fill['icons'] as $size => $file) { $fileInfo = pathinfo($file['path']); $basicManifest['icons'][] = [ 'src' => $file['path'], 'type' => 'image/' . $fileInfo['extension'], 'sizes' => $size, 'purpose' => $file['purpose'] ]; } if ($fill['shortcuts']) { foreach ($fill['shortcuts'] as $shortcut) { if (array_key_exists("icons", $shortcut)) { $fileInfo = pathinfo($shortcut['icons']['src']); $icon = [ 'src' => $shortcut['icons']['src'], 'type' => 'image/' . $fileInfo['extension'], 'purpose' => $shortcut['icons']['purpose'] ]; } else { $icon = []; } $basicManifest['shortcuts'][] = [ 'name' => trans($shortcut['name']), 'description' => trans($shortcut['description']), 'url' => $shortcut['url'], 'icons' => [ $icon ] ]; } } return $basicManifest; } use App\Models\Config; use App\Models\Setting; use App\Models\Page; // Queries $config = Config::get(); $setting = Setting::where('status', 1)->first(); $page = Page::where('slug', 'home')->where('status', 1)->get(); $icons = [ '512x512' => [ 'path' => asset($setting->favicon), 'purpose' => 'any' ] ]; $splash = [ '640x1136' => asset($setting->favicon), '750x1334' => asset($setting->favicon), '828x1792' => asset($setting->favicon), '1125x2436' => asset($setting->favicon), '1242x2208' => asset($setting->favicon), '1242x2688' => asset($setting->favicon), '1536x2048' => asset($setting->favicon), '1668x2224' => asset($setting->favicon), '1668x2388' => asset($setting->favicon), '2048x2732' => asset($setting->favicon), ]; $shortcuts = [ [ 'name' => $setting->site_name, 'description' => $page[0]->description, 'url' => "/", 'icons' => [ "src" => asset($setting->favicon), "purpose" => "any" ] ] ]; $fill = [ "name" => $setting->site_name, "short_name" => $setting->site_name, "start_url" => "/", "icons" => $icons, "splash" => $splash, "shortcuts" => $shortcuts, ]; $out = generateNew($fill); Storage::disk('public_uploads')->put('manifest.json', json_encode($out)); @endphp