logo

Want a Perfect CMS? Build it Yourself!

Every now and then I get asked to create a website for a friend. Being the helpful type I always like to help out - twice already this year! Now that I've got children and less time to spare than ever I need to make the whole process involve me less. I need them to manage their own content.

In the past I've created the sites using PHP and hosted them on my LAMP server, but they've mainly contained static HTML content. How 1998 is that!? For the most part this works well as the only type of site I get asked to do are brochure sites. They rarely change. That said, they do change every now and then and I want to avoid being involved in their day-to-day upkeep.

So, that's why I Googled "PHP CMS" recently.

What I found surprised me - either I didn't look hard enough or there just isn't a basic CMS out there. They all seemed like over-kill to me. My starting point was OpenSourceCMS.com, where you can see a rated list of CMS packages along with links to demos. It wasn't longed before I picked out the first to try - Drupal. It wasn't long before I gave up on it either. Having spent a good few hours getting it installed I then fell at the first hurdle - I couldn't for the life of me work out how to theme a site with my own HTML/CSS.

Next I took a look at alternatives such as Concrete. Again I couldn't work out how you did anything other than change the basic appearance of your choice of a pre-defined page template.

Then I took a look at MovableType, which I know from past experience allows you complete control of the HTML/CSS, but soon realised I'd have to pay to use that for anything other than a personal blog.

Creating My Own

I soon realised that the time I was spending looking for a way to save time was in fact wasting time. That time would be much better spent knocking my own CMS together. Within hours of making this decision I had it up and running from scratch.

All I needed was a single-tabled database and a couple of php files. The table is called Pages and has four columns:

Column Description
Title Text which appears at the top of the page
Name Used as unique the key in URL
Body Main content in HTML format
Menu Name of the page that this page sits under. If blank then it's used as a main tab in the nav bar. If it has a parent then it appears in the dropdown navigation under that page's tab.

That's all it needed. I then created a file called page.php which accepted the Name of the page to display as a parameter and then displayed its content.

Through the correct use of the Menu field it's a simple task to build the whole site navigation. So simple it hurts.

Obviously there's a bit more to it than that, but you get the idea. It's all I needed and I now have the basis for any future brochure site I'm asked to do as a favour for a mate. Each site will no doubt require an extra table here and there - a "Guestbook" for holiday lets for example, but I have the starting point now.

What About Notes?

Now, I know what you're thinking, why didn't I do it Notes. Various reasons. None of them being that I can't. Obviously I could have done, but would it really have been the best use of Domino?! We all know Notes is great at what it does, but it would be like driving to the supermarket in a Ferrari. Kind of.

Another reason not to is portability. If for any reason I want to hand responsibility for the site over to them or another web developer/host then I can easily do that with a ZIp of the PHP files and a SQL data/schema export. If I gave them an NSF they'd be a bit lost.

Then there's hosting. While I won't hear a bad word said about the Prominic guys I'm sure they'd agree the process of hosting a Domino website isn't as simple or as widely available as LAMP hosting. Although, on the flip side, I don't have a good word to say about Fasthosts, the server I have hosted with them allows me to have a new domain registered and a site live inside of an hour.

Using Notes for a simple brochure site would be daft.

