How to properly organize very small custom built CMS

Quick background info before actual question:
Building a website for a client who wants the ability to manage it on their own (content editing, products, gallery etc).

When the client asked for a CMS, I already developed a static version of the site which consists of few normal pages (a lot of text, few photos), and a very specific products listing page (sub products, product description etc).

So now it was either a choice of using something like Drupal and customizing it to death, or just building something quickly from scratch (using Kohana framework). Keep in mind that the deadline for the project is pretty tight. After some thought I chose 2nd approach, to build everything from scratch using Kohana.

My initial idea was to give the client an ability to add new pages right from the admin panel (cms after all ;-), and add/modify/delete text. The problem is that few pages have very specific layouts and have a lot of CSS under the hood. And this is where my problem starts.

  • Allow only simple pages to be edited via admin while complex one would be built by hand (static).
  • Allow everything to be edited via admin and insert directly xhtml/css from the admin to the more complex pages
  • some 3rd option???

Products area would be completely separated from the “pages” section and link in the navigation would be hard coded so that the client cannot accidentally delete it.

Any advice on this would be more than helpful.

Any advice on this would be more than helpful.

You should have gone with someone more robust and complete (ie: flexible) such as Drupal or Joomla. You will be fighting an uphill battle building a CMS on your own, unless you are an expert in several and have many valid reasons to rebuild the next Droomla CMS, your shooting yourself in the foot. :slight_smile:

Depending on how much experience as a programmer you have, and if you already have the static pages, just add an admin to it, where you can update every page, and a WYSIWYG widget to update those “complex” pages. (there the client can make his page as ugly as he wants)

That should take you way less time than added in Drupal or Joomla.

You usually only have a few things to do:

  • content (bla bla text and pictures, that belong to some categories, for links and such). All those can be done in one class, saved in one table.
  • product information (bla bla text and pictures, that belong to a category). Same class as before, just another name for it (get the idea?).
  • category (what css to be used on what page). usually just the defaults, your client will find a way to make it but ugly…
  • products (list of fields that can be searched for a product). Just a db table with some indexes you can search on, and a link to the “product information” page.
  • contact us page
  • upload images (so they can be used by your WYSIWYG)

All that shouldn’t take long to do (talking hours here not days, for the system development, and a few more ours to a day for testing/adding in content).

Hope that helps

Yeah, I decided to add WYSIWYG editor and let them do whatever afterwards.

Thanks guys.

I’ve been developing my own CMS over the last few years because I’ve never been satisfied with anything else out there. Drupal and Joomla are mind numbingly difficult to use. Wordpress is great but is awkward for non-blog sites. I’ve tried half a dozen other cms’s and they seem to be either too complex or not flexible enough.

Here are a few tips:

  1. Use a MVC architecture. Study wordpress, code igniter, etc… too see how this works
  2. The CMS should output as little html as possible. All output shout be semantic.
  3. Use a WYSIWYG editor in the admin. Its a huge plus for the client and can handle image/document management for you. I use the CKeditor and the CKfinder plugin.
  4. Keep as much layout markup out of the editable regions as possible.

You can configure the editor to only show the styles you want to be available your client.