Ограничить разрешенные носители страницыРасширения TYPO3 9.5.x

Как я могу ограничить allowedExtention только для $GLOBALS['TCA']['pages']['columns']['media']? Но не используйте $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'], так как это добавит ограничения для всех полей FAL.

я нашел класс

class ImageManipulationElement extends AbstractFormElement
{
    /**
     * Default element configuration
     *
     * @var array
     */
    protected static $defaultConfig = [
        'file_field' => 'uid_local',
        'allowedExtensions' => null, // default: $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']

Похоже, должно быть что-то вроде:

$GLOBALS['TCA']['pages']['columns']['media']['config']['overrideChildTca']['allowedExtensions'] = 'jpg, jpeg';

Тяжелый путь отбросит все полезное для этого поля.

$GLOBALS['TCA']['pages']['columns']['media'] = [
             'exclude' => true,
             'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.media',
             'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
                 'media',
                 [], 'jpg, jpeg'
             )
         ]; 

Так что это не наш путь. Мне нужно просто какое-то переопределение, например

$GLOBALS['TCA']['pages']['columns']['media']['config']['overrideChildTca']['columns']...['allowedExtention'] = 'jpg, jpeg';

Кто знает, как это сделать?


person Oleg V Karun    schedule 28.01.2020    source источник
comment
Посмотрите \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(). 'allowedFileExtensions' используется в 'фильтр -> параметры'. Итак, простой $GLOBALS['TCA']['pages']['columns']['media']['config']['filter']['parameters'][''allowedFileExtensions'] = 'jpg' должно сработать.   -  person Julian Hofmann    schedule 28.01.2020
comment
Забыли иерархию массива ниже 'filter': $GLOBALS['TCA']['pages']['columns']['media']['config']['filter'][0]['parameters'][ 'allowedFileExtensions'] = 'jpg'   -  person Julian Hofmann    schedule 28.01.2020
comment
@JulianHofmann Для меня $GLOBALS['TCA']['pages']['columns']['media']['config']['filter'][0]['parameters']['allowedFileExtensions'] = 'jpg, jpeg'; не имеют никакого эффекта, но я нашел таким образом $GLOBALS['TCA']['pages']['columns']['media']['config']['overrideChildTca']['columns']['uid_local ']['config']['appearance']['elementBrowserAllowed']='jpg,jpeg'; и эта работа. Спасибо за ваш совет   -  person Oleg V Karun    schedule 29.01.2020


Ответы (1)


После небольшого поиска я нашел этот пример:

$allowExtensions = 'jpg,jpeg';
$GLOBALS['TCA']['pages']['columns']['media']['config']['filter'][0]['parameters']['allowedFileExtensions'] = '$allowExtensions; 
$GLOBALS['TCA']['pages']['columns']['media']['config']['overrideChildTca']['columns']['uid_local']['config']['appearance']['elementBrowserAllowed']= $allowExtensions;

добавлено в typo3conf/ext/myext/Configuration/TCA/Overrides/pages.php

person Oleg V Karun    schedule 06.02.2020