From 8f23442954749af33abe6289ac9530ff23ad53ad Mon Sep 17 00:00:00 2001 From: philipp lang Date: Sun, 28 Sep 2025 21:10:09 +0200 Subject: [PATCH] Add later registration --- components/EventManager.php | 16 ++++++++++++++++ views/head.htm | 1 + 2 files changed, 17 insertions(+) diff --git a/components/EventManager.php b/components/EventManager.php index 1d14061..5fd5d82 100644 --- a/components/EventManager.php +++ b/components/EventManager.php @@ -8,6 +8,7 @@ use Cms\Classes\Page; use Silva\Adrema\Exceptions\ComponentException; use Silva\Adrema\Models\Settings; use Silva\Adrema\Support\FetchAllEvents; +use Validator; abstract class EventManager extends ComponentBase { @@ -15,6 +16,7 @@ abstract class EventManager extends ComponentBase public array $settings = []; public ?array $event = null; public array $eventMeta = []; + public array $pageMeta = []; /** @var Collection */ public Collection $events; @@ -37,9 +39,22 @@ abstract class EventManager extends ComponentBase $this->loadColors(); $this->loadSettings(); $this->loadSingleEvent(); + $this->loadQueryParams(); $this->page['breadcrumbs'] = $this->getBreadcrumbs(); } + private function loadQueryParams(): array { + $validator = Validator::make(array_only(request()->query(), ['signature', 'id', 'later']), [ + 'signature' => 'required|string', + 'id' => 'required|string|uuid:4', + 'later' => 'required|numeric|in:1', + ]); + + return $validator->fails() + ? ['later' => '0'] + : $validator->validated(); + } + private function getBreadcrumbs(): Collection { $breadcrumbs = collect([]); @@ -153,6 +168,7 @@ abstract class EventManager extends ComponentBase $this->eventMeta = data_get($eventData, 'meta', []); $this->events = $this->page['events'] = collect($eventData['data']); $this->event = $this->page['event'] = $this->events->first(fn ($event) => $event['slug'] == $eventSlug); + $this->pageMeta = $this->loadQueryParams(); $this->currentUrl = url()->current(); } diff --git a/views/head.htm b/views/head.htm index 41ca8f4..c28ba20 100644 --- a/views/head.htm +++ b/views/head.htm @@ -10,6 +10,7 @@ {% endif %}