64K RAM SYSTEM 38911 BYTES OF STUFF I MADE

Bespoke PHP CMS

When i was doing freelance web development i would get the same requests 90% of the time, to speed this up i decided to write a bespoke CMS system that would allow me to easily write common plugins that would manage features like blog categories and entries, image galleries, user management or contact forms.

The admin dashboard showing which plugins are loaded on the system.
The admin dashboard showing which plugins are loaded on the system.

Writing it this way would also allow me to spend less time tinkering with these on a per client bases and spend more time on the bespoke features they required, and easily implement new one off plugins that would slot into place.

I started getting more web designer clients asking me to provide the backend development for their own clients, because of this i added the ability to set variables for branding, this would allow my clients to handle the tech support and forward any code specific issues instead of having them email me directly with neither of us knowing the other.

Example of the new blog post form.
Example of the new blog post form.

The admin forms would be generated from a set of predefined inputs that the plugin writer had full control of, and if none of them were fit for purpose they could just write a new control to import.

Each page could have X amount of panels to hold forms, each panel had rows and cols to hold the controls in using bootstraps grid system. this made designing forms for plugins a lot easier and kept everything uniform, and allowed for easy scalable changes if problems or issues would appear.

Having it work this way made it easier to implement the permissions system in, admins could give users specific permissions to different sections, even restricting it to just their own posts and content if required.

The permissions system allowing an admin to select very specific options.
The permissions system allowing an admin to select very specific options.

The CMS also had extensive logging and a messaging/notification system. User login attempts were logged along with scheduled tasks so that an admin could check for malicious behaviour.

PHP Errors, 404's and contact form messages were also logged in the user message centre, this gave some interesting insight into what was going on with the site, as well as provide another place to see contact form emails.

Tech Used
  • MySQL
  • TWIG
  • HTML
  • SASS
  • jQuery
  • Bootstrap
  • Plugin System
Info

Date Written:
06/2014