Members

Technology Zones

Articles

Hosted By

MaximumASP

Info

Rated
Read 55,113 times

Contents

Downloads

Related Categories

Implementing a template based website - Templates in a folder

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>

James first started writing tutorials on Visual Basic in 1999 whilst starting this website (then known as VB Web). Since then, the site has grown rapidly, and James has written numerous tutorials, articles and reviews on VB, PHP, ASP and C#. In October 2003, James formed the company Developer Fusion Ltd, which owns this website, and also offers various development services. In his spare time, he's a 3rd year undergraduate studying Computer Science in the UK. He's also a Visual Basic MVP.

Comments

  • using include with a php marked-up htm template

    Posted by aaron123nz on 02 Jun 2005

    I have been trying to use php's inlude to include a template file which has been marked up with some php variables. However when using include() the php parsing drops out. This code keeps the parsin...

  • Code Errors

    Posted by jaam on 25 Feb 2004

    This sample is great BUT have a cuople of errors.
    The file test.php is missing "#include template.php";.
    The file template.php presents a variable $name that must be repalced with $templatename.
    If...

  • Posted by James Crowley on 22 Feb 2004

    The article was written before PHP had made this a requirement - I'll try and get the article updated to reflect these changes. :)

  • Posted by James Crowley on 22 Feb 2004

    The article demonstrates two methods - one that uses a MySQL database to store the templates, and one that just uses a folder on the website.

  • Don't understand

    Posted by johnlcox on 26 Nov 2003

    I'm having a really hard time understanding how this works and I am not able to test it since I don't have a mysql server setup on my computer. Does anyone have an example they could show me that doe...