File management module for SilverStripe

Why you might benefit from the file management module for SilverStripe.

One of our clients has specific requirements for their website due to a very large file system (well over ten thousand files) which presents several challenges around file management. Our task was to create a user interface for the easy management of files in their SilverStripe 2.4 site; primarily this involved managing the attachment (and removal) of files relating to specific pages in the site, and control over the visibility of these files in the front-end of the site. We worked closely with the client to build a customized module that would fit in with their existing internal file management processes and workflow.


File management (attaching/removing)

Due to the very large file structure, navigating files to attach to pages using the standard interface was almost impossible.


FilingCabinet is a module we built to facilitate easy upload/attachment of files to any page within the site using a clear and simple interface. This module plugs into existing SilverStripe file management modules (DataobjectManager and Uploadify), adding a great deal of functionality and usability to these standard tools.


File management (publication) 

Often files that are displayed on a page will need to be removed if the information they contain requires amendment. Previously there was no elegant way to control publication or removal of files and any file attached to a page would automatically be visible front-end. This made quick removal of files or pre-loading of files to become available at a later date very difficult and a logistical nightmare.


The FilingCabinet module introduces an elegant control over which of the files attached to a page will be visible front-end, including setting a future publication date so a file will not be visible until a specified date has passed. This system assigns a status to each file (either “Approved” or “Not approved”) as well as the publish date; if both of these conditions are met (i.e. if the file is approved AND the publish date has passed) then the file will be displayed in the live site. Otherwise the file is only available back-end to site administrators/editors. This system makes it very easy to quickly remove files from the site by either setting the status to “Not approved” or amending the publish date to a future date.


File metadata

Due to the large number of files being dealt with, it was often proving difficult to find a particular file. There needed to be more information available in order to identify files, in the form of metadata (or “extra data”) for each file


The FilingCabinet module makes it easy to assign metadata (such as summary of file contents, publication date) to each file being uploaded/added. The fact that this data must be present in order for the upload/attachment process to be completed ensures good filing practices are adhered to and helps future-proof the file system.



To conclude, FilingCabinet offers an intuitive and very functional user interface for the management of File-Page relationships as well as the publication of files in a webpage, in a robust and portable format.