Typo3
TYPO3: Datetime als label von eigener Extension im Backend
Bei einer meiner Extensions wollte ich als Label für die Datensatzanzeige ein Datetime-Feld verwenden. Allerdings wurde mir hier nur der Unix-Timestamp angezeigt. Das ist zwar grundsätzlich nicht falsch aber schon irgendwie unlesbar in der Admin. Darum habe ich ein paar Kleinigkeiten in den vom Kickstarter schnell erstellten Skripten geändert.
ext_tables.php
Zuerst einmal im Plugin-Verzeichnis typo3conf/ext/meineextension die Datei ext_tables.php verändern:
array ( 'title' => 'LLL:EXT:puls4/locallang_db.xml:tx_puls4_tvprogramm', 'label' => 'von', 'label_alt' => 'titel', //diese Zeile kommt hinzu 'tstamp' => 'tstamp', 'crdate' => 'crdate', 'cruser_id' => 'cruser_id', 'default_sortby' => "ORDER BY von DESC", 'delete' => 'deleted', 'enablecolumns' => array ( 'disabled' => 'hidden', ), 'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php', 'iconfile' => t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_puls4_tvprogramm.gif', ), "feInterface" => array ( "fe_admin_fieldList" => "hidden, datum, von, titel, text, typ", ) ); //Ab jetzt eine eigene Datei für die Spezielle Klasse zum Aufbereiten des Labels: require_once(t3lib_extMgm::extPath($_EXTKEY).'class.LabelVonClass.php'); // nur fuer TYPO3 v 4.1 oder hoeher if (t3lib_div::int_from_ver(TYPO3_version) >= 4001000) { $TCA["tx_meineextension"]["ctrl"]["label_userFunc"] = "user_LabelVonClass->getUserLabel"; } ?>
class.LabelVonClass.php
So jetzt die Zusätzliche Klasse im gleichen Verzeichnis wie ex_tables.php mit der Veränderung des Labels mit folgendem Inhalt anlegen:
Damit wird jetzt das Feld von in ein lesbares Format (TT.MM.JJJJ HH:mm) gebracht und gemeinsam mit dem Feld titel ausgegeben. Um auf den titel zugreifen zu können wurde in ext_tables.php extra die Zeile 'label_alt' => 'titel', hinzugefügt.
Abschluss im Backend
Dann noch im Backend auf "Cache in typo3conf/ löschen" klicken. Und ab jetzt wird im Listing der Datensätze nicht mehr nur der Timestamp aus dem Feld "Von" angezeigt sondern Datum mit Uhrzeit aus von und der Titel aus dem Feld titel.
Label mit Zugriff auf eine verknüpfte Tabelle
Auch ein guter Hinweis: Label aus einer anderen Datenbanktabelle lesen nach dem gleichen Prinzip.