2017-10-26 2 views
0

ich versuchte, das folgende tca:internal_type file_reference in Typgruppe in TYPO3 8 LTS

 'file' => [ 
     'config' => [ 
      'type' => 'group', 
      'internal_type' => 'file', 
      'allowed' => 'gif,jpg', 
      'max_size' => 1000, 
      'uploadfolder' => 'uploads/pics/', 
      'show_thumbs' => 1, 
      'size' => 3, 
      'minitems' => 0, 
      'maxitems' => 200, 
      'autoSizeMax' => 10 
     ], 
    ], 

die ich von einem Beispiel, in dem doumentation nahm. Aber anstatt Datei ich brauche

'internal_type' => 'file_reference', 

, die den folgenden Fehler auslöst, wenn der Assistent im Backend mit:

# 1288965219: $ classname muss eine nicht leere Zeichenfolge sein. (Weitere Informationen) InvalidArgumentException in Datei geworfen typo3_src-8.7.8/typo3/sysext/core/Klassen/Utility/GeneralUtility.php in Zeile 3874.

Jede Idee, warum dies nicht funktioniert? Danke!

Antwort

3

Es wird nicht empfohlen, TCA für FAL-Beziehungen selbst zu erstellen. Sie sollten stattdessen use the TYPO3 API dafür.

+0

Vielen Dank für Ihre Antwort: ich die folgenden Zeilen in meinem ext_tables.php hinzugefügt . Es ist eine alte Erweiterung von TYPO3 4.5 mit hunderten von Dateien darin und ich muss es auf TYPO3 8 laufen lassen. Es aktualisiert gerade eine laufende tcs-Konfiguration von 4.5 auf 8. – lisardo

0

es ist ein Fehler in typo3 Kern. In der Datei

/typo3_src/typo3/sysext/recordlist/ext_tables.php

sind drei Element-Browser definiert:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ElementBrowsers']['db'] = \TYPO3\CMS\Recordlist\Browser\DatabaseBrowser::class; 
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ElementBrowsers']['file'] = \TYPO3\CMS\Recordlist\Browser\FileBrowser::class; 
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ElementBrowsers']['folder'] = \TYPO3\CMS\Recordlist\Browser\FolderBrowser::class; 

ein Element Browser für file_reference fehlt. Es wird jedoch kein spezieller Browser benötigt - der einzige Unterschied zwischen Datei- und Datei-Referenz ist, wo die Dateien gespeichert werden, und dies ist nicht die Aufgabe des Element-Browsers. Wenn ich diese Zeile hinzufügen:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ElementBrowsers']['file_reference'] = \TYPO3\CMS\Recordlist\Browser\FileBrowser::class; 

funktioniert alles wie erwartet.

Ich gab es auf Schmiede:

https://forge.typo3.org/issues/82873


so ist es einfach zu beheben:

if (TYPO3_MODE === 'BE') { 
    // activating file browser for file_reference: 
    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ElementBrowsers']['file_reference'] = \TYPO3\CMS\Recordlist\Browser\FileBrowser::class; 
}