]> projects.mako.cc - scuttle/blob - services/templateservice.php
191ab8df67a0592204ad77dad903392c0d7966ff
[scuttle] / services / templateservice.php
1 <?php
2 class TemplateService {
3     var $basedir;
4   
5     function &getInstance() {
6         static $instance;
7         if (!isset($instance))
8             $instance =& new TemplateService();
9         return $instance;
10     }
11   
12     function TemplateService() {
13         $this->basedir = $GLOBALS['TEMPLATES_DIR'];    
14     }
15   
16     function loadTemplate($template, $vars = NULL) {
17         if (substr($template, -4) != '.php')
18             $template .= '.php';
19         $tpl =& new Template($this->basedir .'/'. $template, $vars, $this);
20         $tpl->parse();
21         return $tpl;
22     }
23 }
24
25 class Template {
26     var $vars = array();
27     var $file = '';
28     var $templateservice;
29   
30     function Template($file, $vars = NULL, &$templateservice) {
31         $this->vars = $vars;
32         $this->file = $file;
33         $this->templateservice = $templateservice; 
34     }
35   
36     function parse() {
37         if (isset($this->vars))
38             extract($this->vars);
39         include($this->file);
40     }
41   
42     function includeTemplate($name) {
43         return $this->templateservice->loadTemplate($name, $this->vars);
44     }
45 }
46 ?>

Benjamin Mako Hill || Want to submit a patch?