Typo3 FAL (file abstract layer) Tabelle sys_file_reference um eigenes Feld erweitern

Möchte man ein eigenes Feld zu der Tabelle sys_file_reference hinzufügen, macht man dazu am Besten eine kleine Extension. Die entscheidenden Stellen sind:

Datei: ext_tables.sql

CREATE TABLE sys_file_reference (
   gallerysize varchar(15) DEFAULT '' NOT NULL
);

Datei: /Configuration/Overrides/sys_file_reference.php

<?php
 
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}
 
 
$temporaryColumns = array (
'gallerysize' => array (
'exclude' => 0,
'label' => 'Bildgröße (in Gallerien)',
'config' => array (
'type' => 'select',
'items' => array (
array('', ''),
array('mittel', '10'),
array('gross', '20'),
),
'size' => 1,
'maxitems' => 1,
)
),
);
 
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'sys_file_reference',
$temporaryColumns
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'sys_file_reference',
'gallerysize',
'',
'before:title'
);
 
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
'sys_file_reference', 'imageoverlayPalette', 'gallerysize', 'before:crop'
);

Datei: Typoscript setup.txt

config.tx_extbase.persistence.classes{
TYPO3\CMS\Extbase\Domain\Model\FileReference {
subclasses {
0 = Nng\Nnhansi\Domain\Model\FileReference
}
}
Nng\Nnhansi\Domain\Model\FileReference {
mapping {
tableName = sys_file_reference
}
}
}

Datei: Classes/Domain/Model/FileReference.php

<?php
<?php
 
namespace Nng\Nnhansi\Domain\Model;
 
 
class FileReference extends \TYPO3\CMS\Core\Resource\FileReference {
 
/**
* @var string
*/
protected $gallerysize = '';
 
 
/**
* Returns the gallerysize
*
* @return integer $gallerysize
*/
public function getGallerysize() {
return $this->gallerysize;
}
 
/**
* Sets the gallerysize
*
* @param string $gallerysize
* @return void
*/
public function setGallerysize($gallerysize) {
$this->gallerysize = $gallerysize;
}
 
 
}

Datei: Fluid Template

 
{file.referenceProperties.gallerysize}