Leider nein.
Ich habe die zusätzlichen Anpassungen in der tl_member.php vorgenommen.
Diese sieht nun so aus:
PHP-Code:
<?php
/* Vertretername dem Mitglied zuordnen */
$GLOBALS['TL_DCA']['tl_member']['fields']['vertretername'] = [
'label' => ['Vertretername', 'Hier kann der zugehörige Vertretername hinterlegt werden.'],
'inputType' => 'select',
'foreignKey' => 'tl_user.CONCAT(name)',
'eval' => array('chosen'=>true, 'doNotCopy'=>true, 'includeBlankOption'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''",
'relation' => array('type'=>'belongsTo', 'load'=>'lazy')
];
/* Vertreter E-Mail dem Mitglied zuordnen */
$GLOBALS['TL_DCA']['tl_member']['fields']['vertreteremail'] = [
'label' => ['Vertreter E-Mail', 'Hier kann die zugehörige Vertreter E-Mail Adresse hinterlegt werden.'],
'inputType' => 'select',
'foreignKey' => 'tl_user.CONCAT(email)',
'eval' => array('chosen'=>true, 'doNotCopy'=>true, 'includeBlankOption'=>true, 'tl_class'=>'w50'),
'sql' => "varchar(255) NOT NULL default ''",
'relation' => array('type'=>'belongsTo', 'load'=>'lazy')
];
$GLOBALS['TL_DCA']['tl_member']['fields']['vertreterDaten'] = [
'label' => &$GLOBALS['TL_LANG']['tl_member']['vertreterDaten'],
'exclude' => true,
'inputType' => 'text',
'eval' => ['rte' => 'tinyMCE', 'tl_class' => 'clr'],
'save_callback' => array(array('classVertreterDaten', 'generateVertreterDaten')),
'sql' => 'mediumtext NULL',
];
class classVertreterDaten extends Backend
{
public function generateVertreterDaten($varrValue, DataContainer $dc)
{
return '<p><b>'.$dc->activeRecord->vertretername.'</b><br>'.$dc->activeRecord->vertreteremail.'</p>';
}
}
use Contao\CoreBundle\DataContainer\PaletteManipulator;
PaletteManipulator::create()
// add a new Legend after the "address_legend"
->addLegend('Vertreter Einstellungen', 'contact_legend', PaletteManipulator::POSITION_AFTER)
// directly add new field(s)s to the new legend
->addField('vertretername', 'Vertreter Einstellungen', PaletteManipulator::POSITION_APPEND)
->addField('vertreteremail', 'Vertreter Einstellungen', PaletteManipulator::POSITION_APPEND)
->addField('vertreterDaten', 'Vertreter Einstellungen', PaletteManipulator::POSITION_APPEND)
// then apply it to the palette as usual
->applyToPalette('default', 'tl_member')
;
Das zusätzliche Textfeld wird mir zwar im Backend und der Inhalt über den Inserttag auch im Frontend-Formular angezeigt. Nach dem Speichern der Vertreter-Zuordnung (Name, E-Mail) tauchen in dem Feld aber auch nur die ID's auf und nicht die zugehörigen Werte.
Gibt es denn keine Möglichkeit anstatt der ID (foreignKey) direkt den Wert aus der referenzierten Tabelle in dem neuen Feld zu speichern?