Implementing a template based website

Templates in a folder

We shall now take a quick look at an equivilant function for reading the template from a directory.

function gettemplate($templatename) {
    global $templatecache;
    #check if template has already been loaded
    if ($templatecache[$templatename]!="") {
        #return cached version
        $template = $templatecache[$templatename];
    } else {
        #retrieve from file
        $handle = fopen("./templates/".$name,"r");
        $template = fread($handle,filesize("./templates/".$name);
        #close the file
        fclose($handle);
        $template = str_replace("\"","\\\"",$template);
        #cache the contents
        $templatecache[$name] = $template;
    }
    return $template;
}

This function does exactly the same as the last, but instead loads the template from a /templates/ directory (with no file extension).

Now we have our function for reading the template, we can get about using one. First, however, insert the following 2 templates into the database table, or into 2 files, depending on the method you wish to use:

Template Name: ResultsPage
<html>
<head>
<title>$pagetitle</title>
</head>
<body>
<h1>$pagetitle</h1>
<p>Below are the results of the search for '$searchquery'</p>
<table border="0">
  <tr>
    <td><b>Title</b></td>
    <td><b>Hits</b></td>
  </tr>
$resultbits
</table>

</body>
</html>

Template Name: ResultsBit
  <tr>
    <td><b><a href="view.php?id=$data[id]">$data[title]</a></td>
    <td><b>$data[hits]</b></td>
  </tr>

You might also like...

Comments

About the author

James Crowley

James Crowley United Kingdom

James first started this website when learning Visual Basic back in 1999 whilst studying his GCSEs. The site grew steadily over the years while being run as a hobby - to a regular monthly audien...

Interested in writing for us? Find out more.

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.” - Donald Knuth