Template: member_default .... $this->fields
Hallo,
im Registrierungsformular werden die Felder leider nur per $this->fields ausgegeben, wo kann ich denn den Inhalt von
$this->fields schon vor der Ausgabe anpassen?
Ein suchen und ersetzen in der Ausgabe wäre zu mühsam - ich müsste direkt beim "Sammeln" der Felder im Modul eingreifen.
Danke
Mark
member_default anpassen - Felder einzeln ansprechen
Hier meine eigene Lösung.
Mir war aber wichtig, das ich jedes Feld direkt ansprechen, und durch Bootstrap beliebig positionieren kann.
<?= $this->fields ?> brauch ich dabei nicht, da Contao die einzelnen Felder über $this->categories liefert (multidimensionales array, deshalb die 2 foreach..).
PHP-Code:
<!-- File: member_default.html5 -->
<!-- Den Inhalt der .fields Klasse ändern -->
<div class="fields">
<?php
$fieldsArray = array();
foreach ($this->categories as $key => $value) {
if (!empty($value)) {
foreach($value as $key2 => $field)
{
$fieldsArray[$key2] = $field;
}
}
}
?>
<div class="row">
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['gender']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['firstname']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['lastname']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['dateOfBirth']; ?>
</div>
</div>
<div class="row">
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['country']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['state']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['postal']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php echo $fieldsArray['county']; ?>
</div>
<div class="col-md-3 col-sm-6">
<?php // Wenn aktiviert im Backend ?>
<?php echo $fieldsArray['captcha']; ?>
</div>
</div>
</div>
Die Formular-Felder kannst du durch Anpassung der Templates vornehmen (form_row, form_textfield, form_...).
Wichtig: Alle Felder die im Backend ausgewählt wurden, müssen auch im Template existieren!
Evtl. das Label anpassen, damit es den Redakteuren klar ist:
PHP-Code:
languages/de/tl_module.php
$GLOBALS['TL_DCA']['tl_module']['fields']['editable']['label'][0] = "Notwendige auswählen! - ACHTUNG - Editierbare Felder werden direkt im Template eingefügt.";
lg