wernerkrauss/folderperpage

An extension for automatically creating a folder per page

Maintainers

πŸ‘ wernerkrauss

Package info

github.com/wernerkrauss/silverstripe-folderperpage

Type:silverstripe-vendormodule

pkg:composer/wernerkrauss/folderperpage

Statistics

Installs: 494

Dependents: 0

Suggesters: 2

Stars: 2

Open Issues: 7

0.2.2 2016-03-09 09:59 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 5581474f5fa50a96e3722295afdf35e826363b1c

extensionsilverstripe

This package is auto-updated.

Last update: 2026-06-29 01:01:23 UTC


README

πŸ‘ Build Status
πŸ‘ Scrutinizer Code Quality
πŸ‘ codecov.io
πŸ‘ helpfulrobot

Extension that creates a folder per page or dataobject

Requirements

for SS3 compatible versions see SS3 branch

Installation

Download and install manually or use composer.

Make sure you add the extension to the classes you want to decorate. Add this to your config.yml to add it to all Pages:

Page:
 extensions:
 - NetWerkstatt\FolderPerPage\Extensions\RootFolder

Configuration

You can exclude several page types. Just use the RootFolder.ignored_classes config value. The module's config.yml has some default values to get you started:

NetWerkstatt\FolderPerPage\Extensions\RootFolder:
 ignored_classes:
 - SilverStripe\CMS\Model\VirtualPage
 - SilverStripe\ErrorPage\ErrorPage
 create_folder_for_translations: false
 folder_root: 'Articles'

Of course every decorated class can have a seperate folder root, e.g. "Articles" for all pages and "News" for a news data object. Just add the folder_root config to your object.

Update your forms

You can use $this->getRootFoldername() to set the upload folder.

Given you have a has_one relation "Avatar" => "Image" you can add the folder to the UploadField:

function getCMSFields() {
 /*...*/
 $pic = UploadField::create('Avatar', 'Your Avatar');
 $fields->addFieldToTab('Root.Main', $pic);

 $pic->setFolderName($this->getRootFolderName());
 /*...*/
}

TODO

  • add function that automatically updates all UploadFields and BulkUploads to use this folder in a form
  • add support for subsites module, e.g. a master root per subsite
  • task for updating / checking all existing pages
    • should it move the rootfolder automatically or by switch? May be a timeout problem with very large trees