Comments

  1. Seing you want something for a LAMP server, why not try Wordpress? A snap to download, you can use it as either a small CMS or a Weblog, you can skin it with CSS, your "clients" can download/install themes galore (on their own -- without your intervention). Wordpress has a tonne of features and supports a vast variety of clients, plugins, etc.

  2. Jake,

    Quite agree - just going to restart my blog and I was in too minds whether to go back to a Domino template and decided in the end to go with a wordpress solution. I have a lifetime PHP hosting package so why not use it.

    A very good and flexible CMS solution is http://www.expressionengine.com but again for commercial installations there is a charge.

  3. Wow! You have a separate car just to go to the supermarket? I agree: the world would be a better place if there were more cheap offerings for Domino hosting. Or any for that matter. I don't like excellent Notes developers having to switch to other environments for things that could be done very easily in Notes/Domino as well...

    • avatar
    • Jake Howlett
    • Mon 9 Feb 2009 06:08 AM

    Thanks for those links chaps. Depending on how I get on with my own CMS I might end up looking in to them more.

    Actually Michel we're a one-car-family. In fact on our street there are 20 houses and we're one of the 4 which have one or no car. All the other houses have 2 cars if not more (plus vans). Having one car seems to put you in the minority these days.

    Our road was built before cars existed (in any number). We have documents pertaining to the house which describe the road outside as being "two horse carriages wide". I don't think they ever expected this little cul-de-sac to have twice as many cars as houses. Needless to say there's no room. Luckily we're one of the 2 houses that has off-road parking. For the other it's a nightmare to park on the road and the cause of a lot of animosity between houses. There's one family where their petrol-head son still lives with them and has two cars and a van all to himself. He's not liked so much.

    Sorry, don't know where that came from. It's a topic I could discuss for hours and us men of the road often do when we convene in the local pub of a Friday night. I normally just wind them up by saying "Doesn't bother me, we've got a drive". They love that. Don't get me started on people who block the pavement by parking on them though!

  4. About a year from now I was collecting and testing several CMS (PHP based). Drupal is very flexible. It shoud be considered more as a framework, rather simple CMS. From non commercial (OpenSource), this would be the best from user/permissions management part. Another one is Plone and Python based, but community support is oriented towards highclass python programmers, as well taking in mind different server side setups. For more primitive sites, I usually use Joomla. Although I do not prefer table based design, which is every where in Joomla. Recently my colleague pointed me to very simple CMS, claiming it is easy to template and change. It is called CMS Made Simple. You can test it on your mentioned site opensourcecms.com. Actualy 2 years ago I was used to produce Lotus Domino based sites, but stopped doing that due to your mentioned reasons, as well as expenses which had to be carried to keep licenced Domino server for customers. There were lack of CMS type templates too, and everything should be written from zero, which increased customer expenses.

    • avatar
    • Sherwin
    • Mon 9 Feb 2009 07:03 AM

    Did you by any chance looked at Joomla?

    • avatar
    • Jake Howlett
    • Mon 9 Feb 2009 08:19 AM

    Hi Sherwin. No I didn't. I'll add it to the list of those to look at should what I've developed not live up to expectations though. Thanks.

  5. Here is a nice article that I found recently:

    How to choose the right CMS

    http://www.webdesignerdepot.com/2009/01/how-to-choose-the-right-cms/

    Please make also sure that you read this recently published article by FERDY CHRISTANT:

    http://www.ferdychristant.com/blog//articles/DOMM-7NVPKA

    A scientific approach to web design

    • avatar
    • Fabrice P.
    • Mon 9 Feb 2009 09:35 AM

    I also have tried a lot of CMS, and I like CMS Made Simple and ExpressionEngine.

    They are powerfull and easy (in one afternoon, you can do very well with them).

  6. Here is a Notes/Domino based CMS that is worth looking into:

    OpenWebCMS

    Can be downloaded from here:

    http://www.youatnotes.de/download

    and is documented in a Wiki here:

    http://www.youatnotes.de/youatnotes/development/cms/wiki.nsf

    • avatar
    • Michael
    • Mon 9 Feb 2009 10:43 AM

    Love your cars on the road story. It reminds me of my own neighbourhood only the people in mine all have driveways but park on the road anyway. Nightmare for getting our streets plowed in the winter!

  7. It always amazes me that there isn't a Domino CMS tool to compete with the PHP stuff. Domino seems to be an ideal platform for this. That said, here's a good article comparing the top Opensource CMS offerings;

    http://www.infoworld.com/article/07/10/08/41TC-open-source-cms_1.html

  8. I've had really good luck with Joomla. It is php-based and can easily be installed on any lamp host. You are able to use your own HTML and CSS templates and there is even a web-form for editing templates without FTP. There are also masses of professional templates available which I've used with great success in the past.

  9. As with many other popular CMS systems. If you use Joomla I recommend keeping an eye on security alerts. Security problems with popular software like PHPBB / Wordpress or Joomla often cause massive automated bot attacks that will hack your site.

    And for Movable Type. There is a GPL V2 version available at http://www.movabletype.org/. I think I read that Six Apart changed their business model some time ago but I could be wrong.

    • avatar
    • Rishi
    • Mon 9 Feb 2009 09:19 PM

    @Jake still we can develop good CMS in Lotus Notes. Here ( http://www.dekatel.nl/) you can see one of the CMS we have developed fully in Notes which can be customizable. As you mentioned in the blog home page is designed with section, like menu,left, right , bottom . For all the section you have Notes interface to feed the data . Once you save the document, it generates HTML/CSS. Along with that you have option to feed your own styles using Notes interface.

    • avatar
    • Erwin
    • Tue 10 Feb 2009 01:02 AM

    I'd love to drive to the supermarket in a Ferrari, or in a Lotus.

  10. While I love Drupal, I agree that themeing in Drupal is hard.

    For something really simple, Google Sites looks promising:

    http://www.google.com/sites/help/intl/en/overview.html

    There is a short demo video inlcuded. Have a look :-)

    • avatar
    • max
    • Tue 10 Feb 2009 04:06 AM

    I've been a Lotus developer for several years.

    My company provided high level, for the early 2k years.., CMS using Domino for years and still uses it a lot. So, imho, it was not a chimera to write content management oriented applications with lotus. and I wonder that ibm didn't do in all these years.

    Actually, I think that the domino framework is more application oriented than cm-oriented. I also think that other cms platforms can do the job better.

    imho, lotus cannot scale by an applicative point of view.

    a tipical example: get docs from different views from different documents. not doable easily and with basic tools.

    and I don't wanna say nothing about versioning my code :)

    My choise for a cms, actually, is plone.

  11. I've noticed the same sorts of problems with most FOSS PHP applications: the back end may be solid as a rock (often over-engineered/abstracted to the point that it becomes nearly impossible to find the bits wot do the magic), but the HTML is, well, painful. I mean painful in the "Turn on the HTTP task and let Domino do what it do to a Notes app" sense of the word. It's often easier to build an app from scratch than to make the HTML make sense. Forget about usability and accessibility, let alone semantic purity -- it just doesn't seem to matter to the FOSS crowd.

    Frankly, I think a lot of the stuff happens the same way Notes apps happen. Somebody builds a quick prototype to answer a need, and before you know it your whole enterprise is running on the "good enough" prototype. Oh, sure, bugs get fixed along the way and the underlying code base gets more solid, but nobody is allowed to really do anything about the familiar UI, change the tables, etc., etc.. It doesn't matter that there are 100,000 code contributors -- if none of them are going to fix what's really wrong with it, the app is still going to resemble one of the longer, thinner pasta varieties.

    • avatar
    • Alastair Grant
    • Tue 10 Feb 2009 11:29 AM

    Was only thinking the same thing... am re-designing some of my sites in PHP even though have a functional Notes>Web self built CMS. The Wordpress/Drupal packages seem over complicated and open to security flaws which automated agents will try and test for.

    Made this post on IdeaJam last week..

    "Domino is poorly represented in terms of webserver market share. So this issue needs addressing...

    When you can host a whole site for less than $40 for a year, including domain, 3gb space, unlimited transfer, ASP, PHP, MySQL. You start to question why would you look at a domino server, when a 'free solution' can do most of what you need if you have the LAMP skillset.

    I think we need to see better (cheaper) domino hosting package options... "

    http://ideajam.net/ideajam/p/ij.nsf/0/08C6B75D45347CCC8625754F00629CDD?OpenDocument

    Domino is a great product for the web, just a pity IBM don't enable the community to demonstrate that easily.

  12. My vote goes to Wordpress. Simple and effective with great admin interface.

    On the other side, IBM should make an advanced CMS template and ship it with Domino just like they did with Steve Castledine's blog template.

    • avatar
    • ianb
    • Tue 10 Feb 2009 03:58 PM

    why not get them started with office live? http://smallbusiness.officelive.com/Home perfect 'brochure site' with the added bonus of a domain name and email thrown in? Not quite as easily tailored, and retains a certain 'microsoftness' across the sites, but good for a starter that can grow if they want?

    • avatar
    • Brad
    • Thu 12 Feb 2009 02:20 PM

    Hi Jake, I've been in the same position many times before with friends wanting a website, I could easily do them one in Notes but don't want to mess about with private Notes hosting.

    I've done a fair bit of research and trial and error with various products and this product is by far the easiest and best free opensource CMS solution I've come accross:

    http://www.silverstripe.org/

    The look and feel is totally customisable, and I can just hand over the content management with little involvement from me!

    BTW - Cheers for the great site, I'm always looking in here for new ideas in the Notes and Web space. Email me if you want any details/help on Silverstripe Dev and Implementation.

  13. http://gojko.net/2008/12/05/photo-of-the-day-it-looks-like-youre-writing-a-framework/

    I've recently been through the same exercise.

    I liked CMS Made Simple, however if you want something even smaller and simpler (400k download, 5 min setup, easy to style/customise, uses either MySql or SqlLite) then check out Frog CMS: http://www.madebyfrog.com/

    • avatar
    • Larsson
    • Mon 16 Feb 2009 02:51 PM

    I've messed around with a dotnet CMS called Umbraco and it's really easy to adopt and a great way if you want to learn .NET and it's environment.

  14. As web developers, we all get asked to create web sites on a pro bono basis. Like you, I wanted to create sites that were totally user managed, including ID approval and creation. I ended up creating PDQ Portal;

    http://www.pdqportal.com

    It uses Jack Slocum's ExtJS as a framework and can be up and running in 10 minutes without any configuration.

    Although it starts out as a CMS, it has a form designer, report generator, and number of management tools, all of which are used from the web. The entire design is even created and maintained from the browser. The description of your menu field fits the model I ended up using. I have used this system to create a number of web applications for clients.

    FEATURES: Resizes uploaded image files automatically, creates DHTML popup images automatically, fckEditor, updates the navigation bar as articles and sections are added, and is bundled with applications a number of applications.

    If you or any other Notes developers are interested in using it. I can give you an unrestricted NFR copy that you can use for your own personal or commercial purposes (just download it and send me an email). Keep up the great work Jake!

  15. Hi there,

    Just thought I'd see if any of you'd like to check out a system I made up, with demos available here:

    http://www.dewdropwebs.com/fetherware/ (non-database)

    http://dewdropwebs.com/fetherwareDB/ (uses database)

    It's ultra simple. The admin area uses TinyMCE for entering documents, and the menu system is only two-deep, but I've met a lot of people who really can't deal with much more than that. Themes are very simple as well. The only thing I haven't added yet is a way to backup the data.

    I think it's all a matter of what people are able to handle on their own. Aside from making themes, there isn't much they have to think about.

  16. imho, you should never, ever, build yourself what is freely available for a paying customer. the world is littered with hideous properiatary or custom-built CMS that become a legacy albatross as so much content has been poured into them that migration becomes all but an impossibility.

    most of the reasons I hear on why it should be built from scratch are to cope with small deviations from an existing tools featureset. the kind of issues that if presented to a customer in terms of cost / benefit are unlikely to be justifiable, really and honestly speaking.

    in the java world if you get a JCR compliant CMS, at least you code is calling well defined and understood interfaces assisting you to migrate to another vendor / FOSS solution if necessary.

    in addition, roll your own solutions are never going to approach the kind of elegance and featureset of a project with hundreds of dedicated developers, focussing on that one task.

    no offence, but the world does not need more malformed CMS experiments. i've had to maintain way too much of those to go along with that.

    marc

Your Comments

Name:
E-mail:
(optional)
Website:
(optional)
Comment:


About This Page

Written by Jake Howlett on Mon 9 Feb 2009

Share This Page

# ( ) '

Comments

The most recent comments added:

Skip to the comments or add your own.

You can subscribe to an individual RSS feed of comments on this entry.

Let's Get Social


About This Website

CodeStore is all about web development. Concentrating on Lotus Domino, ASP.NET, Flex, SharePoint and all things internet.

Your host is Jake Howlett who runs his own web development company called Rockall Design and is always on the lookout for new and interesting work to do.

You can find me on Twitter and on Linked In.

Read more about this site »

More Content