Template system in PHP

This template system will simply find certain strings in the HTML template and replace this with dynamic content.

class template
   var $template;
   var $data = array();

We will firstly define a class with two fields, one to store the template and the other to store the data to swap dynamically.

function template($file)
   $this->template = $this->file_load($file);

The constructor will load the template from the file specified. This will be the main template that the data will be loaded into.

function file_load($file)
      return file_get_contents($file);
      die('File "'.$file.'" cannot be loaded.');

The function loads the file if it exists otherwise it will return an error message.

function addData($key, $value)
   $this->data[$key] = $value;

function addFileData($key, $file)
   $this->addData($key, $this->file_load($file));

To add data a key must be specified that will be the string that will be replaced within the template, and the associated data as the second argument. The second function takes a key as the first argument and a file as the second. The file will be loaded and will be replaced in the main template.

function make_template()
   foreach ($this->data as $key => $value)
      $this->template = str_replace('['.$key.']', $value, $this->template);
   echo $this->template;

Finally a method to merge the data into the document and print the template.

To use this class first create a new object with the main template file and start to load the dynamic data.

$temp = new template('default_template.html');
$temp->addData('TITLE', 'title');
$temp->addData('SUBJECT', date('dmy'));
$temp->addData('NEWS', 'news');

This example loads a simple news template and loads three data items, a title, subject and the news.




No tags