PHPackages                             unclecheese/kickassets - 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. unclecheese/kickassets

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

unclecheese/kickassets
======================

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

3.3.3(8y ago)464.0k22[30 issues](https://github.com/unclecheese/silverstripe-kickassets/issues)[6 PRs](https://github.com/unclecheese/silverstripe-kickassets/pulls)BSD-3-ClauseJavaScriptPHP &gt;=5.3.0

Since Jan 5Pushed 8y ago7 watchersCompare

[ Source](https://github.com/unclecheese/silverstripe-kickassets)[ Packagist](https://packagist.org/packages/unclecheese/kickassets)[ RSS](/packages/unclecheese-kickassets/feed)WikiDiscussions master Synced 5d ago

READMEChangelog (10)Dependencies (3)Versions (21)Used By (0)

KickAssets 3 for SilverStripe
=============================

[](#kickassets-3-for-silverstripe)

KickAssets is a replacement for the *Files &amp; Images* section (AssetAdmin) in SilverStripe CMS. It adds drag-and-drop uploading, mouse and keyboard selection, and a variety of other desktop-like file UI features.

See it. In 49 Seconds of Superfluous Flair.
-------------------------------------------

[](#see-it-in-49-seconds-of-superfluous-flair)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/0.png)](https://vimeo.com/145456487)

Demo
----

[](#demo)

[Try it out](http://modules.unclecheeseproductions.com/admin).

(User: kickassets / Pass: kickassets)

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

[](#installation)

`composer require unclecheese/silverstripe-kickassets`

Dependencies
------------

[](#dependencies)

- [unclecheese/dropzone](http://github.com/unclecheese/silverstripe-dropzone)

Screenshots
-----------

[](#screenshots)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/1.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/1.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/2.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/2.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/3.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/3.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/4.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/4.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/5.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/5.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/6.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/6.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/7.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/7.png)

[![](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/8.png)](https://raw.githubusercontent.com/unclecheese/silverstripe-kickassets/master/images/screenshots/8.png)

JavaScript API
--------------

[](#javascript-api)

An API is exposed to the entire CMS that allows you to prompt the user to select a file in the KickAssets UI. The following

```
$('.select-files').entwine({
	onclick: function(e) {
		e.preventDefault();
		var $t = this;
		KickAssets.requestFile(function(file) {
			$t.next('ul').append(' '+file.filename+'');
		});
	}
});
```

Also available is `KickAssets.requestFiles`, which returns an array of `file` objects.

Optionally, you can pass list of permissions as a first parameter to `requestFile` or `requestFiles`.

```
$('.select-files').entwine({
	onclick: function(e) {
		e.preventDefault();
		var $t = this;
		var permissions = {
			folderID: 123,
			canUpload: false
		};
		KickAssets.requestFile(permissions, function(file) {
			$t.next('ul').append(' '+file.filename+'');
		});
	}
});
```

A full list of permissions:

NameDescriptionDefault valuemaxSelectionThe maximum number of files that can be selected and returned. 0 for unlimited.0folderIDThe ID of the folder to start in0canUploadWhether the user should be able to upload in the windowtruecanDeleteWhether the user should be able to delete files or folders in the windowtruecanEditWhether the user should be able to edit files in the windowtruecanCreateFolderWhether the user should be able to add folders in the windowtrueallowedTypesA comma-separated list of file types that can be selected'file,image,folder'Usage with UploadField and Dropzone
-----------------------------------

[](#usage-with-uploadfield-and-dropzone)

By default, the `unclecheese/silverstripe-dropzone` module will detect KickAssets and use it on `FileAttachmentField` for selecting existing files.

To get the same behaviour on `UploadField`, ensure the `use_on_uploadfield` setting is set to `true`. (It is by default).

```
KickAssets:
  use_on_uploadfield: true
```

Most settings, such as max files, allowed extensions, and and upload folder will transfer over to the KickAssets window.

Usage with HTMLEditorField
--------------------------

[](#usage-with-htmleditorfield)

In addition to the "Insert Media" button that comes with the default configuration of the CMS, KickAssets adds a "Browse files..." buttton that opens the KickAssets window, allowing you to upload, move, edit, and delete files and insert them into the editor at the position of the cursor.

If you select one or many images, they will be appended to the the editor in the order in which they were selected. If you select a file, it will link any text that is selected in the editor to the URL of that file. If no text is selected and you choose a file, it will insert a link to the file using the title of the file as the clickable text.

Browser support
---------------

[](#browser-support)

Everyone can come to the party except IE9. Sorry.

(I'm not really sorry.)

Contributing
------------

[](#contributing)

KickAssets is written in [React JS](http://facebook.github.io/react), and requires transpiling from ES6 and JSX. This is done using [Webpack](http://webpack.github.io) and [Babel](http://babeljs.io). You will need to install Webpack on your system.

`npm install -g webpack`

Then, run `npm install` in your `kickassets` module directory to install all of the dependencies.

To start writing code, run: `webpack --watch`

When finished, create a production bundle by setting an environment file and turning on minification.

`PROD=1 webpack -p`.

If you would prefer not to install webpack globally, there are these handy npm scripts:

- `npm run build` - Does a one time webpack build
- `npm run build:watch` - Equivalent to `webpack --watch`
- `npm run build:prod` - Equivalent to `PROD=1 webpack -p`

Troubleshooting
---------------

[](#troubleshooting)

While in a developer environment and/or while PHP `E_NOTICE` is enabled, KickAssets will malfunction if your files aren't in sync.

Thankfully, SilverStripe ships with a `BuildTask` that can resolve this. Head to `dev/tasks` and run the "Sync Files &amp; Image Assets".

or

Ring Uncle Cheese.

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance7

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community23

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor3

3 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 ~57 days

Recently: every ~104 days

Total

20

Last Release

3053d ago

Major Versions

2.0.0 → 3.0.02015-11-12

PHP version history (2 changes)3.1.3PHP &gt;=5.4.0

3.3.1PHP &gt;=5.3.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/654636?v=4)[Aaron Carlino](/maintainers/unclecheese)[@unclecheese](https://github.com/unclecheese)

---

Top Contributors

[![digitall-it](https://avatars.githubusercontent.com/u/3578378?v=4)](https://github.com/digitall-it "digitall-it (6 commits)")[![jonom](https://avatars.githubusercontent.com/u/1079425?v=4)](https://github.com/jonom "jonom (3 commits)")[![grzegorzbialy](https://avatars.githubusercontent.com/u/186096?v=4)](https://github.com/grzegorzbialy "grzegorzbialy (2 commits)")[![cjsewell](https://avatars.githubusercontent.com/u/1856199?v=4)](https://github.com/cjsewell "cjsewell (2 commits)")[![alex-dna](https://avatars.githubusercontent.com/u/6982515?v=4)](https://github.com/alex-dna "alex-dna (2 commits)")[![rsmclaren](https://avatars.githubusercontent.com/u/1579625?v=4)](https://github.com/rsmclaren "rsmclaren (1 commits)")[![ShrikeFIN](https://avatars.githubusercontent.com/u/1734521?v=4)](https://github.com/ShrikeFIN "ShrikeFIN (1 commits)")[![davidmorrisonnz](https://avatars.githubusercontent.com/u/22651645?v=4)](https://github.com/davidmorrisonnz "davidmorrisonnz (1 commits)")[![hdpero](https://avatars.githubusercontent.com/u/13778690?v=4)](https://github.com/hdpero "hdpero (1 commits)")[![mylesthedev](https://avatars.githubusercontent.com/u/909749?v=4)](https://github.com/mylesthedev "mylesthedev (1 commits)")[![PeterhrCZ](https://avatars.githubusercontent.com/u/15790367?v=4)](https://github.com/PeterhrCZ "PeterhrCZ (1 commits)")

---

Tags

silverstripefilesuploadassetsAssetAdmin

### Embed Badge

![Health badge](/badges/unclecheese-kickassets/health.svg)

```
[![Health](https://phpackages.com/badges/unclecheese-kickassets/health.svg)](https://phpackages.com/packages/unclecheese-kickassets)
```

###  Alternatives

[unclecheese/silverstripe-kickassets

Provides an alternative file management interface for SilverStripe CMS with drag-and-drop, multi-selection, and several other desktop-like UI conventions.

4728.3k1](/packages/unclecheese-silverstripe-kickassets)[unclecheese/dropzone

An HTML5 upload field for the CMS and frontend forms.

46130.7k6](/packages/unclecheese-dropzone)[silverstripe/selectupload

Enables files to be uploaded into a user-designated folder

2779.1k1](/packages/silverstripe-selectupload)

PHPackages © 2026

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