My goal is to create extension using extension builder in TYPO3 7.6.2 version. I created Category Product extension from extension builder document, it works perfect except upload single image.
But I have to create functionality to add multiple images to single product and display images carousel on frontend. But extension builder does not work with file uploads.
I am new in TYPO3, so I don't understand how to add multiple images to that? I read too many documents but did not found perfect solution.
I just want to know the process how to add multiple images to products?
Thanks in advance!
Finally I got the solution to this question.
Go to your extension and follow the steps -
/Classes/Domain/Model/YourModel.php
/**
* yourPictures
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
* @lazy
*/
protected $yourPictures = NULL;
/**
* Constructor
*
* @return AbstractObject
*/
public function __construct() {
// ObjectStorage is needed to reference multiple files to one field
// see also @var before variable and @return before the respective get() method
$this->yourPictures = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
}
/**
* returns yourPictures
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage
*/
public function getYourPictures() {
return $this->yourPictures;
}
/**
* sets yourPictures
*
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage $yourPictures
* @return void
*/
public function setYourPictures($yourPictures) {
$this->yourPictures = $yourPictures;
}
/Configuration/TCA/YourModel.php
Add field name in array 'types'
and in array 'columns'
add this -
'your_pictures' => array(
'exclude' => 1,
'label' => 'LLL:EXT:your_ext/Resources/Private/Language/locallang_db.xlf:tx_yourext_domain_model_yourmodel.your_pictures',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'yourPictures',
array('minitems'=>0,'maxitems'=>10),
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
),
),
add my_pictures varchar(255) DEFAULT '' NOT NULL,
<f:for each="{yourDomain.myPictures}" as="pic">
<f:image src="{pic.originalResource.publicUrl}" alt="{pic.originalResource.alternative}" title="{pic.originalResource.title}" ></f:image>
{pic.originalResource.description}
</f:for>
Thats it ! Hope it will help someone.
Thanks