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

 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

gallerysize;
   }

   /**
    * Sets the gallerysize
    *
    * @param string $gallerysize
    * @return void
    */
   public function setGallerysize($gallerysize) {
      $this->gallerysize = $gallerysize;
   }
   

}

Datei: Fluid Template


{file.referenceProperties.gallerysize}