PHPackages                             marketo/silverstripe-contextawareuploadfield - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. marketo/silverstripe-contextawareuploadfield

AbandonedArchivedSilverstripe-module[File &amp; Storage](/categories/file-storage)

marketo/silverstripe-contextawareuploadfield
============================================

An upload field that makes use of configuration and keywords for determining the upload target

46.2k1PHP

Since Mar 5Pushed 9y ago5 watchersCompare

[ Source](https://github.com/Marketo/SilverStripe-ContextAwareUploadField)[ Packagist](https://packagist.org/packages/marketo/silverstripe-contextawareuploadfield)[ RSS](/packages/marketo-silverstripe-contextawareuploadfield/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Context Aware Upload Field
=======================================

[](#silverstripe-context-aware-upload-field)

Requirements
------------

[](#requirements)

- SilverStripe ^3.1

Installation
------------

[](#installation)

The recommended way to install the module is via composer

```
composer require marketo/contextawareuploadfield:dev-master

```

If you aren't using composer, pull down the code into its own directory.

Examples
--------

[](#examples)

To add this to a Page object, you can put the following code into your YAML configuration.

```
ContextAwareUploadField:
  upload_paths:
    Page: some/location/$ClassName/$URLSegment
```

The segments in the URL directly correspond to fields in the database. The location will always be under assets.

---

`upload_paths` also accepts SilverStripe dot notation. For example:

```
ContextAwareUploadField:
  upload_paths:
    Teacher: teachers/$Name
    Course: teachers/$Teacher.Name/$Name
    Student: students/$GraduatingClass.Year/$Name
```

---

If you wish to override all UploadField instances, you can use the following code.

```
Injector:
  UploadField:
    class: ContextAwareUploadField
```

Run a `dev/build?flush=1` to flush the config manifests to enable the new configuration.

License
-------

[](#license)

See [License](LICENSE.md)

Maintainers
-----------

[](#maintainers)

- Nathan J. Brauer

Bugtracker
----------

[](#bugtracker)

###  Health Score

26

—

LowBetter than 41% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60% of commits — single point of failure

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.

### Community

Maintainers

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

![](https://avatars.githubusercontent.com/u/681036?v=4)[Brandon Marshall](/maintainers/Brandon32)[@Brandon32](https://github.com/Brandon32)

![](https://avatars.githubusercontent.com/u/22066381?v=4)[Marketing Dev](/maintainers/marketingdev)[@MarketingDev](https://github.com/MarketingDev)

![](https://avatars.githubusercontent.com/u/17607967?v=4)[Jason Slavin](/maintainers/JasonHowellSlavin)[@JasonHowellSlavin](https://github.com/JasonHowellSlavin)

---

Top Contributors

[![nathanbrauer](https://avatars.githubusercontent.com/u/323945?v=4)](https://github.com/nathanbrauer "nathanbrauer (3 commits)")[![Neumes](https://avatars.githubusercontent.com/u/8358226?v=4)](https://github.com/Neumes "Neumes (2 commits)")

### Embed Badge

![Health badge](/badges/marketo-silverstripe-contextawareuploadfield/health.svg)

```
[![Health](https://phpackages.com/badges/marketo-silverstripe-contextawareuploadfield/health.svg)](https://phpackages.com/packages/marketo-silverstripe-contextawareuploadfield)
```

###  Alternatives

[venveo/craft-compress

Create smart zip files from Craft assets on the fly

124.7k](/packages/venveo-craft-compress)

PHPackages © 2026

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