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

  • Kirsten König
    DANKE!!!
    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.
    Antworten

Hinterlasse einen Kommentar

Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Kommentar wird gespeichert
Danke für deinen Kommentar! Sobald er freigegeben wurde erscheint er hier.