39 lines
893 B
PHP
39 lines
893 B
PHP
<?php
|
|
|
|
|
|
class RsvFormHtmlRenderer {
|
|
public function draw(RsvFormDefinition $form): bool {
|
|
if (!$form->hasElements()) {
|
|
return false;
|
|
}
|
|
|
|
$form_id = esc_attr($form->getId());
|
|
?>
|
|
<div>
|
|
<form class="reservair-form confirmation"
|
|
id="<?= $form_id ?>"
|
|
onsubmit="RsvFormSender.send_form(event)"
|
|
method="POST">
|
|
|
|
<?php foreach ($form->getElements() as $element): ?>
|
|
<?php $this->draw_element($element); ?>
|
|
<?php endforeach; ?>
|
|
|
|
</form>
|
|
</div>
|
|
<?php
|
|
|
|
return true;
|
|
}
|
|
|
|
public function draw_element(RsvFormElementDefinition $data): void {
|
|
global $rsv_form_registry;
|
|
|
|
$handler = $rsv_form_registry->get($data->getType());
|
|
if ($handler === null) {
|
|
return;
|
|
}
|
|
$handler->draw($data);
|
|
}
|
|
}
|