Tools you must have
Here we provide some hints to tools you might use. If you already have a set of tools you like you can omit the recommendations.
A Web server with PHP and MySQL.
This is probably something you already have. If you do not have one and have no idea where to get one and/or how to install one this tutorial is not for you. Please go back to the basics. As for versions we assume that the PHP version number is at least 5.x. now that version 4.x is resting in peace. This project has been written using Apache2 plus PHP 5.3 as the platform.
For those searching for a lightweight alternative to Apache2 we will include instructions for using SkoopCMS in a speedy combination of nginx + PHP-FPM. More on that later. This is not mandatory, of course, it is just an alternative to Apache.
If you are running a VPS or a dedicated server we feel no shame in advertising the administration tool we have been using for years: DirectAdmin. It is a lightweight, robust product that does most of what one normally needs when administering websites, users, databases, emails, cron jobs etc. It has a wonderful, friendly community as well. This is not mandatory but will make your life easier!A decent editor
You should have a good editor, preferably one with UTF-8 character set support. ANSI will do if you are only producing text for the English-speaking audience. The nice thing about UTF-8 (apart from good internationalising support) is that you can use the repository of special characters like arrows or various special symbols. You might find them handy in many web applications.The Smarty Templating Engine
- Smarty is mature, fast and well supported
- Its memory footprint is very small - even compared with frameworks advertised as 'lightweight'
- The templates are easy to read and write even for designers
- The templates have built-in control flow logic (loops, "if-else" etc.) and an inheritance mechanism
- There are lots of ready-made functions and plugins to choose from
- Unlike in most template engines the templates are not interpreted – they are compiled to PHP
- Compilation takes place automatically when a source template is changed and the result can be bytecode-cached
- You can further tune performance further by caching the HTML results in a semi-static file
- The engine is very, very stable and safe to use
- The engine has a very nice plug-in API for our extensions
- It is absolutely free
- It is being actively developed, being at version 3.x at the time of writing this
Alternative Template Engine(s)
jQuery

The jQuery Javascript library has become the Swiss army knife of DHTML and Ajax. It makes writing cross-browser functionality quicker, safer and more simple. Enough said? Well, maybe the following line will serve as an example. It loads a random news ingress to your site news ticker that resides in a container called "ticker" (provided you have the back-end code ready):
$('#ticker').load('news/randomIngress.php');
I have no courage to even think of writing a more concise version :)
Some notes about the code you see
To keep the code more digestible the data fed into Smarty objects is kept simple. There are few true objects; we mostly use just scalar values and arrays. A lot more can be achieved if more intelligent objects are used. Once again - it is up to you to take the next step.
As for the conventions please have a look at the coding style page!
The validity of this site may vary while it is being
developed.
Feel free to test it, though :)
