Für eine neue Extension erstellte ich mit dem Extension-Builder einen Datentyp, in dem Dateien referenziert werden. Die verwendete TYPO3 Version ist die aktuellste, also 6.2.11. Folgendes TCA wurde mir für das Feld generiert:
[...] 'file' => array( 'exclude' => 1, 'label' => 'LLL:EXT:nocdocuments/Resources/Private/Language/locallang_db.xlf:tx_nocdocuments_domain_model_document.file', 'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig( 'file', array('maxitems' => 1), '*' ), ), [...]
Im Backend wird das Feld anzeigt, ich kann eine Datei auswählen, die sofort in der Vorschau erscheint, dann speichere ich… und die Dateireferenz ist weg. Ein Blick in die Datenbank: In der Tabelle sys_file_refence wird eine Zeile eingetragen, aber dann scheinbar gleich wieder gelöscht, uid_foreign ist 0, die meisten anderen Felder leer. Komisch. Die Konfiguration sieht ja richtig aus. Vielleicht liegt es ja an der TYPO3 Version. Also kopierte ich die Extension in eine andere TYPO3-Instanz (6.2.4). Wenn ich dort den Dialog zur Dateiauswahl aufrufe, dann bekomme ich keine Dateien zur Auswahl, obwohl im Ordner ja einige drin sind. Habe mir den Funktionsaufruf angeschaut von getFileFieldTCAConfig, dort ist der Default-Wert für $allowedFileExtensions “. Also ersetzte ich ‚*‘ durch “, und siehe da es klappt.
Der feine kleine Unterschied: wenn $allowedFileExtensions nicht gültig ist, kann man in TYPO3 6.2.11 eine Datei auswählen, die Referenz wird gespeichert und dann direkt gelöscht. Unter TYPO3 6.2.4 kann ich die Datei mit der falschen Dateiendung gar nicht erst auswählen.
Neueste Kommentare