From 400c2db26ee507270c182792e816b8131721072c Mon Sep 17 00:00:00 2001
From: HolgerHatGarKeineNode
Date: Thu, 16 Mar 2023 18:45:32 +0100
Subject: [PATCH] seo image added
---
app/Http/Controllers/ImageController.php | 20 +++++++++++++------
app/Http/Livewire/Frontend/Welcome.php | 2 +-
app/Http/Livewire/News/InternArticleView.php | 6 +++++-
app/Models/LibraryItem.php | 3 +++
config/filesystems.php | 6 ++++++
.../views/livewire/frontend/welcome.blade.php | 2 +-
.../livewire/news/article-overview.blade.php | 2 +-
routes/web.php | 4 ++++
8 files changed, 35 insertions(+), 10 deletions(-)
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 @@
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');