In TYPO3 kann man in der TCA Konfiguration der eigenen Extension festlegen, welches Feld im Standardfall als Label für die Elemente benutzt wird. Es ist eigentlich ganz einfach: Man erstellt eine Datei mit der Klasse, die das Label erzeugt:
require_once(PATH_t3lib.'class.t3lib_befunc.php'); class user_TimeslotLabelClass { function getUserLabel($params, &$pObj) { $course = $params['row']['course']; $mylabel = $params['row']['time_start']; if ($course) { $item = t3lib_BEfunc::getRecord('tx_nptimetable_course', $course); $mylabel.= ', '.$item['title']; } $params['title'] = $mylabel; } }
Dann muss man in der TCA-Datei die Datei mit der Klasse inkludieren und aufrufen:
$TCA['tx_nptimetable_timeslot'] = array ( 'ctrl' => array ( 'title' => 'LLL:EXT:np_timetable/Resources/Private/Language/locallang_db.xml:tx_nptimetable_timeslot', 'label' => 'time_start', 'label_alt' => 'course,time_end', 'label_userFunc' => "user_TimeslotLabelClass->getUserLabel", ...
Die Anleitung gibt es auf der Seite von Stefan Meissner.
Damit es wirklich funktioniert, muss man allerdings ein paar Kleinigkeiten beachten: Die Felder, die man der Funktion verwenden möchte, müssen zur Verfügung stehen, und das passiert erst dann, wenn sie als label oder label_alt angegeben sind. In dem Code-Schnipsel von mir habe ich das Feld course als label_alt angegeben, und das obwohl das Label danach mit einer Funktion gesetzt wird. Ansonsten steht es in $params nicht zur Verfügung.
Neueste Kommentare