Fal¶
\nn\t3::Fal()¶
Methoden zum Erzeugen von sysFile und sysFileReference-Einträgen.
Spickzettel:
\TYPO3\CMS\Extbase\Persistence\Generic\ObjectStorage
|
└─ \TYPO3\CMS\Extbase\Domain\Model\FileReference
... getOriginalResource()
|
└─ \TYPO3\CMS\Core\Resource\FileReference
... getOriginalFile()
|
└─ \TYPO3\CMS\Core\Resource\File
Overview of Methods¶
\nn\t3::Fal()->attach($model, $field, $itemData = NULL
);¶
Eine Datei zu einem FileReference-Object konvertieren und
an die Property oder ObjectStorage eines Models hängen.
Siehe auch: \nn\t3::Fal()->setInModel( $member, 'falslideshow', $imagesToSet );
mit dem
Array von mehreren Bildern an eine ObjectStorage gehängt werden können.
\nn\t3::Fal()->attach( $model, $fieldName, $filePath );
\nn\t3::Fal()->attach( $model, 'image', 'fileadmin/user_uploads/image.jpg' );
\nn\t3::Fal()->attach( $model, 'image', ['publicUrl'=>'fileadmin/user_uploads/image.jpg'] );
\nn\t3::Fal()->attach( $model, 'image', ['publicUrl'=>'fileadmin/user_uploads/image.jpg', 'title'=>'Titel...'] );
@return \TYPO3\CMS\Extbase\Domain\Model\FileReference
\nn\t3::Fal()->clearCache($filenameOrSysFile = ''
);¶
Löscht den Cache für die Bildgrößen eines FAL inkl. der umgerechneten Bilder Wird z.B. der f:image-ViewHelper verwendet, werden alle berechneten Bildgrößen in der Tabelle sys_file_processedfile gespeichert. Ändert sich das Originalbild, wird evtl. noch auf ein Bild aus dem Cache zugegriffen.
\nn\t3::Fal()->clearCache( 'fileadmin/file.jpg' );
\nn\t3::Fal()->clearCache( $fileReference );
\nn\t3::Fal()->clearCache( $falFile );
@param $filenameOrSysFile
FAL oder Pfad (String) zu der Datei@return void
\nn\t3::Fal()->createFalFile($storageConfig, $srcFile, $keepSrcFile = false, $forceCreateNew = false
);¶
Erzeugt ein File (FAL) Object (sys_file)
nnt3::Fal()->createFalFile( $storageConfig, $srcFile, $keepSrcFile, $forceCreateNew );
@param string $storageConfig
Pfad/Ordner, in die FAL-Datei gespeichert werden soll (z.B. ‘fileadmin/projektdaten/’)@param string $srcFile
Quelldatei, die in FAL umgewandelt werden soll (z.B. ‘uploads/tx_nnfesubmit/beispiel.jpg’)Kann auch URL zu YouTube/Vimeo-Video sein (z.B. https://www.youtube.com/watch?v=7Bb5jXhwnRY)
| @param boolean $keepSrcFile
Quelldatei nur kopieren, nicht verschieben?
| @param boolean $forceCreateNew
Soll immer neue Datei erzeugt werden? Falls nicht, gibt er ggf. bereits existierendes File-Object zurück
@return \Nng\Nnhelpers\Domain\Model\File|\TYPO3\CMS\Core\Resource\File|boolean
\nn\t3::Fal()->createForModel($model, $field, $itemData = NULL
);¶
Eine Datei zu einem FileReference-Object konvertieren und für attach()
an ein vorhandenes
Model und Feld / Property vorbereiten. Die FileReference wird dabei nicht automatisch
an das Model gehängt. Um das FAL direkt in dem Model zu setzen, kann der Helper
| \nn\t3::Fal()->attach( $model, $field, $itemData )
verwendet werden.
\nn\t3::Fal()->createForModel( $model, $fieldName, $filePath );
\nn\t3::Fal()->createForModel( $model, 'image', 'fileadmin/user_uploads/image.jpg' );
\nn\t3::Fal()->createForModel( $model, 'image', ['publicUrl'=>'fileadmin/user_uploads/image.jpg'] );
\nn\t3::Fal()->createForModel( $model, 'image', ['publicUrl'=>'fileadmin/user_uploads/image.jpg', 'title'=>'Titel...'] );
@return \TYPO3\CMS\Extbase\Domain\Model\FileReference
\nn\t3::Fal()->createSysFile($file, $autoCreateStorage = true
);¶
Erstellt neuen Eintrag in sys_file
Sucht in allen sys_file_storage
-Einträgen, ob der Pfad zum $file bereits als Storage existiert.
Falls nicht, wird ein neuer Storage angelegt.
\nn\t3::Fal()->createSysFile( 'fileadmin/bild.jpg' );
\nn\t3::Fal()->createSysFile( '/var/www/mysite/fileadmin/bild.jpg' );
@return false|\TYPO3\CMS\Core\Resource\File
\nn\t3::Fal()->deleteProcessedImages($sysFile = ''
);¶
Löscht alle physischen Thumbnail-Dateien, die für ein Bild generiert wurden inkl.
der Datensätze in der Tabelle sys_file_processedfile
.
Das Ursprungsbild, das als Argument $path
übergeben wurde, wird dabei nicht gelöscht.
Das Ganze erzwingt das Neugenerieren der Thumbnails für ein Bild, falls sich z.B. das
Quellbild geändert hat aber der Dateiname gleich geblieben ist.
Weiterer Anwendungsfall: Dateien auf dem Server bereinigen, weil z.B. sensible, personenbezogene Daten gelöscht werden sollen inkl. aller generierten Thumbnails.
\nn\t3::Fal()->deleteProcessedImages( 'fileadmin/pfad/beispiel.jpg' );
\nn\t3::Fal()->deleteProcessedImages( $sysFileReference );
\nn\t3::Fal()->deleteProcessedImages( $sysFile );
@return mixed
\nn\t3::Fal()->deleteSysFile($uidOrObject = NULL
);¶
Löscht ein SysFile (Datensatz aus Tabelle sys_file
) und alle dazugehörigen SysFileReferences.
Eine radikale Art, um ein Bild komplett aus der Indizierung von Typo3 zu nehmen.
Die physische Datei wird nicht vom Server gelöscht!
Siehe \nn\t3::File()->unlink()
zum Löschen der physischen Datei.
Siehe \nn\t3::Fal()->detach( $model, $field );
zum Löschen aus einem Model.
\nn\t3::Fal()->deleteSysFile( 1201 );
\nn\t3::Fal()->deleteSysFile( 'fileadmin/pfad/zum/bild.jpg' );
\nn\t3::Fal()->deleteSysFile( \TYPO3\CMS\Core\Resource\File );
\nn\t3::Fal()->deleteSysFile( \TYPO3\CMS\Core\Resource\FileReference );
@param $uidOrObject
@return integer
\nn\t3::Fal()->deleteSysFileReference($uidOrFileReference = NULL
);¶
Löscht eine SysFileReference.
Siehe auch \nn\t3::Fal()->detach( $model, $field );
zum Löschen aus einem Model.
\nn\t3::Fal()->deleteSysFileReference( 112 );
\nn\t3::Fal()->deleteSysFileReference( \TYPO3\CMS\Extbase\Domain\Model\FileReference );
@param $uidOrFileReference
@return mixed
\nn\t3::Fal()->detach($model, $field, $obj = NULL
);¶
Leert eine ObjectStorage in einem Model oder entfernt ein
einzelnes Object vom Model oder einer ObjectStorage.
Im Beispiel kann image
eine ObjectStorage oder eine einzelne FileReference
sein:
\nn\t3::Fal()->detach( $model, 'image' );
\nn\t3::Fal()->detach( $model, 'image', $singleObjToRemove );
@return void
\nn\t3::Fal()->fileReferenceExists($sysFile = NULL, $params = []
);¶
Prüft, ob für einen Datensatz bereits eine SysFileReference zum gleichen SysFile exisitert
\nn\t3::Fal()->fileReferenceExists( $sysFile, ['uid_foreign'=>123, 'tablenames'=>'tt_content', 'field'=>'media'] );
@param $sysFile
@param array $params
=> uid_foreign, tablenames, fieldname@return FileReference|false
\nn\t3::Fal()->fromFile($params = []
);¶
Erzeugt ein FileRefence Objekt (Tabelle: sys_file_reference
) und verknüpft es mit einem Datensatz.
Beispiel: Hochgeladenes JPG soll als FAL an tt_news-Datensatz angehängt werden
Parameter:
key Beschreibung
src
Pfad zur Quelldatei (kann auch http-Link zu YouTube-Video sein)
dest
Pfad zum Zielordner (optional, falls Datei verschoben/kopiert werden soll)
table
Ziel-Tabelle, dem die FileReference zugeordnet werden soll (z.B. tx_myext_domain_model_entry
)
title
Titel
description
Beschreibung
link
Link
crop
Beschnitt
table
Ziel-Tabelle, dem die FileReference zugeordnet werden soll (z.B. tx_myext_domain_model_entry
)
sorting
(int) Sortierung
field
Column-Name der Ziel-Tabelle, dem die FileReference zugeordnet werden soll (z.B. image
)
uid
(int) uid des Datensatzes in der Zieltabelle (tx_myext_domain_model_entry.uid
)
pid
(int) pid des Datensatzes in der Zieltabelle
cruser_id
cruser_id des Datensatzes in der Zieltabelle
copy
src-Datei nicht verschieben sondern kopieren (default: true
)
forceNew
Im Zielordner neue Datei erzwingen (sonst wird geprüft, ob bereits Datei existiert) default: false
single
Sicherstellen, dass gleiche FileReferenz nur 1x pro Datensatz verknüpft wird (default: true
)
Beispiel:
$fal = \nn\t3::Fal()->fromFile([
'src' => 'fileadmin/test/bild.jpg',
'dest' => 'fileadmin/test/fal/',
'pid' => 132,
'uid' => 5052,
'table' => 'tx_myext_domain_model_entry',
'field' => 'fallistimage'
]);
@return \TYPO3\CMS\Extbase\Domain\Model\FileReference
\nn\t3::Fal()->getFalFile($srcFile
);¶
Holt ein File (FAL) Object (sys_file
)
\nn\t3::Fal()->getFalFile( 'fileadmin/image.jpg' );
@param string $srcFile
@return \TYPO3\CMS\Core\Resource\File|boolean
\nn\t3::Fal()->getFileObjectFromCombinedIdentifier($file = ''
);¶
Holt ein SysFile aus der CombinedIdentifier-Schreibweise (‘1:/uploads/beispiel.txt’). Falls Datei nicht exisitert wird FALSE zurückgegeben.
\nn\t3::Fal()->getFileObjectFromCombinedIdentifier( '1:/uploads/beispiel.txt' );
@param string $file
Combined Identifier (‘1:/uploads/beispiel.txt’)@return File|boolean
\nn\t3::Fal()->getFilePath($falReference
);¶
Die URL zu einer FileReference oder einem FalFile holen.
Alias zu \nn\t3::File()->getPublicUrl()
.
\nn\t3::Fal()->getFilePath( $fileReference ); // ergibt z.B. 'fileadmin/bilder/01.jpg'
@param \TYPO3\CMS\Extbase\Domain\Model\FileReference|\TYPO3\CMS\Core\Resource\FileReference $falReference
@return string
\nn\t3::Fal()->getFileReferenceByUid($uid = NULL
);¶
Holt eine SysFileReference anhand der uid
Alias zu \nn\t3::Convert( $uid )->toFileReference()
;
\nn\t3::Fal()->getFileReferenceByUid( 123 );
@param $uid
@return \TYPO3\CMS\Extbase\Domain\Model\FileReference
\nn\t3::Fal()->getImage($src = NULL
);¶
Holt / konvertiert in ein TYPO3CMSCoreResourceFileReference Object (sys_file_reference)
“Smarte” Variante zu \TYPO3\CMS\Extbase\Service\ImageService->getImage()
\nn\t3::Fal()->getImage( 1 );
\nn\t3::Fal()->getImage( 'pfad/zum/bild.jpg' );
\nn\t3::Fal()->getImage( $fileReference );
@param string|\TYPO3\CMS\Extbase\Domain\Model\FileReference $src
@return \TYPO3\CMS\Core\Resource\FileReference|boolean
\nn\t3::Fal()->process($fileObj = '', $processing = []
);¶
Berechnet ein Bild über maxWidth
, maxHeight
, cropVariant
etc.
Gibt URI zum Bild als String zurück. Hilfreich bei der Berechnung von Thumbnails im Backend.
Alias zu \nn\t3::File()->process()
\nn\t3::File()->process( 'fileadmin/bilder/portrait.jpg', ['maxWidth'=>200] );
\nn\t3::File()->process( '1:/bilder/portrait.jpg', ['maxWidth'=>200] );
\nn\t3::File()->process( $sysFile, ['maxWidth'=>200] );
\nn\t3::File()->process( $sysFileReference, ['maxWidth'=>200, 'cropVariant'=>'square'] );
@return string
\nn\t3::Fal()->setInModel($model, $fieldName = '', $imagesToAdd = []
);¶
Ersetzt eine FileReference
oder ObjectStorage
in einem Model mit Bildern.
Typischer Anwendungsfall: Ein FAL-Bild soll über ein Upload-Formular im Frontend geändert
werden können.
Für jedes Bild wird geprüft, ob bereits eine FileReference
im Model existiert.
Bestehende FileReferences werden nicht überschrieben, sonst würden evtl.
Bildunterschriften oder Cropping-Anweisungen verloren gehen!
Achtung! Das Model wird automatisch persistiert!
$newModel = new \My\Extension\Domain\Model\Example();
\nn\t3::Fal()->setInModel( $newModel, 'falslideshow', 'path/to/file.jpg' );
echo $newModel->getUid(); // Model wurde persistiert!
Beispiel mit einer einfachen FileReference im Model:
$imageToSet = 'fileadmin/bilder/portrait.jpg';
\nn\t3::Fal()->setInModel( $member, 'falprofileimage', $imageToSet );
\nn\t3::Fal()->setInModel( $member, 'falprofileimage', ['publicUrl'=>'01.jpg', 'title'=>'Titel', 'description'=>'...'] );
Beispiel mit einem ObjectStorage im Model:
$imagesToSet = ['fileadmin/bilder/01.jpg', 'fileadmin/bilder/02.jpg', ...];
\nn\t3::Fal()->setInModel( $member, 'falslideshow', $imagesToSet );
\nn\t3::Fal()->setInModel( $member, 'falslideshow', [['publicUrl'=>'01.jpg'], ['publicUrl'=>'02.jpg']] );
\nn\t3::Fal()->setInModel( $member, 'falvideos', [['publicUrl'=>'https://youtube.com/?watch=zagd61231'], ...] );
Beispiel mit Videos:
$videosToSet = ['https://www.youtube.com/watch?v=GwlU_wsT20Q', ...];
\nn\t3::Fal()->setInModel( $member, 'videos', $videosToSet );
@param mixed $model
Das Model, das geändert werden soll@param string $fieldName
Property (Feldname) der ObjectStorage oder FileReference@param mixed $imagesToAdd
String / Array mit Bildern@return mixed
\nn\t3::Fal()->toArray($fileReference = NULL
);¶
Eine FileReference in ein Array konvertieren.
Enthält publicUrl, title, alternative, crop etc. der FileReference.
Alias zu \nn\t3::Obj()->toArray( $fileReference );
\nn\t3::Fal()->toArray( $fileReference ); // ergibt ['publicUrl'=>'fileadmin/...', 'title'=>'...']
@param \TYPO3\CMS\Extbase\Domain\Model\FileReference $falReference
@return array
\nn\t3::Fal()->unlink($uidOrObject = NULL
);¶
Löscht ein SysFile und alle dazugehörigen SysFileReferences.
Alias zu \nn\t3::Fal()->deleteSysFile()
@return integer
\nn\t3::Fal()->updateMetaData($filenameOrSysFile = '', $data = []
);¶
Update der Angaben in sys_file_metadata
und sys_file
\nn\t3::Fal()->updateMetaData( 'fileadmin/file.jpg' );
\nn\t3::Fal()->updateMetaData( $fileReference );
\nn\t3::Fal()->updateMetaData( $falFile );
@param $filenameOrSysFile
FAL oder Pfad (String) zu der Datei@param $data
Array mit Daten, die geupdated werden sollen.Falls leer, werden Bilddaten automatisch gelesen
| @return void