Skip to content

Instantly share code, notes, and snippets.

@derhansen
Created March 26, 2024 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save derhansen/33640dabb8a4d9e7037f5c44eec51264 to your computer and use it in GitHub Desktop.
Save derhansen/33640dabb8a4d9e7037f5c44eec51264 to your computer and use it in GitHub Desktop.
sf_event_mgt_multireg - AdditionalRegistrationsViewHelper
<?php
namespace Derhansen\SfEventMgtMultireg\ViewHelpers\Registration;
use DERHANSEN\SfEventMgt\Domain\Model\Registration;
use DERHANSEN\SfEventMgt\Domain\Repository\RegistrationRepository;
use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
/**
* Retuens an array of addtional registrations, if the given main registration has child-registrations
*/
class AdditionalRegistrationsViewHelper extends AbstractViewHelper
{
public function initializeArguments(): void
{
parent::initializeArguments();
$this->registerArgument('registration', 'object', 'The registration object', true);
}
public function render(): array
{
/** @var Registration $registration */
$registration = $this->arguments['registration'];
$registrationRepository = GeneralUtility::makeInstance(RegistrationRepository::class);
$additionalRegistrations = $registrationRepository->findByMainRegistration($registration);
return $additionalRegistrations->toArray();
}
}
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:multireg="http://typo3.org/ns/Derhansen/SfEventMgtMultireg/ViewHelpers"
data-namespace-typo3-fluid="true">
<p>New registration for event: {event.title} </p>
<ul>
<li>{registration.gender}</li>
<li>{registration.firstname}</li>
<li>{registration.lastname}</li>
<li>{registration.address}</li>
<li>{registration.zip}</li>
<li>{registration.city}</li>
<li>{registration.country}</li>
<li>{registration.email}</li>
<li>{registration.phone}</li>
<li>{f:format.date(date: registration.dateOfBirth, format: '%d.%m.%Y')}</li>
<li>{registration.notes}</li>
</ul>
<p>Registration fields:</p>
<f:render partial="Notification/RegistrationFields" arguments="{registration: registration}"/>
<p>The registration is not finished yet, as the user needs to confirm his/her registration</p>
<f:variable name="additionalRegistrations" value="{multireg:registration.additionalRegistrations(registration: registration)}" />
<f:for each="{additionalRegistrations}" as="additionalRegistration">
<p>Additional registration</p>
<ul>
<li>{additionalRegistration.gender}</li>
<li>{additionalRegistration.firstname}</li>
<li>{additionalRegistration.lastname}</li>
<li>{additionalRegistration.address}</li>
<li>{additionalRegistration.zip}</li>
<li>{additionalRegistration.city}</li>
<li>{additionalRegistration.country}</li>
<li>{additionalRegistration.email}</li>
<li>{additionalRegistration.phone}</li>
<li>{f:format.date(date: additionalRegistration.dateOfBirth, format: '%d.%m.%Y')}</li>
<li>{additionalRegistration.notes}</li>
</ul>
</f:for>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment