PHPackages                             beechit/default-upload-folder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. beechit/default-upload-folder

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

beechit/default-upload-folder
=============================

Make it possible to configure the default upload folder for a certain TCA column

3.0.0(6mo ago)13127.6k—2.1%20[6 issues](https://github.com/beechit/default_upload_folder/issues)GPL-2.0+PHP

Since Apr 6Pushed 6mo ago7 watchersCompare

[ Source](https://github.com/beechit/default_upload_folder)[ Packagist](https://packagist.org/packages/beechit/default-upload-folder)[ RSS](/packages/beechit-default-upload-folder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (28)Used By (0)

Default upload folder
=====================

[](#default-upload-folder)

Make it possible to configure the default upload folder for a certain TCA column

**How to use:**

1. Download from TER or require (`composer require beechit/default-upload-folder`) extension default\_upload\_folder
2. Install extension default\_upload\_folder via the extension manager
3. Create the default folders or the folder is automatically created *(Editors needs access to storage and the folder root)*
4. Add configuration to 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}
    }

```

**FAQ**

*What happens when the editor does not have access to the upload folder?*

> The "Select &amp; upload files" and "Add media by URL" buttons are not available for the editor

*How do the fallbacks work?*

> 1. First it will check if there is a default upload folder for the table &amp; field combination.
> 2. Then it will check if there is a default upload folder for the table.
> 3. Finally, it will check if there is configuration for `defaultForAllTables`

*Are folders automatically created?*

> Yes, but only if path set with combined identifiers like 1:myNewsPicturesFolder

*How to use the year/month/week/day feature?*

> 1. Make sure the variable `tx_mews_domain_model_news` has the `dateformat` value set to `1`.
> 2. Then (over)write the original variable however you prefer: `tx_news_domain_model_news = 1:news/{Y}/{m}`
> 3. This will translate into: `1:news/2023/06` which in turn creates the directory: `news/2023/06`

*Why does the year/month/week/day feature not use the php strftime function &amp; format?*

> The strftime function has been deprecated in PHP 8.1, and will be [removed in PHP 9.](https://www.php.net/manual/en/function.strftime.php)
>
> Currently, there is no proper solution that takes localisation in consideration. Hence, the choice to create a custom interpreter. The values used are based on the [date() -&gt; Parameter Values](https://www.w3schools.com/php/func_date_date.asp)format. the values currently in use are:
>
> - Y - A four digit representation of a year
> - y - A two digit representation of a year
> - m - A numeric representation of a month (from 01 to 12)
> - n - A numeric representation of a month, without leading zeros (1 to 12)
> - d - The day of the month (from 01 to 31)
> - j - The day of the month without leading zeros (1 to 31)
> - W - The ISO-8601 week number of year (weeks starting on Monday)
> - w - A numeric representation of the day (0 for Sunday, 6 for Saturday)
>
> The other values are currently **not** in use.
>
> This functionality might be refactored in the future when php offers a proper replacement to the removal of `strftime`.

**Requirements:**

> TYPO3 V12.4

**Changes TYPO3 V12:**

> Converted from Hook to Event, as Hooks are depricated.
>
> Specifically:
>
> Added Services.yaml (as required for Event handling) Now receives $backendUserAuthentication directly from $GLOBALS\['BE\_USER'\].

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance59

Moderate activity, may be stable

Popularity43

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity73

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~165 days

Recently: every ~191 days

Total

20

Last Release

189d ago

Major Versions

1.3.0 → 2.0.0.x-dev2023-08-15

1.3.1 → 2.0.32023-10-16

2.0.4 → 3.0.02025-11-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/d458cf6ef2a109beb4343570834ba22110314d525f6d0f439eb1ae57d3b6f5e3?d=identicon)[beechit](/maintainers/beechit)

---

Top Contributors

[![frans-beech-it](https://avatars.githubusercontent.com/u/4436635?v=4)](https://github.com/frans-beech-it "frans-beech-it (32 commits)")[![joey-bolts](https://avatars.githubusercontent.com/u/42336909?v=4)](https://github.com/joey-bolts "joey-bolts (9 commits)")[![ruudsilvrants](https://avatars.githubusercontent.com/u/9974197?v=4)](https://github.com/ruudsilvrants "ruudsilvrants (7 commits)")[![ruudsilvrants-beech](https://avatars.githubusercontent.com/u/129871953?v=4)](https://github.com/ruudsilvrants-beech "ruudsilvrants-beech (6 commits)")[![mbrodala](https://avatars.githubusercontent.com/u/5037116?v=4)](https://github.com/mbrodala "mbrodala (6 commits)")[![FamousWolf](https://avatars.githubusercontent.com/u/6401921?v=4)](https://github.com/FamousWolf "FamousWolf (4 commits)")[![tbsschmdt](https://avatars.githubusercontent.com/u/79580110?v=4)](https://github.com/tbsschmdt "tbsschmdt (3 commits)")[![franzkugelmann](https://avatars.githubusercontent.com/u/11320147?v=4)](https://github.com/franzkugelmann "franzkugelmann (3 commits)")[![support-beech](https://avatars.githubusercontent.com/u/102036622?v=4)](https://github.com/support-beech "support-beech (3 commits)")[![GReitz-beech](https://avatars.githubusercontent.com/u/78799663?v=4)](https://github.com/GReitz-beech "GReitz-beech (2 commits)")[![svenpet90](https://avatars.githubusercontent.com/u/97380444?v=4)](https://github.com/svenpet90 "svenpet90 (2 commits)")[![weberdigital](https://avatars.githubusercontent.com/u/5400807?v=4)](https://github.com/weberdigital "weberdigital (1 commits)")[![georgringer](https://avatars.githubusercontent.com/u/1905663?v=4)](https://github.com/georgringer "georgringer (1 commits)")[![TimWilms](https://avatars.githubusercontent.com/u/26650781?v=4)](https://github.com/TimWilms "TimWilms (1 commits)")[![tobenschmidt](https://avatars.githubusercontent.com/u/1374178?v=4)](https://github.com/tobenschmidt "tobenschmidt (1 commits)")[![dogawaf](https://avatars.githubusercontent.com/u/381969?v=4)](https://github.com/dogawaf "dogawaf (1 commits)")

### Embed Badge

![Health badge](/badges/beechit-default-upload-folder/health.svg)

```
[![Health](https://phpackages.com/badges/beechit-default-upload-folder/health.svg)](https://phpackages.com/packages/beechit-default-upload-folder)
```

###  Alternatives

[in2code/powermail

Powermail is a well-known, editor-friendly, powerful and easy to use mailform extension for TYPO3 with a lots of features

982.5M38](/packages/in2code-powermail)[fluidtypo3/flux

The flux package from FluidTYPO3

152982.2k20](/packages/fluidtypo3-flux)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

96374.6k23](/packages/friendsoftypo3-content-blocks)[derhansen/sf_event_mgt

Configurable event management and registration extension based on ExtBase and Fluid

64313.9k6](/packages/derhansen-sf-event-mgt)[typo3/cms-t3editor

TYPO3 CMS T3Editor - JavaScript-driven editor with syntax highlighting and code completion. Based on CodeMirror.

115.9M50](/packages/typo3-cms-t3editor)[wazum/sluggi

TYPO3 extension for URL slug management with inline editing, auto-sync, locking, access control, and redirects

39488.5k](/packages/wazum-sluggi)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
