I don't have it all done yet, because I like to get suggestions and criticism as I work so that I don't have to redo a bunch of code and can make changes in my design as I develop it instead.

I'm working on a CMS (Content Management System) that will allow webmasters to do all of the following things:
- Simply drag/drop a file/folder into their server and it will configure itself
- Create dynamic and portable templates using dynamic HTMLObjects
- Create HTMLObjects which range from basic things like forms, links, paragraphs, all the way to more complex objets such as user profiles and login/account objects.
- Specify page routing (for instance, make /forum/threads/1 access the page /forumthread.php?id=1) which can be done for static items such as /help routing to /help.php and more complex routing like the forum link example above where dynamic elements are included in the URL
- Specify color schemes in a GUI like way by letting them click on objects on the template and a color box or something similar will popup.
- Manage server files via HTTP, FTP, SFTP, etc.
- Easily manage MySQL database and automatically backup the data to XML files which will be seamlessly substituted if the DB is unavailable at the time of a request (when any new data is added to the DB it is also added to the XML so the "backup" is actually happening in real-time)
- Create general links that may either use Javascript or raw HTTP addresses depending on the user's browser

Here is some sample syntax as well:

Let's say you have a nice little jQuery login system built, but what if the user doesn't have JS enabled? Well, if you specify a generic link object like this, the template will take it, retrieve it's corresponding JS/HTTP attributes, figure out if the user has JS enabled, and then implement the proper link.

HTML Code:
<a href=":login">Login to my account</a>
The CMS will read this, find the dynamic link labeled "login", and retrieve the JS/HTTP addresses.

So, if the user did not have JS enabled, the link would get parsed and this is the HTML would result:
HTML Code:
<a href="/login.php">Login to my account</a>
However, if JS was enabled, it would get parsed and this HTML would be returned instead:
HTML Code:
<a href="javascript:showLogin();">Login to my account</a>
HTMLObjects are easy to manage high-level objects used to construct your web page. For instance, say you have two templates. One template is a low-tech/clean theme, and the other is a image and data rich display. If you had a blog post on each of these templates, the HTML to create a "blog post" object would probably be different in each case, although the data displayed would be the same.

For instance, in a low-tech theme, the HTML for a blog post might look like this:
HTML Code:
<div class="blogPost">
<h1>TITLE HERE</h1>
<p>POST HERE</p>
<p>Posted at: DATE/TIME HERE</p>
However, a more graphical or intricate design would likely have more markup, like this:
HTML Code:
<div class="blogPostHeader">
<div class="blogTitle">TITLE HERE</div>
<div class="blogDate">DATE/TIME HERE</div>
<div class="blogBody"><p>POST HERE</p></div>
Of course this is just an example, but of course you can imagine that different templates use different HTML (in addition to different CSS) to create the same high-level objects. However, with this CMS, you can simple do this in your data files:


    title: My First Blog Post!
    date: 859283958293823 (fake timestamp)
    post: blah blah blah blah

This would tell the CMS that you are wanting to show a blog post, and depending on which template you had active at the time, it would retrieve that template's definition of a "blog post" and substitute the given attributes with their supplied values.

In addition, I'm also working on a GUI that allows users to build actual templates. This is still in development and has taken the back burner since it will be an add-on type thing to the actual CMS.

Summary (It's long, I know, sorry!)
These are just a few explanations of what the CMS will contain, so as you can see, I have a pretty nice to-do list in front of me right now. However, I do write extremely neat and tidy code, and I tend to comment my butt off just to make sure that what's going on is crystal clear, so if you read through my code it should be very easy to follow/understand even if it's not a very good design or implementation of an idea.

If anyone out there would be willing to assist me in this endeavor I would greatly appreciate and will definitely credit you once it's completed if you wish (assuming it's not too crappy for someone to even want their name associated with it ). Seriously though, I think this would really help my development because outside perspectives are always great because I tend to overlook even really obvious things because I've been staring at the same code for so long it just all looks the same. I'm sure you all know how that feels.

I can contact through email, facebook, texting message, or even on here. I really don't mind where we have to send ideas back and forth as long as I have someone who is HONEST and not afraid to hurt my feelings when they think I'm doing something wrong or inefficiently.

This wouldn't be a one time thing, though. I wish I had money to pay someone to critique me, but sadly I don't, this would be free/paid-in-good-vibes kind of deed. As I develop new things, I'd just like to get a second opinion on them before I get too far into implementation, so if anyone out there is a good critic, I need your help!

I'm working on putting what I have on my web-accessible server so that I can post links to examples in this thread, but I have to wait for my server admin (buddy of mine) to get back to the office to boot the server up (I haven't paid in way too long ) but in the mean time I can easily email source files or something like that to someone who is interested in helping out.

Of course this is done in PHP (although I'm working on getting a CGI/Python version up as well) so I'm not worried about anything getting stolen because it's all going to be open source and free anyway. I just want to make sure that I'm not putting out a total piece of junk that's more trouble than it's worth so I'd rather post it on this forum where people will just laugh at my stupid ideas instead of getting mad at them because they're trying to get them to work.

Thanks in advance to anyone willing to help. I can provide some server space or something if you want that in exchange, or an email address at my super short domain (mdl.fm) or something else like that if you want something for your time, but no money to give unfortunately, sorry.

Take care guys
- Dan