Tutorials
Einige nützliche Hilfen und Code-Schnipsel, die ich immer wieder benötige und deshalb hier für alle sammle.
Zurück zur Übersicht
TYPO3: FAL in eigener Extension benutzen
#Tutorials#TYPO3
Mit den folgenden Codeschnipseln wird gezeigt, wie man FAL Links und Bilder in einer eigenen Extension nutzen kann.
ext_tables.sql
<f:for each="{images}" as="image">
Ausgabe Bild:<br />
<f:image src="{image.image.originalResource.originalFile.uid}" alt="" /><br />
<f:image src="{image.image.uid}" alt="" treatIdAsReference="TRUE" /><br /><br />
Ausgabe Links
<f:for each="{images.files}" as="file">
<p>{file.originalResource.originalFile.title}</p>
</f:for>
</f:for>
Template
class ImagesController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
// ..
public function listAction() {
$images = $this->imagesRepository->findAll();
$this->view->assign('images', $images);
}
// ..
}
Controller
class Images extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
// ...
/**
* Image
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
*/
protected $image;
/**
* Files
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
*/
protected $files;
// ...
/**
* Returns the image
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $image
*/
public function getImage() {
return $this->image;
}
/**
* Sets the image
*
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $image
* @return void
*/
public function setImage($image) {
$this->image = $image;
}
/**
* Returns the files
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $files
*/
public function getFiles() {
return $this->files;
}
/**
* Sets the files
*
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $files
* @return void
*/
public function setFiles($files) {
$this->files = $files;
}
// ...
}
Model
$TCA['tx_falusage_domain_model_images'] = array(
// ...
'image' => array(
'exclude' => 1,
'label' => 'Image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('image', array(
'appearance' => array(
'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference'
),
'minitems' => 0,
'maxitems' => 1,
), $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']),
),
'files' => array(
'exclude' => 1,
'label' => 'Files',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('files', array(
'appearance' => array(
'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference'
),
), $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']),
),
// ...
);
TCA
CREATE TABLE tx_falusage_domain_model_images (
image varchar(255) DEFAULT '' NOT NULL,
files varchar(255) DEFAULT '' NOT NULL,
...
);
Achtung!
Mit Multilang hat FAL gerade in der aktuellsten Version (6.2.4) noch Fehler (https://forge.typo3.org/issues/57272
Im Bugtracker steht aber ganz unten, was man tun muss, um den Fehler zu beheben. Habe ich selbst machen müssen, getestet und es funktioniert.
Kommentare
Das hat mir sehr geholfen (FAL in eigener Extension benutzen). Mit einem expliziten Beispiel ist es auf einmal ganz einfach :-))
Übrigens: In Version 10.4 sollte das DB Feld vom Typ Integer sein.
Hinterlasse einen Kommentar