Have you ever been annoyed by template engines that force you to keep your templates in flat files? Ever feel like that Content Management System you just created isn't as dynamic as you originally thought? If you have ever felt like this, you may benefit from having your templates in a database.
Some argue that getting your templates from a database might slow down your site, as well as adding the overhead of having to open a database connection. However, if you're using a PHP/MySQL driven site, you probably already have a open database link, so a few extra queries won't slow down your small site much.
This tutorial will consist of two files, template.php and index.php. The first will have just have a few common functions (we could include these in index.php, but I prefer to separate function definitions from normal code). And the latter file, index.php, will connect to the database, and display the templates, amongst other things.
When the code is finished, I should be able to have a page like this on my site:
<?php
// Simple Templating Engine // using a database tutorial. // Written by Matt Eunson
// Define database variables - you have to change these $Server = "localhost"; $Username = "me"; $Pass = "****"; $Database = "template";
// Now connect to the database mysql_connect($Server, $Username, $Pass) or die("Couldn't connect to database."); mysql_selectdb($Database) or die("Couldn't select database: $Database");
// Include the template functions include_once "template.php";
// Start our page $Title = "Simple Template Engine using a Database"; pageHeader($Title);
// Some content here... echo "Welcome to my site.";
// And close the page pageFooter();
?>
Ok, now we know what we want, let's get this show on the road!