MetaModels\Helper\ToolboxFile::setAcceptedExtensions PHP Method

setAcceptedExtensions() public method

Set the allowed file extensions.
public setAcceptedExtensions ( string | array $acceptedExtensions ) : void
$acceptedExtensions string | array The list of accepted file extensions.
return void
    public function setAcceptedExtensions($acceptedExtensions)
    {
        // We must not allow file extensions that are globally disabled.
        $allowedDownload = trimsplit(',', $GLOBALS['TL_CONFIG']['allowedDownload']);
        if (!is_array($acceptedExtensions)) {
            $acceptedExtensions = trimsplit(',', $acceptedExtensions);
        }
        $this->acceptedExtensions = array_map('strtolower', array_intersect($allowedDownload, $acceptedExtensions));
    }

Usage Example

 /**
  * {@inheritdoc}
  */
 protected function prepareTemplate(Template $objTemplate, $arrRowData, $objSettings)
 {
     parent::prepareTemplate($objTemplate, $arrRowData, $objSettings);
     $objToolbox = new ToolboxFile();
     $objToolbox->setBaseLanguage($this->getMetaModel()->getActiveLanguage());
     $objToolbox->setFallbackLanguage($this->getMetaModel()->getFallbackLanguage());
     $objToolbox->setLightboxId(sprintf('%s.%s.%s', $this->getMetaModel()->getTableName(), $objSettings->get('id'), $arrRowData['id']));
     if (strlen($this->get('file_validFileTypes'))) {
         $objToolbox->setAcceptedExtensions($this->get('file_validFileTypes'));
     }
     $objToolbox->setShowImages($objSettings->get('file_showImage'));
     if ($objSettings->get('file_imageSize')) {
         $objToolbox->setResizeImages($objSettings->get('file_imageSize'));
     }
     if ($arrRowData[$this->getColName()]) {
         if (isset($arrRowData[$this->getColName()]['value']['bin'])) {
             foreach ($arrRowData[$this->getColName()]['value']['bin'] as $strFile) {
                 $objToolbox->addPathById($strFile);
             }
         } elseif (is_array($arrRowData[$this->getColName()])) {
             // FIXME: should not happen anymore.
             foreach ($arrRowData[$this->getColName()] as $strFile) {
                 $objToolbox->addPathById($strFile);
             }
         } else {
             // FIXME: should not happen anymore.
             $objToolbox->addPathById($arrRowData[$this->getColName()]);
         }
     }
     $objToolbox->resolveFiles();
     $arrData = $objToolbox->sortFiles($objSettings->get('file_sortBy'));
     $objTemplate->files = $arrData['files'];
     $objTemplate->src = $arrData['source'];
 }