1<?php 2/** 3 * basic output functions 4 * 5 * PHP version 5 6 * 7 * @category PHP 8 * @package PSI_Output 9 * @author Damien Roth <iysaak@users.sourceforge.net> 10 * @copyright 2009 phpSysInfo 11 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version 12 * @version SVN: $Id: class.Output.inc.php 315 2009-09-02 15:48:31Z bigmichi1 $ 13 * @link http://phpsysinfo.sourceforge.net 14 */ 15/** 16 * basic output functions for all output formats 17 * 18 * @category PHP 19 * @package PSI_Output 20 * @author Damien Roth <iysaak@users.sourceforge.net> 21 * @copyright 2009 phpSysInfo 22 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version 23 * @version Release: 3.0 24 * @link http://phpsysinfo.sourceforge.net 25 */ 26class Template 27{ 28 /** 29 * Vars used in the template 30 * 31 * @var array 32 */ 33 private $_vars; 34 35 /** 36 * Template file 37 * 38 * @var string 39 */ 40 private $_file; 41 42 /** 43 * Constructor 44 * 45 * @param String $file the template file name 46 */ 47 public function __construct($file=null) 48 { 49 $this->_file = $file; 50 $this->_vars = array(); 51 } 52 53 /** 54 * Set a template variable. 55 * 56 * @param string $name variable name 57 * @param string|array|Template $value variable value 58 */ 59 public function set($name, $value) 60 { 61 $this->_vars[$name] = is_object($value) ? $value->fetch() : $value; 62 } 63 64 /** 65 * Open, parse, and return the template file. 66 * 67 * @param string $file 68 * 69 * @return string 70 */ 71 public function fetch($file=null) 72 { 73 if (!$file) { 74 $file = $this->_file; 75 } 76 77 // Extract the vars to local namespace 78 extract($this->_vars); 79 80 // Start output buffering 81 ob_start(); 82 83 include(PSI_APP_ROOT.$file); 84 85 // Get the contents of the buffer 86 $contents = ob_get_contents(); 87 88 // End buffering and discard 89 ob_end_clean(); 90 91 return $contents; 92 } 93} 94