Building your own CMS

Building your own content management system (CMS) can be both a very tricky and a very rewarding experience. I’m in the process of building one of my own, and whilst it’s going fairly well so far, there’s still a lot of work to be done.

So how do you get started with building you own CMS?

Well, the first thing you have to do is decide exactly what you want your CMS to do. What sort of content are you going to have? Is it going to be a basic blogging script? News updates? A list of your favourite bands? Reviews of the latest films? Before you can get started on your CMS, you need to know what the “C” will be.

Once the “C” is sorted, you can start planning the “MS”. How will you store your content? Will it be in a database, or will it be in a plain ol’ text file? What sort of database will it be? What language are you strongest with? Whilst PHP / MySQL is a very common pairing to use, it is not the only option and you might like to think about that.

I find it normally helps to abandon the computer and get out a pen and paper for the next part. Make a list of everything that you need to think about when it comes to your CMS. How will you structure your database? What types of information will you be storing? The stronger you can build the back end of your CMS, the easier the front end will be.

Once you’ve decided on the structure for your database, you can set about creating the ‘install’ script which will create the tables in the database for you, and allow you to concentrate on the rest of your CMS. The biggest part will be writing all the code to put all the features you’ve decided you’re going to include into practice.

After you’ve got the back end ‘down’ for your CMS, you can start working on the front end, which is the part your visitors will see. How do you want to pull the information from the database and display it? Which information are you going to display where? How are you going to format that information? Again, this will take a large chucnk of the time.

Now that you have the back end and the front end sorted, you may think that you are done. You’re not.

Security!

The biggest weakness that many content management systems have is their security. What will you have in place to stop people hacking into your admin panel? What will you have in place to stop people deleting all the content from your database? No one knows absolutely everything there is to know about security, but there are hundreds upon hundreds of articles about it on the Internet. A bit of googling will help you identify more things you need to worry about, because, yes, you should definitely be worried.

Spam!

If your CMS has the facility for visitors to leave comments / fill in a feedback form etc., you’re going to need to worry about spam. What steps will you take to ensure it’s a human filling in a form, and not a spambot? Some spam worries come hand in hand with security worries. What’s to stop spambots using your forms to send unsolicited email to hundreds of people? Even if you deal with the security issues, spam can still be incredibly annoying! What are you going to do to stop yourself from logging into your admin panel and seeing dozens of spam comments?

Security and spam are big things to worry about, but don’t let them intimidate you too much. There are steps that can be taken to overcome the most common problems. Do not also be intimidated by the thought of building your own CMS. It can be done, and it has been done.

There are tutorials out there that will guide you through each step of a CMS and provide you with large sections of code to use. However, it’s much more rewarding and will give you a much better understanding if you do all your code yourself. Otherwise, you won’t actually be building your own CMS, you will be recreating someone else’s.

Building your own CMS is a massive task, and I’ve only skimmed the surface with this blog entry. It’s not going to be easy, but equally, it’s not going to be impossible. Be strong, do lots of research, and have fun!

Make a website for free #3

In the second part to this series I covered online generators. Lil suggested I cover Content Management Systems (CMS) in this next part, so here goes!

FanUpdate

This little gem of a blogging engine has been written from scratch and recently revamped by a lovely young lady by the name of Jenny. Using PHP and a mySQL database, Jenny gives you the ability to add posts to different categories, offer your visitors the ability to comment on your blog entries, an RSS feed (for comments and for entries), an optional comment captcha to help prevent spam, and a basic WYSIWYG (What You See Is What You Get) editor.

Wordpress

Wordpress is what I like to call the “Grand-Daddy” of content management systems. Not only does it let you blog, it also lets you add static pages to your site which is where the real “content management” comes in. FanUpdate is more of a “blogging engine” as it controls only your blog entries. Wordpress goes the full hog and gives you everything you could need! It’s free and comes with a massive long list of plugins you can use to give your site even more functionality. It really is the “bees knees”.

I used FanUpdate for over six months before making the switch to Wordpress. FanUpdate is a wonderful script and I would recommend it to everyone who likes to have total control over their static pages and layout, as it is so easy to integrate to your current design.

I switched to Wordpress because I liked how easy it made things to update my site and add new pages. A few code snippets in the theme, a few code snippets there and I had complete lists and links to my sub-pages.

Making your existing layout fit around Wordpress, however, is easier said than done! Wordpress “themes” are very dynamic in that once your layout is made up of various “template tags” which add the content dynamically from the mySQL database everything is stored in. Fascinating stuff really, if you’re so inclined as to be interested in the back-end workings of your site.

There are of course hundreds and hundreds of free Content Management Systems out there - which one do you use?

·