Ich glaube mich daran zu erinnern, dass es mal in irgendeiner Registrierungsextension implementiert war. Man wünscht sich, dass der Name eines FE Benutzers (fe_user) sich automatisch aus Vor- und Nachname ergibt, andernfalls sind die Felder ja redundant.
Im Backend kann man mit einem Hook realisieren.
Erstmal muss man das Namensfeld des fe_user auf readOnly setzen, damit man es im BE nicht bearbeiten kann. Das geht am besten in Configuration/TCA/Overrides/fe_users.php der eigenen Extension:
$GLOBALS['TCA']['fe_users']['columns']['name']['config']['readOnly'] = 1;
Dann definiert man einen Hooks für das Backend-Formular: in ext_localconf.php folgendes einsetzen (My\Extension entsprechend ersetzen):
$GLOBALS ['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass']['extkey'] = 'My\Extension\Hook\TceMain';
Dann im Ordner Classes/Hook der Extension die Datei TceMain.php erstellen und darin eine Funktion wie folgt definieren:
<?php namespace My\Extension\Hook; use TYPO3\CMS\Backend\Utility\BackendUtility; class TceMain { /** * @param $status * @param $table * @param $id * @param array $fieldArray * @param \TYPO3\CMS\Core\DataHandling\DataHandler $pObj */ public function processDatamap_postProcessFieldArray($status, $table, $id, array &$fieldArray, \TYPO3\CMS\Core\DataHandling\DataHandler &$pObj) { if ($table == 'fe_users') { if (array_key_exists('first_name', $fieldArray) || array_key_exists('last_name', $fieldArray)) { $oldRow = BackendUtility::getRecord('fe_users', $id); $firstName = (array_key_exists('first_name', $fieldArray)) ? $fieldArray['first_name'] : $oldRow['first_name']; $lastName = (array_key_exists('last_name', $fieldArray)) ? $fieldArray['last_name'] : $oldRow['last_name']; $fieldArray['name'] = $firstName . ' ' . $lastName; } } } }
Dabei wird beim Speichern des Datensatzes der Name automatisch aktualisiert, falls first_name oder last_name bearbeitet wurden. Diese Funktion funktioniert in beiden Fällen: wenn man nur einen Datensatz vollständig bearbeitet oder wenn man mehrere Datensätze gleichzeitig bearbeitet.
Neueste Kommentare