You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
3.2 KiB
96 lines
3.2 KiB
<form action="<?= $this->url; ?>" method="post"> |
|
|
|
<?php $count = 0; ?> |
|
<?php foreach ($this->form->getFields() as $name => $field) { ?> |
|
|
|
<?php if ($field[1] == 'comment') { ?> |
|
|
|
<div class="form-group"> |
|
<?= $field[0]; ?> |
|
</div> |
|
|
|
<?php } else if ($field[1] == 'radio') { ?> |
|
|
|
<div class="form-group"> |
|
<?php $radioCount = 0; ?> |
|
|
|
<?php if ($field[0] != '') { ?> |
|
<label><?= $field[0]; ?></label><br> |
|
<?php } ?> |
|
|
|
<input type="hidden" name="<?= $name; ?>" value=""> |
|
<?php foreach ($field[2] as $value => $label) { ?> |
|
|
|
<input type="radio" name="<?= $name; ?>" id="<?= $value; ?>" |
|
<?= strstr($field[3], 'required') ? 'required' : ''; ?> |
|
<?= $this->{$name} == $value || (!isset($this->{$name}) && $radioCount == 0 && $field[0] == '') ? 'checked' : ''; ?> |
|
<?= $count == 0 && $radioCount == 0 ? 'autofocus' : ''; ?> |
|
value="<?= $value; ?>"> |
|
<label for="<?= $value; ?>"><?= $label; ?> </label> |
|
<?= $field[0] != '' ? '<br>' : ''; ?> |
|
|
|
<?php $radioCount++; ?> |
|
<?php } ?> |
|
</div> |
|
|
|
<?php } else if ($field[1] == 'text' || $field[1] == 'email' || |
|
$field[1] == 'tel' || $field[1] == 'password') { ?> |
|
|
|
<div class="form-group"> |
|
<label for="<?= $name; ?>"><?= $field[0]; ?></label> |
|
<input type="<?= $field[1]; ?>" name="<?= $name; ?>" id="<?= $name; ?>" class="form-control" |
|
<?= strstr($field[3], 'required') ? 'required' : ''; ?> |
|
<?= _exists($field, 5) ? "pattern='$field[5]'" : ''; ?> |
|
<?= _exists($field, 6) ? "title='$field[6]'" : ''; ?> |
|
<?= strstr($field[3], 'captcha') ? 'autocomplete="off"' : '' ?> |
|
<?= $count == 0 ? 'autofocus' : ''; ?> |
|
value="<?= $this->{$name}; ?>"> |
|
|
|
<?php if (strstr($field[3], 'captcha')) { ?> |
|
<img src="/img/captcha.jpg" class="img-fluid pt-2"> |
|
<?php } ?> |
|
</div> |
|
|
|
<?php } else if ($field[1] == 'textarea') { ?> |
|
|
|
<div class="form-group"> |
|
<label for="<?= $name; ?>"><?= $field[0]; ?></label> |
|
<textarea name="<?= $name; ?>" cols="1" rows="5" id="<?= $name; ?>" class="form-control" |
|
<?= strstr($field[3], 'required') ? 'required' : ''; ?> |
|
<?= $count == 0 ? 'autofocus' : ''; ?> |
|
><?= $this->{$name}; ?></textarea> |
|
</div> |
|
|
|
<?php } else if ($field[1] == 'checkbox') { ?> |
|
|
|
<div class="form-group form-check"> |
|
|
|
<?php $checkboxCount = 0; ?> |
|
<input name="<?= $name; ?>" type="hidden" value="0"> |
|
<?php foreach ($field[2] as $value => $label) { ?> |
|
|
|
<input type="checkbox" name="<?= $name; ?>" id="<?= $value; ?>" class="form-check-input" |
|
<?= strstr($field[3], 'required') ? 'required' : ''; ?> |
|
<?= $this->{$name} == $value ? 'checked' : ''; ?> |
|
<?= $count == 0 && $checkboxCount == 0 ? 'autofocus' : ''; ?> |
|
value="<?= $value; ?>"> |
|
<label for="<?= $value; ?>" class="form-check-label"><?= $label; ?></label><br> |
|
|
|
<?php $checkboxCount++; ?> |
|
<?php } ?> |
|
</div> |
|
|
|
<?php } ?> |
|
|
|
<?php $count++; ?> |
|
<?php } ?> |
|
|
|
<p class="mb-0"> |
|
<?php if (_exists([$this->form->getReset()])) { ?> |
|
<button type="reset" class="btn btn-dark"><?= $this->form->getReset(); ?></button> |
|
<?php } ?> |
|
<button type="submit" class="btn btn-dark"><?= $this->form->getSubmit(); ?></button> |
|
</p> |
|
|
|
<input type="hidden" name="_token" value="<?= $this->csrfToken; ?>" /> |
|
</form>
|
|
|