diff --git a/app/Http/Controllers/ImageController.php b/app/Http/Controllers/ImageController.php index 3cf0bb8f..04b063f6 100644 --- a/app/Http/Controllers/ImageController.php +++ b/app/Http/Controllers/ImageController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use Illuminate\Contracts\Filesystem\Filesystem; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Storage; use League\Glide\Responses\LaravelResponseFactory; use League\Glide\ServerFactory; @@ -12,18 +14,24 @@ class ImageController extends Controller * Handle the incoming request. * * @param \Illuminate\Http\Request $request + * * @return \Illuminate\Http\Response */ - public function __invoke(Filesystem $filesystem, $path) + public function __invoke(Request $request, Filesystem $filesystem, $path) { + if (str($request->path())->contains('img-public')) { + $filesystemPublic = Storage::disk('publicDisk'); + } + $server = ServerFactory::create([ - 'response' => new LaravelResponseFactory(app('request')), - 'source' => $filesystem->getDriver(), - 'cache' => $filesystem->getDriver(), + 'response' => new LaravelResponseFactory(app('request')), + 'source' => str($request->path())->contains('img-public') ? $filesystemPublic->getDriver() : $filesystem->getDriver(), + 'cache' => $filesystem->getDriver(), 'cache_path_prefix' => '.cache', - 'base_url' => 'img', + 'base_url' => $request->route() + ->getName() === 'imgPublic' ? '' : 'img', ]); - return $server->getImageResponse('public/'.$path, request()->all()); + return $server->getImageResponse($path, request()->all()); } } diff --git a/app/Http/Livewire/Frontend/Welcome.php b/app/Http/Livewire/Frontend/Welcome.php index 056fdffb..e45c4d96 100644 --- a/app/Http/Livewire/Frontend/Welcome.php +++ b/app/Http/Livewire/Frontend/Welcome.php @@ -67,7 +67,7 @@ class Welcome extends Component 'SEOData' => new SEOData( title: __('Welcome'), description: __('Welcome to the portal of the Einundzwanzig Community.'), - image: asset('img/screenshot.png') + image: url()->route('imgPublic', ['path' => 'img/screenshot.png', 'h' => 630, 'w' => 1200, 'fit' => 'crop']) ), ]); } diff --git a/app/Http/Livewire/News/InternArticleView.php b/app/Http/Livewire/News/InternArticleView.php index ca59bfdf..57acc611 100644 --- a/app/Http/Livewire/News/InternArticleView.php +++ b/app/Http/Livewire/News/InternArticleView.php @@ -115,7 +115,11 @@ class InternArticleView extends Component title: $this->libraryItem->name, description: strip_tags($this->libraryItem->excerpt) ?? __('Here we post important news that is relevant for everyone.'), author: $this->libraryItem->lecturer->name, - image: $this->libraryItem->getFirstMedia('main') ? $this->libraryItem->getFirstMediaUrl('main') : asset('img/einundzwanzig-wallpaper-benrath.png'), + image: $this->libraryItem->getFirstMedia('main') + ? $this->libraryItem->getFirstMediaUrl('main', 'seo') + : url()->route('imgPublic', [ + 'path' => 'img/einundzwanzig-wallpaper-benrath.png', 'h' => 630, 'w' => 1200, 'fit' => 'crop' + ]), published_time: Carbon::parse($this->libraryItem->created_at), type: 'article', ), diff --git a/app/Models/LibraryItem.php b/app/Models/LibraryItem.php index 50490976..bb732586 100644 --- a/app/Models/LibraryItem.php +++ b/app/Models/LibraryItem.php @@ -81,6 +81,9 @@ class LibraryItem extends Model implements HasMedia, Sortable, Feedable ->addMediaConversion('preview') ->fit(Manipulations::FIT_CROP, 300, 300) ->nonQueued(); + $this->addMediaConversion('seo') + ->fit(Manipulations::FIT_CROP, 1200, 630) + ->nonQueued(); $this->addMediaConversion('thumb') ->fit(Manipulations::FIT_CROP, 130, 130) ->width(130) diff --git a/config/filesystems.php b/config/filesystems.php index 11eea8a6..336c5bed 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -50,6 +50,12 @@ return [ 'throw' => false, ], + 'publicDisk' => [ + 'driver' => 'local', + 'root' => public_path(), + 'throw' => false, + ], + 's3' => [ 'driver' => 's3', 'key' => env('AWS_ACCESS_KEY_ID'), diff --git a/resources/views/livewire/frontend/welcome.blade.php b/resources/views/livewire/frontend/welcome.blade.php index ada78ba3..3446b8f0 100644 --- a/resources/views/livewire/frontend/welcome.blade.php +++ b/resources/views/livewire/frontend/welcome.blade.php @@ -13,7 +13,7 @@ interessierte Leute und interessante Gesprächspartner.

PS: Bitcoin ist begrenzt und daher nicht von Staaten oder Notenbanken - inflationierbar. Es wird niemals mehr als 21 Millionen Bitcoin geben. Daher auch der Name “Einundzwanzig” + inflationierbar. Es wird niemals mehr als 21 Millionen bitcoins geben. Daher auch der Name “Einundzwanzig” 😉

diff --git a/resources/views/livewire/news/article-overview.blade.php b/resources/views/livewire/news/article-overview.blade.php index 7c44f47d..954dc9f9 100644 --- a/resources/views/livewire/news/article-overview.blade.php +++ b/resources/views/livewire/news/article-overview.blade.php @@ -65,7 +65,7 @@
{{ $libraryItem->name }}
diff --git a/routes/web.php b/routes/web.php index 0039b83f..de7468e1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -11,6 +11,10 @@ Route::get('/img/{path}', \App\Http\Controllers\ImageController::class) ->where('path', '.*') ->name('img'); +Route::get('/img-public/{path}', \App\Http\Controllers\ImageController::class) + ->where('path', '.*') + ->name('imgPublic'); + Route::get('auth/auth47', \App\Http\Livewire\Auth\Auth47Component::class) ->name('auth.auth47');