首页 文章

在TCA中使用FAL时设置上载文件夹

提问于
浏览
5

是否可以在使用FAL时直接在TCA列中设置上传目标文件夹?我的配置目前看起来像这样:

'images_outdoor' => Array (
        'exclude' => 1,
        'label' => 'Outdoor: ',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('images_outdoor', Array (
            'appearance' => Array (
                'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference'
            ),
            'minitems' => 1,
            'maxitems' => 6,
        ), $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']),
    ),

我在不同的TCAs中有这样的列,并希望将它们的图像保存在不同的文件夹中 . 因此,标准文件夹设置在此处不起作用 .

1 回答

  • 1

    我知道这个是旧的,但这是一个答案 .

    TYPO3 6.2没有受支持的方式,但在新的TYPO3 7.6 LTS中,应该可以在 ext_localconf.php 文件中注册一个挂钩,添加:

    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['getDefaultUploadFolder'][] = 'VendorName\ExtensionName\Hooks\BackendUserAuthentication->getDefaultUploadFolder'
    

    创建文件 Classes/Hooks/BackendUserAuthentication.php 并编写如下内容:

    <?php
    namespace VendorName\ExtensionName\Hooks;
    
    classe BackendUserAuthentication {
        public function getDefaultUploadFolder(Array $params, \TYPO3\CMS\Core\Authentication\BackendUserAuthentication $backendUserAuthentication) {
            // Do what you wants here and return a object of \TYPO3\CMS\Core\Resource\Folder
        }
    }
    

    params数组将包含:

    $_params = array(
        'uploadFolder' => $uploadFolder, // The current \TYPO3\CMS\Core\Resource\Folder object, properly 1:/user_upload/
        'pid' => $pid, // Page id
        'table' => $table, // The table name
        'field' => $field, // The field name
    );
    

    现在使用表和字段名称来更改上传文件夹 - 好看:)

相关问题