beechit/default-upload-folder

允许配置特定TCA列的默认上传文件夹

安装: 94,329

依赖者: 0

建议者: 0

安全性: 0

星标: 11

关注者: 8

分支: 20

开放问题: 5

类型:typo3-cms-extension

2.0.4 2024-06-06 19:33 UTC

README

允许配置特定TCA列的默认上传文件夹

如何使用

  1. 从TER下载或通过require (composer require beechit/default-upload-folder) 安装扩展 default_upload_folder
  2. 通过扩展管理器安装扩展 default_upload_folder
  3. 创建默认文件夹,或文件夹会自动创建 (编辑器需要访问存储和文件夹根目录)
  4. 添加配置到pageTs
    default_upload_folders {
        # folder can be a combined identifier
        tx_news_domain_model_news = 1:news
        # Or a folder relative to the default upload folder of the user
        tx_news_domain_model_news = news

        # You can set a folder for the whole table or for a specific field of that table
        tx_news_domain_model_news.fal_related_files = news_downloads
        tx_news_domain_model_news.fal_media = news_media

        # You can set a fallback for all tables
        defaultForAllTables = 1:myDefaultUploadFolderForThisPartOfTheTree

        # You can set a default year/month/day folder within the set default folder
        tx_news_domain_model_news.dateformat = 1
        tx_news_domain_model_news = 1:news/{Y}/{m}
    }

常见问题解答

当编辑器无法访问上传文件夹时会发生什么?

"选择并上传文件"和"通过URL添加媒体"按钮对编辑器不可用

回退机制是如何工作的?

  1. 首先,它会检查是否存在表与字段组合的默认上传文件夹。
  2. 然后,它会检查是否存在表的默认上传文件夹。
  3. 最后,它会检查是否存在defaultForAllTables的配置

文件夹会自动创建吗?

是的,但只有当路径使用组合标识符设置时,例如1:myNewsPicturesFolder

如何使用年/月/周/日功能?

  1. 确保变量tx_mews_domain_model_newsdateformat值设置为1
  2. 然后以您喜欢的方式重写原始变量:tx_news_domain_model_news = 1:news/{Y}/{m}
  3. 这会转换为:1:news/2023/06,进而创建目录:news/2023/06

为什么年/月/周/日功能不使用php strftime函数和格式?

strftime函数在PHP 8.1中已被弃用,将在PHP 9中删除。查看详情

目前没有考虑到本地化的适当解决方案。因此,选择创建自定义解释器。使用的值基于date() -> 参数值格式。当前使用的值是

  • Y - 年的四位表示
  • y - 年的两位表示
  • m - 月的数字表示(从01到12)
  • n - 月的数字表示,不带前导零(1到12)
  • d - 月份中的天数(从01到31)
  • j - 月份中的天数,不带前导零(1到31)
  • W - 年的ISO-8601周数(从周一开始计算)
  • w - 天的数字表示(周日为0,周六为6)

其他值目前使用。

该功能可能会在未来重构,当PHP提供适当的替代方案以替换strftime的删除时。

需求

TYPO3 V12.4

TYPO3 V12更改

从钩子转换为事件,因为钩子已被弃用。

特别是:https://docs.typo3.org/m/typo3/reference-coreapi/12.4/en-us/ApiOverview/Events/Events/Core/Resource/AfterDefaultUploadFolderWasResolvedEvent.html

添加Services.yaml(作为事件处理所需)现在直接从$$GLOBALS['BE_USER']接收$backendUserAuthentication。