Template-Based Web Development With patTemplate (part 1) - Slice And Dice (
Page 4 of 8 )
It's also
possible to split a single page into smaller, modular templates, and link these
templates together to create new and interesting shapes and patters. Take a look
at how this might be accomplished:
<!-- main page -->
<patTemplate:tmpl name="main">
<patTemplate:link src="header" />
<patTemplate:link src="body" />
<patTemplate:link src="footer" />
</patTemplate:tmpl>
<!-- page header -->
<patTemplate:tmpl name="header">
<html>
<head>
<basefont face="Arial">
</head>
<body bgcolor="navy" text="white" link="white" vlink="white"
alink="white">
</patTemplate:tmpl>
<!-- page body -->
<patTemplate:tmpl name="body">
<center>
Feelin' blue? How about a little <a
href="http://www.melonfire.com/community/columns/boombox/">music</a>?
</center>
</patTemplate:tmpl>
<!-- page footer -->
<patTemplate:tmpl name="footer">
<p> <p align="right">
<font size="-2">{COPYRIGHT}</font>
</body>
</html>
</patTemplate:tmpl>
In this case, I have three different templates, one each for
the page header, body and footer. I also have a fourth template, this one merely
containing links to the remaining three templates. When patTemplate parses this
container template, it will find and follow the links to the other templates,
parse them and display them.
Here's the script which does all the work:
<?php
// include the class
include("include/patTemplate.php");
// initialize an object of the class
$template = new patTemplate();
// set template location
$template->setBasedir("templates");
// set name of template file
$template->readTemplatesFromFile("music.tmpl");
// assign values to template variables
$template->AddVar("footer", "COPYRIGHT", "This material copyright
Melonfire, " . date("Y", mktime()));
// parse and display the template
$template->DisplayParsedTemplate("main");
?>
As you can see, it's almost identical to the one on the
previous page - which only serves to demonstrate how transparent and simple the
process of linking templates together is.
Here's what the output looks
like:

If you have a Web page which consists
of many individual pieces, you'll find this ability to create independent,
modular templates immensely valuable - and once you start using it, you'll
wonder how you ever worked without it!