是否可以在使用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']),
),
Run Code Online (Sandbox Code Playgroud)
我在不同的TCAs中有这样的列,并希望将它们的图像保存在不同的文件夹中.因此,标准文件夹设置在此处不起作用.
我知道这个已经很旧了,但这里有一个答案。
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'
Run Code Online (Sandbox Code Playgroud)
创建文件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
}
}
Run Code Online (Sandbox Code Playgroud)
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
);
Run Code Online (Sandbox Code Playgroud)
现在使用表和字段名称来更改上传文件夹 - 看起来不错:)