README FOR RAM-CMS Lite Edition

About:

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.

Features:

Example Pages:

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.php file is the key file that handles all requests - it contains everything to make this work.

The functions.php file contains all the routines that do all the heavy lifting and hard work. (if you know some PHP, you might enjoy looking in here).

The config.php file contains all the stuff that makes RAM-CMS your own, including:

  • the default (index) page to show.
  • the site layout / template.
  • internal RAM-CMS settings.
  • The index.php file is never called directly; it is assumed your server has the index.php file name set as what Apache would call a "DocumentIndex" - the index.html file acts similarly. The reason for this it so index.php can be renamed to index.php3, index.phtml, or index.cgi - 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. Most web servers with PHP installed should not require this, however. The other reason for this is that I plan to make versions of this that support other server languages, like Perl or ASP, and have basic pages interchangable. Note that if your server support a different "DocumentIndex" file name for PHP (like default.php), then simply rename index.php to whatever is configured to be the "DocumentIndex" for PHP scripts.

    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.

    Speed of RAM-CMS:

    RAM-CMS is very fast - much faster than virtually all other CMS systems.

    Factors that keep RAM-CMS Fast:

  • No Regular Expressions (REGEX) are used to do anything. PHP slows down if it has to fire up it's REGEX engine. (if you enable the BBCode feature they are used for that)
  • Compact / Efficient CodeBase - no extra crap to make the code look "pretty". No memory-hogging objects are used, and functions are used only when it is practical. Other than that, everything is done in main(). Soon a version will be released with all the code comments removed (less work for the PHP parser == faster execution time). Structured programming at it's best
  • Output Buffering by design - output to the browser is sent once, not multiple times like in other programs. PHP performance inproves, as does the web server preformance. (less I/O)
  • Note: RAM-CMS is so fast that is actually practical to run PHP in CGI mode without anything special to speed it up on a low to medium traffic site. RAM-CMS is likewise also well suited to handle enterprise level performance also, and has been tested on IIS and Apache, in CGI mode, FastCGI mode (Apache testing only), and SAPI mode.
  • Well Written?

    This code is very well written. It is clean and very easy to follow. This code is so well written that it runs on all version of PHP - PHP 3, PHP 4, and PHP 5. From what i've read, it should also run on PHP 6 without modification also. In addition to that, RAM-CMS-Lite has already been ported to Perl with only a few changes required - none of them involving code organization.

    FAQ / Q & A

    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!)
    

    BUGS

    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.

    Documentation License

    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.