Dave, > This has been some great info. I appreciate it. Can someone explain what > the purpose of a template engine is and possibly draw up a simple diagram > of how one might work as it relates to DB-related projects? Obviously the main purpose of a template engine is to seperate code from HTML (or WML or whatever you are using for the UI). Personally, the most pressing reason I have used template engines has been to make it easy for web designers who can just take my templates (which contain only HTML) and can edit them without having to worry about seeing PHP code. A template engine essentially takes template files (files with HTML in them), replaces tags in them and then displays them. A usage of a very simple template engine works like this: a) you have a template file called users.tpl (containing the HTML for a user information screen) b) you have two tags in user.tpl, lets say %%user_name%% and %%password%% c) you have code in, lets say user.php, that looks like this: $tpl = new CoolTemplateEngine(); $tpl->open("users.tpl"); $tpl->replace("user_name", "Bob Jones"); $tpl->replace("password", "walk3r"); $tpl->display(); Essentially that code opens the template engine, replaces tags with meaningful values and then displays it. Obviously most template engine uses are more complicated that this.. almost all will contain some sort of "block" functionality and the ability to loop and possibly have conditional statements. From what I hear SMARTY pretty much has a mini scripting language embedded into it! Essentially all template engines do these steps (though in slightly different ways): (1) open a template (2) replace tokens (aka tags) in the template with meaningful data (3) display the template with the replaced tokens Hope that helps... -- Mark Nenadov, Freelance Software Developer web: http://www.freelance-developer.com e-mail: mark@freelance-developer.com -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php