Creating a Document Management System with CMS Made Simple and some modules
Tuesday, January 19th, 2010So I had to create a system where users could register, login, and upload files. The system would need to show each user his/her files and no one else’s, and get in touch with the administrator to let them know a new file was uploaded.
There’s nothing inherent in CMS Made Simple to accomplish this, but I used a couple of modules (FrontEndUsers, SelfRegistration, CustomContent, and Uploads) to take care of the job. It’s easy enough that I know the developer meant it to be used this way if someone needed it. I’m not going to explain SelfRegistration here, that’s for another post. However, here’s the instructions for the Document Manager:
- Install FrontEndUsers, SelfRegistration, CustomContent, and Uploads (Front End File Management)
- Add 2 pages to the site. Call one “Document Manager” and the other “Send a File”
- In FrontEndUsers, create the User Properties you’ll need for your registered users.
- Create the User’s Group.
- Put the “Document Manager” and “Send a File” pages behind a login using FEU
- In Uploads, create the Category “Client Uploads.”
- In the Page “Document Manager,” insert the code below:
{assign var=email value=$ccuser->username()}
{cms_module module="Uploads" category="Client Uploads" mode="summary" key=$email}
For some reason, I always have better luck assigning any Smarty object variable to a regular variable before using it in another tag. Might be me, I dunno.
- In the Page “Send a File,” insert the code below:
{assign var=email value=$ccuser->username()}
{cms_module module="Uploads" category="Client Uploads" mode="upload" noauthor="1" key=$email}
Using the Key attribute for the Uploads module tag in both places inserts whatever file into the database with the key equal to the user’s username, and then allows me to pull it out by the same.
- Pretty much done; make it look pretty with some CSS and you should be all set.
Users can register, login, and upload files. They only see their files, and the administrator can log into the backend and manage them there. Mission accomplished.




