RAM-CMS is a simple content management system designed to be portable and easy to use. It includes the ease of management Wiki software offers, without the offbeat wiki markup.
RAM-CMS is targeted at those of us that long for a simple solution that is extremely flexible.
RAM-CMS is not a typical CMS system because we appeal to those that know HTML, but don't want to just use plain HTML because of the overhead of maintaining HTML pages. RAM-CMS acts as a combination template system and content organizer, with the added benefit of reduced bandwidth as a result.
A sample website is included to give you some ideas, as I find the best way learn something is by example, and indeed will be more accurate and understood than this documentation :)
The index.pl file is the key file that handles all requests - it contains everything to make this work.
The functions.pl file contains all the routines that do all the heavy lifting and hard work. (if you know some Perl, you might enjoy looking in here).
The config.pl file contains all the stuff that makes RAM-CMS your own, including:
The index.pl file is never called directly; it is assumed your server has the index.pl file name set as what Apache would call a "DocumentIndex" - the index.html file acts similarly. The reason for this it so index.pl can be renamed to index.cgi, index.bin, or index.exe - depending on how your web server is configured. If your web server does not act this way you will need to modify parts of the code. Many web servers with Perl installed do not require this, however. The other reason for this is that doing this allows you to easily migrate from, say, the Perl edition, to, say, the ASP edition. Note that if your server support a different "DocumentIndex" file name for Perl (like default.pl), then simply rename index.pl to whatever is configured to be the "DocumentIndex" for Perl scripts. If their is no DocumentIndex for Perl or CGI scripts, then you'll have to define one in .htaccess. If you can't do that, you'll need a wrapper script that redirects requests like ./?page=pagename to ./index.pl?page=pagename - these are very easy to write in almost any server side scripting language. Some sample redirectors may be included in later releases.
To link from one page to another the convention is to use the following basic format: <a href="./?page=page-name">Page Name</a> This makes all the pages portable should they be moved in the future, and also hides the underlying technology (in this case PHP) from user view - Tim Berners-Lee would be proud.
RAM-CMS is very fast - much faster than virtually all other CMS systems.
This code is very well written. It is clean and very easy to follow. Proof of this is the fact that not only is RAM-CMS available in several different programming languages, but the pages, and most of the config info, is interchangeable. In addition to that, each programming language RAM-CMS has been ported to has required only minimal changes - none of them involving code organization.
Q. What does RAM-CMS stand for? A. Well, originally the RAM part stood for the authors initials. Now, RAM-CMS in this context stands for "Really Amazing Modest Content Management System" Q. What did you use to develop RAM-CMS? A. I used gedit on Debian GNU/Linux. No RAD tools or fancy IDE's, just gedit and a local Apache2 setup with PHP 3.0.18 and PHP 4.0.10. That and a local php.net mirror from before the official php.net site took off the PHP-version specific info from the doc pages in early 2007. Update: In later versions, I also use "Notepad2" (google it for more info) on MS Windows. Today, I develop RAM-CMS with Notepad2 and gedit - it depends where I happen to be when I decide to do some work on this. Update: in early 2008 development platform changed from Apache2 to Apache1. The last version of RAM-CMS tested with PHP 3 and PHP 4 is 0.8. Now I develop on an Apache 1 server with mod_php5 5.2 and mod_perl 1.27 Compatibility with PHP 3 and PHP 4 persists, however, although we must warn that if you are using any of these legacy platforms that eventually RAM-CMS may stop working after you upgrade one day. (but why upgrade RAM-CMS if you won't even upgrade PHP!)
A bug tracker is now available for viewing bugs that have been fixed, but no bug reporting functionality is in the Bug Tracker (yet). Please post bug reports to the RAM Networks Forum at this time (under Bug Reports => RAM-CMS Bugs)
The Bug Tracker is available at: http://freeprogs.us.tt/?page=bugs The RAM Networks Forum is available at: http://ramnet.z27.net/forum
The author of this program can be contacted directly at: ram@robertmarder.info
All bug reports are welcome, just make sure that you tell me how to reproduce the bug, otherwise I cannot fix it. Provide what you were doing before the bug occured, and what exactly happened as a result. If you are good with PHP and have had good use of this program, consider writing your own bug fix and posting it to to the forum.
Copyright (c) 2007,2008 Robert Alex Marder. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the file FDL.TXT.