From d359dd56b0c45ddd3e786d076be40d9d2fdd1f69 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Sat, 22 Nov 2025 22:16:55 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Implement=20`SeoTrait`=20across=20c?= =?UTF-8?q?omponents=20for=20improved=20SEO=20integration.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BooksForPlebs/BookRentalGuide.php | 3 +++ app/Livewire/Helper/FollowTheRabbit.php | 3 +++ .../livewire/auth/confirm-password.blade.php | 10 ++++--- .../livewire/auth/forgot-password.blade.php | 11 +++++--- .../views/livewire/auth/register.blade.php | 13 ++++++--- .../livewire/auth/reset-password.blade.php | 10 ++++--- .../livewire/auth/verify-email.blade.php | 6 ++++- .../views/livewire/cities/create.blade.php | 13 +++++---- .../views/livewire/cities/edit.blade.php | 13 +++++---- .../views/livewire/cities/index.blade.php | 9 +++++-- .../courses/create-edit-events.blade.php | 21 ++++++++++----- .../views/livewire/courses/create.blade.php | 2 ++ .../views/livewire/courses/edit.blade.php | 2 ++ .../views/livewire/courses/index.blade.php | 7 +++-- .../livewire/courses/landingpage.blade.php | 27 +++++++++++++------ .../views/livewire/lecturers/create.blade.php | 2 ++ .../views/livewire/lecturers/edit.blade.php | 2 ++ .../views/livewire/lecturers/index.blade.php | 22 ++++++++++----- .../meetups/create-edit-events.blade.php | 15 ++++++++--- .../views/livewire/meetups/create.blade.php | 8 ++++-- .../views/livewire/meetups/edit.blade.php | 8 ++++-- .../meetups/landingpage-event.blade.php | 3 +++ .../livewire/meetups/landingpage.blade.php | 16 ++++++++--- .../views/livewire/meetups/map.blade.php | 5 +++- .../livewire/settings/appearance.blade.php | 3 ++- .../settings/delete-user-form.blade.php | 5 +++- .../livewire/settings/password.blade.php | 6 ++++- .../views/livewire/settings/profile.blade.php | 7 +++-- .../views/livewire/venues/create.blade.php | 7 +++-- .../views/livewire/venues/edit.blade.php | 7 +++-- .../views/livewire/venues/index.blade.php | 9 +++++-- 31 files changed, 202 insertions(+), 73 deletions(-) diff --git a/app/Livewire/BooksForPlebs/BookRentalGuide.php b/app/Livewire/BooksForPlebs/BookRentalGuide.php index db6686c..f3f18c4 100644 --- a/app/Livewire/BooksForPlebs/BookRentalGuide.php +++ b/app/Livewire/BooksForPlebs/BookRentalGuide.php @@ -2,11 +2,14 @@ namespace App\Livewire\BooksForPlebs; +use App\Traits\SeoTrait; use Livewire\Component; use RalphJSmit\Laravel\SEO\Support\SEOData; class BookRentalGuide extends Component { + use SeoTrait; + public function render() { return view('livewire.books-for-plebs.book-rental-guide')->with( [ diff --git a/app/Livewire/Helper/FollowTheRabbit.php b/app/Livewire/Helper/FollowTheRabbit.php index d0ceeb3..9f25f41 100644 --- a/app/Livewire/Helper/FollowTheRabbit.php +++ b/app/Livewire/Helper/FollowTheRabbit.php @@ -2,11 +2,14 @@ namespace App\Livewire\Helper; +use App\Traits\SeoTrait; use Livewire\Component; use RalphJSmit\Laravel\SEO\Support\SEOData; class FollowTheRabbit extends Component { + use SeoTrait; + public function render() { return view('livewire.helper.follow-the-rabbit')->with([ diff --git a/resources/views/livewire/auth/confirm-password.blade.php b/resources/views/livewire/auth/confirm-password.blade.php index be99b69..51a23ba 100644 --- a/resources/views/livewire/auth/confirm-password.blade.php +++ b/resources/views/livewire/auth/confirm-password.blade.php @@ -1,11 +1,15 @@ ['required', 'string'], ]); - if (! Auth::guard('web')->validate([ + if (!Auth::guard('web')->validate([ 'email' => Auth::user()->email, 'password' => $this->password, ])) { @@ -39,7 +43,7 @@ new #[Layout('components.layouts.auth')] class extends Component { /> - +
diff --git a/resources/views/livewire/auth/forgot-password.blade.php b/resources/views/livewire/auth/forgot-password.blade.php index f223342..7b78a7f 100644 --- a/resources/views/livewire/auth/forgot-password.blade.php +++ b/resources/views/livewire/auth/forgot-password.blade.php @@ -1,10 +1,14 @@
- + - + diff --git a/resources/views/livewire/auth/register.blade.php b/resources/views/livewire/auth/register.blade.php index 1fe90c8..524070e 100644 --- a/resources/views/livewire/auth/register.blade.php +++ b/resources/views/livewire/auth/register.blade.php @@ -1,6 +1,7 @@ validate([ 'name' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:' . User::class], + 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class], 'password' => ['required', 'string', 'confirmed', Rules\Password::defaults()], ]); @@ -36,10 +40,11 @@ new #[Layout('components.layouts.auth')] class extends Component { }; ?>
- + - + diff --git a/resources/views/livewire/auth/reset-password.blade.php b/resources/views/livewire/auth/reset-password.blade.php index d6bcd98..9125550 100644 --- a/resources/views/livewire/auth/reset-password.blade.php +++ b/resources/views/livewire/auth/reset-password.blade.php @@ -1,5 +1,6 @@
- + - + diff --git a/resources/views/livewire/auth/verify-email.blade.php b/resources/views/livewire/auth/verify-email.blade.php index aef1b0c..3aa2d09 100644 --- a/resources/views/livewire/auth/verify-email.blade.php +++ b/resources/views/livewire/auth/verify-email.blade.php @@ -1,12 +1,16 @@ {{ __('Basic Information') }}
- + @@ -66,8 +69,8 @@ new class extends Component { {{ __('Coordinates') }}
- - + +
@@ -75,8 +78,8 @@ new class extends Component { {{ __('Demographics') }}
- - + +
diff --git a/resources/views/livewire/cities/edit.blade.php b/resources/views/livewire/cities/edit.blade.php index 1fafbd1..fab9f7e 100644 --- a/resources/views/livewire/cities/edit.blade.php +++ b/resources/views/livewire/cities/edit.blade.php @@ -2,9 +2,12 @@ use App\Models\City; use App\Models\Country; +use App\Traits\SeoTrait; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public City $city; public string $name = ''; public ?int $country_id = null; @@ -62,7 +65,7 @@ new class extends Component { {{ __('Basic Information') }}
- + @@ -77,8 +80,8 @@ new class extends Component { {{ __('Coordinates') }}
- - + +
@@ -86,8 +89,8 @@ new class extends Component { {{ __('Demographics') }}
- - + +
diff --git a/resources/views/livewire/cities/index.blade.php b/resources/views/livewire/cities/index.blade.php index e1cd10f..26857b3 100644 --- a/resources/views/livewire/cities/index.blade.php +++ b/resources/views/livewire/cities/index.blade.php @@ -1,11 +1,13 @@ @auth - + {{ __('Create City') }} @endauth @@ -81,7 +84,9 @@ new class extends Component {
@auth - + {{ __('Edit') }} @endauth diff --git a/resources/views/livewire/courses/create-edit-events.blade.php b/resources/views/livewire/courses/create-edit-events.blade.php index 4728300..4aef5de 100644 --- a/resources/views/livewire/courses/create-edit-events.blade.php +++ b/resources/views/livewire/courses/create-edit-events.blade.php @@ -4,10 +4,13 @@ use App\Models\City; use App\Models\Course; use App\Models\CourseEvent; use App\Models\Venue; +use App\Traits\SeoTrait; use Livewire\Attributes\Validate; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public Course $course; public ?CourseEvent $event = null; @@ -63,7 +66,8 @@ new class extends Component { session()->flash('status', __('Event erfolgreich erstellt!')); } - $this->redirect(route('courses.landingpage', ['course' => $this->course, 'country' => $this->country]), navigate: true); + $this->redirect(route('courses.landingpage', ['course' => $this->course, 'country' => $this->country]), + navigate: true); } public function delete(): void @@ -71,7 +75,8 @@ new class extends Component { if ($this->event) { $this->event->delete(); session()->flash('status', __('Event erfolgreich gelöscht!')); - $this->redirect(route('courses.landingpage', ['course' => $this->course, 'country' => $this->country]), navigate: true); + $this->redirect(route('courses.landingpage', ['course' => $this->course, 'country' => $this->country]), + navigate: true); } } @@ -171,12 +176,14 @@ new class extends Component {
- + {{ __('Abbrechen') }} @if($event) - + {{ __('Event löschen') }} @endif @@ -235,10 +242,12 @@ new class extends Component { - {{ __('Abbrechen') }} + {{ __('Abbrechen') }} - {{ __('Ort erstellen') }} + {{ __('Ort erstellen') }}
diff --git a/resources/views/livewire/courses/create.blade.php b/resources/views/livewire/courses/create.blade.php index 78994e7..2412ce2 100644 --- a/resources/views/livewire/courses/create.blade.php +++ b/resources/views/livewire/courses/create.blade.php @@ -2,12 +2,14 @@ use App\Models\Course; use App\Models\Lecturer; +use App\Traits\SeoTrait; use Livewire\Attributes\Validate; use Livewire\Volt\Component; use Livewire\WithFileUploads; new class extends Component { use WithFileUploads; + use SeoTrait; #[Validate('image|max:10240')] // 10MB Max public $logo; diff --git a/resources/views/livewire/courses/edit.blade.php b/resources/views/livewire/courses/edit.blade.php index ebef00b..b439aa0 100644 --- a/resources/views/livewire/courses/edit.blade.php +++ b/resources/views/livewire/courses/edit.blade.php @@ -2,6 +2,7 @@ use App\Models\Course; use App\Models\Lecturer; +use App\Traits\SeoTrait; use Illuminate\Validation\Rule; use Livewire\Attributes\Validate; use Livewire\Volt\Component; @@ -9,6 +10,7 @@ use Livewire\WithFileUploads; new class extends Component { use WithFileUploads; + use SeoTrait; #[Validate('image|max:10240')] // 10MB Max public $logo; diff --git a/resources/views/livewire/courses/index.blade.php b/resources/views/livewire/courses/index.blade.php index 5d08328..e5dc718 100644 --- a/resources/views/livewire/courses/index.blade.php +++ b/resources/views/livewire/courses/index.blade.php @@ -1,11 +1,13 @@
- +
{{ Str::limit($course->name, 30) }} diff --git a/resources/views/livewire/courses/landingpage.blade.php b/resources/views/livewire/courses/landingpage.blade.php index 7cccb7e..da4739f 100644 --- a/resources/views/livewire/courses/landingpage.blade.php +++ b/resources/views/livewire/courses/landingpage.blade.php @@ -2,9 +2,12 @@ use App\Models\Course; use App\Models\CourseEvent; +use App\Traits\SeoTrait; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public Course $course; public $country = 'de'; @@ -39,7 +42,8 @@ new class extends Component { {{ $course->name }} @if($course->lecturer) - + {{ $course->lecturer->name }} @endif @@ -58,36 +62,43 @@ new class extends Component { {{ __('Über den Dozenten') }}
- +
{{ $course->lecturer->name }} @if($course->lecturer->subtitle) - {{ $course->lecturer->subtitle }} + {{ $course->lecturer->subtitle }} @endif @if($course->lecturer->intro) - {!! $course->lecturer->intro !!} + {!! $course->lecturer->intro !!} @endif
@if($course->lecturer->website) - + Website @endif @if($course->lecturer->twitter_username) - + - + Twitter @endif @if($course->lecturer->nostr) - + Nostr diff --git a/resources/views/livewire/lecturers/create.blade.php b/resources/views/livewire/lecturers/create.blade.php index 8ecf334..ed3d255 100644 --- a/resources/views/livewire/lecturers/create.blade.php +++ b/resources/views/livewire/lecturers/create.blade.php @@ -1,12 +1,14 @@ Lecturer::with(['createdBy', 'coursesEvents' => fn($query) => $query->where('from', '>=', now())->orderBy('from', 'asc')]) + 'lecturers' => Lecturer::with([ + 'createdBy', 'coursesEvents' => fn($query) => $query->where('from', '>=', now())->orderBy('from', 'asc') + ]) ->withExists([ 'coursesEvents as has_future_events' => fn($query) => $query->where('from', '>=', now()) ]) @@ -26,9 +30,10 @@ new class extends Component { 'coursesEvents as future_events_count' => fn($query) => $query->where('from', '>=', now()) ]) ->when($this->search, fn($query) - => $query->where('name', 'ilike', '%'.$this->search.'%') - ->orWhere('description', 'ilike', '%'.$this->search.'%') - ->orWhere('subtitle', 'ilike', '%'.$this->search.'%'), + => $query + ->where('name', 'ilike', '%'.$this->search.'%') + ->orWhere('description', 'ilike', '%'.$this->search.'%') + ->orWhere('subtitle', 'ilike', '%'.$this->search.'%'), ) ->orderByDesc('has_future_events') ->orderBy('name', 'asc') @@ -47,7 +52,8 @@ new class extends Component { clearable /> @auth - + {{ __('Dozenten anlegen') }} @endauth @@ -69,7 +75,8 @@ new class extends Component {
- +
{{ $lecturer->name }}
@if($lecturer->active) @@ -108,7 +115,8 @@ new class extends Component {
@if($lecturer->website) - + @endif diff --git a/resources/views/livewire/meetups/create-edit-events.blade.php b/resources/views/livewire/meetups/create-edit-events.blade.php index caa8a17..29a6cb7 100644 --- a/resources/views/livewire/meetups/create-edit-events.blade.php +++ b/resources/views/livewire/meetups/create-edit-events.blade.php @@ -2,10 +2,13 @@ use App\Models\Meetup; use App\Models\MeetupEvent; +use App\Traits\SeoTrait; use Livewire\Attributes\Validate; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public Meetup $meetup; public ?MeetupEvent $event = null; @@ -56,7 +59,8 @@ new class extends Component { session()->flash('status', __('Event erfolgreich erstellt!')); } - $this->redirect(route('meetups.landingpage', ['meetup' => $this->meetup, 'country' => $this->country]), navigate: true); + $this->redirect(route('meetups.landingpage', ['meetup' => $this->meetup, 'country' => $this->country]), + navigate: true); } public function delete(): void @@ -64,7 +68,8 @@ new class extends Component { if ($this->event) { $this->event->delete(); session()->flash('status', __('Event erfolgreich gelöscht!')); - $this->redirect(route('meetups.landingpage', ['meetup' => $this->meetup, 'country' => $this->country]), navigate: true); + $this->redirect(route('meetups.landingpage', ['meetup' => $this->meetup, 'country' => $this->country]), + navigate: true); } } }; ?> @@ -114,12 +119,14 @@ new class extends Component {
- + {{ __('Abbrechen') }} @if($event) - + {{ __('Event löschen') }} @endif diff --git a/resources/views/livewire/meetups/create.blade.php b/resources/views/livewire/meetups/create.blade.php index c331d31..4c85174 100644 --- a/resources/views/livewire/meetups/create.blade.php +++ b/resources/views/livewire/meetups/create.blade.php @@ -3,12 +3,14 @@ use App\Models\City; use App\Models\Country; use App\Models\Meetup; +use App\Traits\SeoTrait; use Livewire\Attributes\Validate; use Livewire\Volt\Component; use Livewire\WithFileUploads; new class extends Component { use WithFileUploads; + use SeoTrait; #[Validate('image|max:10240')] // 10MB Max public $logo; @@ -327,10 +329,12 @@ new class extends Component { - {{ __('Abbrechen') }} + {{ __('Abbrechen') }} - {{ __('Stadt erstellen') }} + {{ __('Stadt erstellen') }}
diff --git a/resources/views/livewire/meetups/edit.blade.php b/resources/views/livewire/meetups/edit.blade.php index e807299..ef77519 100644 --- a/resources/views/livewire/meetups/edit.blade.php +++ b/resources/views/livewire/meetups/edit.blade.php @@ -3,6 +3,7 @@ use App\Models\City; use App\Models\Country; use App\Models\Meetup; +use App\Traits\SeoTrait; use Illuminate\Validation\Rule; use Livewire\Attributes\Validate; use Livewire\Volt\Component; @@ -10,6 +11,7 @@ use Livewire\WithFileUploads; new class extends Component { use WithFileUploads; + use SeoTrait; #[Validate('image|max:10240')] // 10MB Max public $logo; @@ -420,10 +422,12 @@ new class extends Component { - {{ __('Abbrechen') }} + {{ __('Abbrechen') }} - {{ __('Stadt erstellen') }} + {{ __('Stadt erstellen') }}
diff --git a/resources/views/livewire/meetups/landingpage-event.blade.php b/resources/views/livewire/meetups/landingpage-event.blade.php index cfe3ea3..da9ed6b 100644 --- a/resources/views/livewire/meetups/landingpage-event.blade.php +++ b/resources/views/livewire/meetups/landingpage-event.blade.php @@ -2,10 +2,13 @@ use App\Models\MeetupEvent; use App\Models\User; +use App\Traits\SeoTrait; use Livewire\Attributes\Validate; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public MeetupEvent $event; public $country = 'de'; diff --git a/resources/views/livewire/meetups/landingpage.blade.php b/resources/views/livewire/meetups/landingpage.blade.php index 50659e9..42829e7 100644 --- a/resources/views/livewire/meetups/landingpage.blade.php +++ b/resources/views/livewire/meetups/landingpage.blade.php @@ -2,9 +2,12 @@ use App\Models\Meetup; use App\Models\MeetupEvent; +use App\Traits\SeoTrait; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public Meetup $meetup; public $country = 'de'; @@ -39,7 +42,9 @@ new class extends Component { {{ $meetup->city->name }}, {{ $meetup->city->country->name }} - {{ __('Kalender-Stream-URL kopieren') }} + {{ __('Kalender-Stream-URL kopieren') }}
@@ -194,11 +199,13 @@ new class extends Component {
{{ __('Kommende Veranstaltungen') }} @if(auth()->user() && auth()->user()->meetups()->find($meetup->id)?->exists) - + {{ __('Neues Event erstellen') }} @endif - {{ __('Kalender-Stream-URL kopieren') }} + {{ __('Kalender-Stream-URL kopieren') }}
@@ -260,7 +267,8 @@ new class extends Component {
@if(auth()->user() && auth()->user()->meetups()->find($meetup->id)?->exists) - + {{ __('Neues Event erstellen') }} @endif diff --git a/resources/views/livewire/meetups/map.blade.php b/resources/views/livewire/meetups/map.blade.php index 6c3b6ea..f280904 100644 --- a/resources/views/livewire/meetups/map.blade.php +++ b/resources/views/livewire/meetups/map.blade.php @@ -1,9 +1,12 @@ #map { height: 90vh; - z-index: 0!important; + z-index: 0 !important; } #map:focus { diff --git a/resources/views/livewire/settings/appearance.blade.php b/resources/views/livewire/settings/appearance.blade.php index 892582d..b05db27 100644 --- a/resources/views/livewire/settings/appearance.blade.php +++ b/resources/views/livewire/settings/appearance.blade.php @@ -1,9 +1,10 @@
diff --git a/resources/views/livewire/settings/delete-user-form.blade.php b/resources/views/livewire/settings/delete-user-form.blade.php index 8d90079..31d6850 100644 --- a/resources/views/livewire/settings/delete-user-form.blade.php +++ b/resources/views/livewire/settings/delete-user-form.blade.php @@ -1,10 +1,13 @@
- +
diff --git a/resources/views/livewire/settings/password.blade.php b/resources/views/livewire/settings/password.blade.php index 002805f..f0d1865 100644 --- a/resources/views/livewire/settings/password.blade.php +++ b/resources/views/livewire/settings/password.blade.php @@ -1,5 +1,6 @@ @include('partials.settings-heading') - +
- + {{--
@@ -144,6 +147,6 @@ new class extends Component {
- + diff --git a/resources/views/livewire/venues/create.blade.php b/resources/views/livewire/venues/create.blade.php index 9088645..902be44 100644 --- a/resources/views/livewire/venues/create.blade.php +++ b/resources/views/livewire/venues/create.blade.php @@ -2,9 +2,12 @@ use App\Models\Venue; use App\Models\City; +use App\Traits\SeoTrait; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public string $name = ''; public ?int $city_id = null; public string $street = ''; @@ -45,7 +48,7 @@ new class extends Component { {{ __('Venue Information') }}
- + @@ -59,7 +62,7 @@ new class extends Component { @endforeach - +
diff --git a/resources/views/livewire/venues/edit.blade.php b/resources/views/livewire/venues/edit.blade.php index 00a4a12..9f52902 100644 --- a/resources/views/livewire/venues/edit.blade.php +++ b/resources/views/livewire/venues/edit.blade.php @@ -2,9 +2,12 @@ use App\Models\Venue; use App\Models\City; +use App\Traits\SeoTrait; use Livewire\Volt\Component; new class extends Component { + use SeoTrait; + public Venue $venue; public string $name = ''; public ?int $city_id = null; @@ -53,7 +56,7 @@ new class extends Component { {{ __('Venue Information') }}
- + @@ -67,7 +70,7 @@ new class extends Component { @endforeach - +
diff --git a/resources/views/livewire/venues/index.blade.php b/resources/views/livewire/venues/index.blade.php index 132a2a5..f9179e6 100644 --- a/resources/views/livewire/venues/index.blade.php +++ b/resources/views/livewire/venues/index.blade.php @@ -1,11 +1,13 @@ @auth - + {{ __('Create Venue') }} @endauth @@ -75,7 +78,9 @@ new class extends Component {
@auth - + {{ __('Edit') }} @endauth