From d452f05bebc0fe525a350d09405d758064384a96 Mon Sep 17 00:00:00 2001 From: philipp lang Date: Sat, 26 Jul 2025 01:31:42 +0200 Subject: [PATCH] Add page meta for later registration --- assets/vendor/adrema-form | 2 +- components/EventManager.php | 16 ++++++++++++++++ views/head.htm | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/assets/vendor/adrema-form b/assets/vendor/adrema-form index a6ca0d2..e4fa326 160000 --- a/assets/vendor/adrema-form +++ b/assets/vendor/adrema-form @@ -1 +1 @@ -Subproject commit a6ca0d2a6ce9f9626b8e3c80d916fe8a6f793dfd +Subproject commit e4fa326f3593fc61573bd81bfdfe75a3d4711124 diff --git a/components/EventManager.php b/components/EventManager.php index c606abb..ee214a2 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([]); @@ -154,6 +169,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 %}