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' );
@return false|\TYPO3\CMS\Core\Resource\File
\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