diff options
Diffstat (limited to 'src/SemanticScuttle/Service/Template.php')
| -rw-r--r-- | src/SemanticScuttle/Service/Template.php | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/src/SemanticScuttle/Service/Template.php b/src/SemanticScuttle/Service/Template.php new file mode 100644 index 0000000..05e494c --- /dev/null +++ b/src/SemanticScuttle/Service/Template.php @@ -0,0 +1,46 @@ +<?php +class TemplateService { +	var $basedir; + +	function &getInstance() { +		static $instance; +		if (!isset($instance)) +		$instance =& new TemplateService(); +		return $instance; +	} + +	function TemplateService() { +		$this->basedir = $GLOBALS['TEMPLATES_DIR']; +	} + +	function loadTemplate($template, $vars = NULL) { +		if (substr($template, -4) != '.php') +		$template .= '.php'; +		$tpl =& new Template($this->basedir .'/'. $template, $vars, $this); +		$tpl->parse(); +		return $tpl; +	} +} + +class Template { +	var $vars = array(); +	var $file = ''; +	var $templateservice; + +	function Template($file, $vars = NULL, &$templateservice) { +		$this->vars = $vars; +		$this->file = $file; +		$this->templateservice = $templateservice; +	} + +	function parse() { +		if (isset($this->vars)) +		extract($this->vars); +		include($this->file); +	} + +	function includeTemplate($name) { +		return $this->templateservice->loadTemplate($name, $this->vars); +	} +} +?>
\ No newline at end of file | 
