Creating Modular Based CMS? Where to start?

Hey All,
I have worked with PHP & MySQL for a while however have never built an actual CMS. I have modified scripts, created plugins for wordpress, etc… but as I said have never created an actual CMS from scratch.

Here at my office, we have a system for adding leads to a MySQL database and it spits reports back out, say a “Recruiter” has 300 leads, we have different categories we can put those leads in, for example:

[Do Not Call] [Call Back] [Sent Contracting] and so on. Our current system then spits out a report on percentages of each category.

The system is very old, running on PHP4 as of right now. I want to, as a side project build a new system with a current version of PHP, less depricated functions, etc… and am looking for some tips on where to start, framework to use, etc…?

Is there such thing as a Core, Modular based CMS? Where the core features are present and modules can be created on top of that? What I mean by modules is various “modules” that I can create on top of this framework to get the work done that I need. Such as creating the Add Lead section, View lead section, report sections, etc…

I’m just not familiar at ALL with how to go about creating this from scratch and figured there may be some help out there.

I’ve completed the redesign part and this may help you all to gather an understanding of what it is I am trying to create. The design can be seen at the following url: http://premier-planning.com/ar-system/new/

Overall, I’m just looking for a little direction or anything that may help me in my new found adventure.

Thanks for any and all responses!

Well modular frameworks/cms’s rely highly on a sophisticated event handling system. have you ever used Drupal? While maybe not the best example of amazing code the way in which it has been developed makes it very easy to hook into core and change behavior using custom modules.

There’s basically two routes you can go:

  1. Take an existing CMS and build off of it. Wordpress, Joomla, Drupal are the most popular ones. This is a dead end approach, meaning you’ll never learn to build a CMS, merely learn how to use the respective platform. Each CMS platform has a learning curve but a much quicker solution. Wordpress is closer to a straight forward CMS since it was originally designed as a blog software while Drupal/Joomla is more like a platform that lets you build a CMS within their own box of legos.

  2. Start from scratch and build your own, either using a custom base code (or framework) or an existing framework (there’s a dozen of them, google “PHP Framework”). Don’t expect anything amazing in your first iteration, or even your second. As long as you’re willing to jump in, over time you’ll learn what is good and bad and will have your own CMS tailored to your needs. This is a slow process (think years).

If your looking for reading material on creating a CMS, Kevin Yank’s book “PHP & MySQL Novice To Ninja” would probably make a good starting point. The 5th edition has only come out this month but your local library might have an older edition that you could borrow.

Another possible book to read is PHP 5 CMS Framework Development by Martin Brampton, I’ve got a copy of this myself. I don’t have it to hand atm so can’;t flick through it to see what level it is, if your new to coding PHP it might be aimed at too high a level.

For reference there is the PHP Manual (if you’re going to be doing the coding on a computer which doesn’t have internet access then I would recommend downloading the cHTML version of the manual as it’s easier to search for whatever it is your looking for).

For MySQL (if that’s the db server software you decided to use) it’s manuals are found at http://dev.mysql.com/doc/ (be sure to download the manual for the version of MySQL which you’re using.

Kevin Yank also runs a course over on Learnable about PHP & MySQL web development (@HAWK ; does that course have fixed dates for starting?)

Nope - you can start whenever you like. There is no ‘live’ aspect to it as such.