Content Management System


Since its inception in 1998, the cexx.org Web site has grown from just a few pages to hundreds. As you might guess, between school, Real Life and a Real Job, I don't have a lot of time to maintain it. For this reason, I wish to implement a system whereby trusted parties around the world can add and update information on the site.
 
Current system:
All the HTML and image files of the Web site are stored on my (Bill, the cexx.org webmaster)'s hard drive, and maintained by myself, the old-fashioned way. To create a new file I fire up my HTML editor (loading a template page if I wish) and start typing, adding in all the text, links, etc.  For people to be able to access this page, there needs to be a link to it somewhere on the site. So when the new page is ready, I open up the file(s) where I want to add this link, and add it in by hand.

Whenever a page is created or modified, I copy it into an 'Upload Now' directory before I forget. (This way, if there are a lot of files that need to be created/updated, there is no need to keep logging into FTP, etc...all are uploaded at one time.)
 
When someone writes in to report new information, dead links, outdated info, etc. that needs to be updated...you guessed it--out come the HTML editor and FTP client.

As the site has now grown so large, trying to maintain all of it myself is becoming very time-consuming. And as the amount of my free time that is available to consume remains low (classes, work, Real Life), many parts of the site are becoming stale, and e-mails go unanswered until weeks after they were sent.
 

What I Want:
The Web site is organized into categories;  the main page will list each category (and maybe subcategories) -- sort of like OpenDirectory, Yahoo, etc. Trusted users are appointed as Editors for categories in their field of expertise. Changes to the Web site are done by the Editors using a custom "Content Management System" (CMS).

These Editors have full collaborative control of the category(s) they are appointed to -- they can create new sub-categories underneath it, add or edit articles in that category, and appoint additional Editors for the articles and sub-categories. Sub-category Editors can in turn write or edit articles in the sub-category, add sub-sub-categories, appoint more Editors, etc.
 
All Editors would have the ability to collaborate with one another using a private message board and messaging system. If an Editor finds at a later time that he/she is unable or unwilling to continue maintaining a section, they can "will" their files to another Editor (or place them in a "whoever wants it" pool) and release their Editor privileges on some or all of the files/areas he/she holds privileges to.
 
The CMS itself should have a number of features designed to make it faster and easier to maintain the Web site. Those with editorial priveleges can create--in addition to categories and articles--page templates and Objects. Objects are shareable, reusable snippets containing text, HTML, other Objects, etc., that can be easily embedded into an article. For example, say there is a category entitled "Online privacy", containing a number of pages on cookies, deleting Cache/History, anonymizing proxies, etc. Suppose an Editor wants a list of privacy software links to appear on every page--or, suppose multiple Editors want to share this list on their pages without having to maintain that list seperately. Someone can just create this list as an Object, which can then be easily embedded in all the pages. This way, only one person (the Object's maintainer) has to update anything--the contents are automatically updated everywhere this Object appears. Objects that one creates can be specified as "Personal" (only the author can use it), "Sectional" (anyone in the specified category(s) can use it), "Global" (anyone in any category can use it), or "Custom" (the creator grants privileges to people individually).

Templates allow Editors to maintain a consistent look-n-feel across a category. The Template can define the colours/fonts/layout of the page, and can contain Objects that the Editor wants to appear on every page. Templates allow the layout and content to remain seperate, so that one can be altered without affecting the other. For example, the Editor can easily change the look of all the articles in his/her category by changing its Template, without affecting the actual contents of any of those pages.
 
Collaboration features built into the system will allow Editors to keep synchronized. This can use ordinary message boards, or even a messaging system built into the CMS--users get and send messages, which appear when they log in.
 
Features should include:

 
How To Get There:
If I have to do it from scratch, I probably won't. At least not anytime before my hair all falls out :) Probably something like this exists, but I haven't found any that meet my needs. If anyone knows one that might, or something "kinda like it" I can freely rip code from, let me know. I've rejected a handful of CMSes for the following reasons: Commentary
Helpful suggestions or experiences are welcome as well.