| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737 | <?phpclass Template extends StarTemplate {	var $StarTemplate_set;		function __construct(){	}		function _init($template_Name){						/* 设置模板引擎配置(数组) */	$this->StarTemplate_set = array(																										/* 模板语法前后标示符 */													'left_tag' => '{',													'right_tag' => '}',																										/* 模板路径,以default为默认模板 (详细使用方法,请查看官方手册) */													'templateDir' => array('default' => 'template/'.$template_Name),														/* 默认使用模板,此与模板路径键对应  */													'template_Name' => 'default',																										/* 模板文件后缀名 */													'templateExt' => '.html',																										/* 是否持续编译模板 (用于调试时用) */													'force_compile' => FALSE,																										/* 是否开启直接插入PHP代码 */													'PHP_off' => FALSE,																										/* 定义模板编译目录,结尾不要加斜杠 '/' */													'templateCompileDir' => 'data/cache/compile',																										/* 模板编译文件的后缀名 */													'templateCompileExt' => '.phpc',																										/* 是否使用输出缓存 */													'cache_is' => FALSE,																										/* 输出缓存标示符 默认为 当前URL 的MD5值 */													/*													 * 此功能,在您在调用输出缓存时,需要指定的,以防止模板缓存重复,以影响您的程序输出													 * 可在使用时,自行定义													 *													*/													'cacheId' => md5($_SERVER['REQUEST_URI']),																										/* 输出缓存时间 单位秒 */													'cache_time' => 10,																										/* 输出缓存目录,结尾不要加斜杠 '/' */													'templateCacheDir' => 'data/cache/template',																										/* 输出缓存文件后缀名 */													'templateCacheExt' => '.phpo',																										/* 扩展功能(Function)插件存放路径,结尾不要加斜杠 '/' */													'templatePluginsDir' => 'StarTemplate_Plugins',																										/* 由本程序所创建的目录权限 代码 */													'dir_mode' => 0777,																										/* 被编译模板文件的大小限制 单位 M */													'file_max' => 1,																										/* 开启Gzip传输,提高传输速度 (此功能只在使用display是适用) */													'gzip_off' => false,																										/* 兼容选项,如果模板引擎输出空白,请开启此项 */													'compatible' => true,																										/* 此为调试时开启,可自动弹出一个窗口,窗口里为 StarTemplate 模板引擎的所有配置文件,包括注入的资源 (方便调试) */													'debug' => false,																										/* 是否存在已定义的 error_reporting */													'error_reporting' => false,														'classDir' => FCPATH													/* 默认的提示语言为中文, 您可以编写简单的语言包,为此程序增加提示语言的可读性 */																										);					$this->setConfig($this->StarTemplate_set);							}	}class StarTemplate{	// 引擎选项	private $arrayConfig = array();		/* 模板编译信息提示 默认中文 ( 如果特定语言包存在,将自动读取 ) */	public $StarTemplate_Class_Lang = array(' 模板文件不存在或读取失败',' 模板文件大小超出限制',' 模板文件没有正常加载','严重错误','程序警告','语法错误','文件名称','错误等级','错误所在','错误信息','缓存文件路径','错误源产生在',);																															// 类实例化 (进行数组设置)	public function __construct($arrayConfig = array())	{				/* 获取当前类所在目录  */  		$this->arrayConfig['classDir'] = dirname(str_replace('\\','/',__FILE__));				/* 载入配置 */		$this->arrayConfig += $arrayConfig;						/* 获取当前类名称 (防止类名称修改,导致报错机制失败) */  		$this->arrayConfig['ClassName'] = __CLASS__;				/* 类被初始化时 自动读取语言包 (并判断语言包是否有效)  */		global $_StarTemplate_Class_Lang;		if (is_array($_StarTemplate_Class_Lang)) 		{			$this->StarTemplate_Class_Lang += $_StarTemplate_Class_Lang;		}				/* 载入扩展功能文件 */		$Plugins = $this->get_Template_Plugins();		if (is_array($Plugins))		{			foreach ($Plugins as $p_path){ include $p_path; }		}				}		/* 设置引擎 */	public function setConfig($key, $value = null)	{		if (is_array($key))		{			$this->arrayConfig += $key;		}else{			$this->arrayConfig[$key] = $value;		}	}		/* 获取当前模板引擎配置 */	public function getConfig($key = null)	{		if ($key)		{			return $this->arrayConfig[$key];		}		return $this->arrayConfig;	}		/* 向模板引擎中注入变量 */	public function assign($key,$val = null)	{		if (empty($key)) return '';		if (is_array($key))		{			foreach ($key as $k=>$v)			{				$this->arrayConfig['GLOBALS'][$k] = $v;			}		}else{			$this->arrayConfig['GLOBALS'][$key] = $val;			}	}		/* 取得变量值 */	private function & get_Value($key)	{		if (isset($this->arrayConfig['GLOBALS'][$key]))		{			return $this->arrayConfig['GLOBALS'][$key];		}else{			global $$key;				if ($$key)				{					$this->assign($key,$$key);				}				return $$key;		}	}		/* 取得模板路径 */	private function get_Template_Path($templateName)	{		return $this->arrayConfig['templateDir'][(empty($this->arrayConfig['template_Name']) ? 'default' : $this->arrayConfig['template_Name'])].'/'.$templateName.$this->arrayConfig['templateExt'];	}		/* 获取模板编译路径 */	private function get_Template_Compile_Path($templateName)	{		return $this->arrayConfig['classDir'].'/'.$this->arrayConfig['templateCompileDir'].'/'.md5($this->get_Template_Path($templateName)).$this->arrayConfig['templateCompileExt'];	}		/* 获取模板缓存路径 */	private function get_Template_Cache_Path($templateName, $all = false)	{		if ($all)		{			if ($all === true)			{				$tmp_path = md5($templateName).'*';			}else{				$tmp_path = md5($templateName).$all;			}		}else{			$tmp_path = md5($templateName).$this->arrayConfig['cacheId'];		}		return $this->arrayConfig['classDir'].'/'.$this->arrayConfig['templateCacheDir'].'/'.$tmp_path.$this->arrayConfig['templateCacheExt'];	}		/* 获取扩展功能文件列表 */	private function get_Template_Plugins()	{		if (is_dir($this->arrayConfig['classDir'].'/'.$this->arrayConfig['templatePluginsDir'].'/'))		{			return glob($this->arrayConfig['classDir'].'/'.$this->arrayConfig['templatePluginsDir'].'/*.php');		}	}		/* 判断缓存输出是否有效/是否开启缓存输出  */	public function is_cached($templateName)	{		$_PATH = $this->get_Template_Cache_Path($templateName);		if (!file_exists($_PATH))		{			return false;		}elseif (filemtime($_PATH) + $this->arrayConfig['cache_time'] < time()){			return false;		}else{			return true;		}	}		/* 读取文件 */	private function template_Read($PATH)	{		if (function_exists('file_get_contents'))		{			return file_get_contents($PATH);		}else{			$fopen = fopen($PATH,'r');			$template_Content = '';			do {				$data = fread($fopen,1024);				if (strlen($data)===0) break;				$template_Content .= $data;			}while(1);			fclose($fopen);						return $template_Content;		}	}		/* 写入文件 */	private function template_Write($PATH,$String)	{		/* 调用递归创建目录  */		$this->template_CreateDir(dirname($PATH));			/* 以写入方式打开文件句柄,开启 flock  */			$fopen = fopen($PATH,'w');				flock($fopen, LOCK_EX + LOCK_NB);				$fwrite = fwrite($fopen,$String);					/* 失败重新尝试写入  */					if (!$fwrite) $fwrite = fwrite($fopen,$String);				flock($fopen, LOCK_UN + LOCK_NB);			fclose($fopen);		return $fwrite;	}		/* 循环创建目录 */	private function template_CreateDir($Dir)	{		if (is_dir($Dir))		 return true;		 		if (mkdir($Dir, $this->arrayConfig['dir_mode']))			return true;				if (!$this->template_CreateDir(dirname($Dir)))		 return false;				return mkdir($Dir, $this->arrayConfig['dir_mode']);	}		public function getMicrotime()	{		list($microtime_1,$microtime_2) = explode(' ',microtime());		return $microtime_1 + $microtime_2;	}	/* 输出模板 */	public function display($templateName, $key = '',$Clean = 0)	{		$this->StarTemplate_Display($templateName,$Clean,'display',$key);	}		/* 返回输出模板 */	public function fetch($templateName, $key = '')	{		$Clean = 0;		return $this->StarTemplate_Display($templateName,$Clean,'output',$key);	}		/* 输出模板 */	private function StarTemplate_Display($templateName,$Clean = 0,$display = '',$key = '')	{				/* 定义错误信息 */		if (!$this->arrayConfig['error_reporting'])		{			$StarTemplate_old_err = error_reporting();				error_reporting(E_ERROR | E_WARNING | E_PARSE);		}				/* 设定模板 */		if ($key)		{			$tmp_key = $this->arrayConfig['template_Name'];			$this->arrayConfig['template_Name'] = $key;		}				/* 引擎运行时间统计  */		$this->arrayConfig['Runtime'] = $this->getMicrotime();				if ($this->arrayConfig['cache_is'])			$_PATH = $this->get_Template_Cache_Path($templateName);				if (!$this->is_cached($templateName) || $Clean)		{				/* 将错误载入特定函数处理  */			if ($this->arrayConfig['compatible'])			{ 				ob_start();			}else{				// 载入Debug类				//$class_debug = new StarTemplate_debug($this);				//ob_start(array($class_debug,'StarTemplate_xError'));			}					/* 进行模板编译   */					include $this->StarTemplate_compile($templateName,$Clean);										$StarTemplate_Content = ob_get_contents();				ob_end_clean();		}else{			/* 读取缓存输出文件 */			$StarTemplate_Content = $this->template_Read($_PATH);		}			 /* 判断是否可以写入缓存输出内容  */			if ($this->arrayConfig['cache_is'])			{				/* 判断缓存输出是否有效 */				if (!$this->is_cached($templateName))					$this->template_write($_PATH,$StarTemplate_Content);			}					if ($this->arrayConfig['debug'])			{				unset($this->arrayConfig['GLOBALS'][$this->arrayConfig['ClassName']]);				ob_start(); print_r($this->arrayConfig); $debug = ob_get_contents(); ob_end_clean();				$StarTemplate_Content .= '<div id="Me" style="display:none;">'.highlight_string($debug,1).'</div>'.'<script type="text/javascript">var code=document.getElementById("Me").innerHTML;var newwin=window.open("","","height=600 ,width=500,scrollbars=yes");  newwin.opener = null ;newwin.document.write(code); newwin.document.close();</script>';					}						switch ($display)			{				case 'display':						echo $StarTemplate_Content;												$StarTemplate_Content = null;				break;			}						/* 返回执行时间 */		$this->template_Runtime();				if (isset($tmp_key)) $this->arrayConfig['template_Name'] = $tmp_key;		if ($this->arrayConfig['gzip_off'] && ereg('gzip',$_SERVER['HTTP_ACCEPT_ENCODING']))		{			ob_start('ob_gzhandler');		}				/* 定义错误信息 */		if (!$this->arrayConfig['error_reporting'])			error_reporting($StarTemplate_old_err);				return $StarTemplate_Content;	}		/*******************************************************************/	/* 编译开始	/*******************************************************************/				/* 转换标示符 */	private function ConverTag($Tag)	{		$_count = strlen($Tag);		$new_array = array('{','}','[',']','$','(',')','*','+','.','?','\\','^','|');		$Tag_ = '';		for ($i=0;$i<$_count;$i++)		{			$Tag_ .= (in_array($Tag[$i],$new_array)?'\\':'').$Tag[$i];		}		return $Tag_;	}	/* 模板引擎编译 */	private function StarTemplate_compile($templateName,$Clean = 0)	{		$_PATH = array();		/* 取得有效模板路径  */		$_PATH['From'] =  $this->get_Template_Path($templateName);		$_PATH['Save'] =  $this->get_Template_Compile_Path($templateName);				/* 判断模板文件是否存在 */		if (!file_exists($_PATH['From'])) return $_PATH['From'].' {'.$templateName.$this->StarTemplate_Class_Lang[0].'}';		/* 判断模板缓存文件是否需要更新  */		if ($this->arrayConfig['force_compile']) $Clean = 1;				if (!$Clean)		{			if (file_exists($_PATH['From']))				$_fromt = filemtime($_PATH['From']);			if (file_exists($_PATH['Save']))				$_savet = filemtime($_PATH['Save']);			if ($_fromt <= $_savet)			{				return $_PATH['Save'];			}		}				/* 判断模板文件大小限制 */		if (filesize($_PATH['From']) > $this->arrayConfig['file_max'] * 1024 * 1024) return $this->StarTemplate_Error($templateName.$this->StarTemplate_Class_Lang[1].' ('.$this->arrayConfig['file_max'].' M)');				/* 取得有效标示  */		$_Left = '(?<!!)'.$this->ConverTag($this->arrayConfig['left_tag']);		$_Right = '((?<![!]))'.$this->ConverTag($this->arrayConfig['right_tag']);				/* 取得模板源 */		$StarTemplate_Conver = $this->template_read($_PATH['From']);		/* 如果模板为空,不进行编译 */		if (empty($StarTemplate_Conver))		{			$this->template_Write($_PATH['Save'],$StarTemplate_Conver);			return $_PATH['Save'];		}				/* **************模板进行相关编译起始******************* */			/*				Start// write by xbantu 2009-06-06			*/		$StarTemplate_Conver = trim($StarTemplate_Conver);				preg_match_all('/'.$_Left.'Template (([\w|-|\/]{1,})|(\$([_a-zA-Z][\w]+)))'.$_Right.'/',$StarTemplate_Conver,$Include_);		$Include_count = count($Include_[0]);					/* 模板文件嵌套调用处理  */		for ($i=0;$i< $Include_count;$i++)		{			/* 编译相应调入模板文件 */			$StarTemplate_Conver = str_replace($Include_[0][$i],$this->arrayConfig['left_tag'].'eval include $this->StarTemplate_compile("'.$Include_[1][$i].'")'.$this->arrayConfig['right_tag'],$StarTemplate_Conver);						/* 2009-06-07 放弃使用模板状态提示 */			/*				// 提示模板文件加载状态  				$Include_Tmp_Name = $this->get_StarTemplate_path($Include_[1][$i]);					$StarTemplate_Conver = str_replace($Include_[0][$i],$this->StarTemplate_Left.' '.$Include_[1][$i].$this->StarTemplate_Class_Lang[2].$this->StarTemplate_Right,$StarTemplate_Conver);							*/		}		unset($Include_);					 /* 获取模板所使用变量 */		preg_match_all('/\$([_a-zA-Z][\w]+)/',$StarTemplate_Conver,$Global_var);		if (is_array($Global_var[1]))		{				$Global_var[1] = array_unique($Global_var[1]);			$Global_var_Im = array('this','_GET','_POST','_COOKIE','_SERVER','_SESSION','_FILES','_ENV');			$Global_var_out = '';			foreach ($Global_var[1] as $val)			{				if (!in_array($val,$Global_var_Im))				{					$Global_var_out .= '$'.$val.' =& $this->get_Value(\''.$val.'\'); ';				}			}		}		 /* 相关标签转换 */		$Template_preg = array();		$Template_Replace = array();		 /* 判断是否允许插入PHP  */		if ($this->arrayConfig['PHP_off'] === false)		{			$StarTemplate_Preg[] = '/<\?(=|php|)(.+?)\?>/is';						$StarTemplate_Replace[] = '<?\\1\\2?>';		}			/*			此类编译的语法			_if 			_elseif			_else			_for			_while			_foreach			_eval			_echo			_print_r			_变量输出			*/ 					$StarTemplate_Preg[] = '/'.$_Left.'(else if|elseif) (.*?)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'for (.*?)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'while (.*?)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'(loop|foreach) (.*?)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'if (.*?)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'else'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left."(eval|_)( |[\r\n])(.*?)".$_Right.'/is';		$StarTemplate_Preg[] = '/'.$_Left.'_e (.*?)'.$_Right.'/is';		$StarTemplate_Preg[] = '/'.$_Left.'_p (.*?)'.$_Right.'/i';		$StarTemplate_Preg[] = '/'.$_Left.'\/(if|for|loop|foreach|eval|while)'.$_Right.'/i'; 		$StarTemplate_Preg[] = '/'.$_Left.'((( *(\+\+|--) *)*?(([_a-zA-Z][\w]*\(.*?\))|\$((\w+)((\[|\()(\'|")?\$*\w*(\'|")?(\)|\]))*((->)?\$?(\w*)(\((\'|")?(.*?)(\'|")?\)|))){0,})( *\.?[^ \.]*? *)*?){1,})'.$_Right.'/i'; 		$StarTemplate_Preg[] = "/(	| ){0,}(\r\n){1,}\";/"; 		$StarTemplate_Preg[] = '/'.$_Left.'(\#|\*)(.*?)(\#|\*)'.$_Right.'/'; 		$StarTemplate_Preg[] = '/'.$_Left.'\%([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)'.$_Right.'/';			/* 编译为相应的PHP文件语法 _所产生错误在运行时提示  */		$StarTemplate_Replace[] = '<?php }else if (\\2){ ?>';		$StarTemplate_Replace[] = '<?php for (\\1) { ?>';		$StarTemplate_Replace[] = '<?php while (\\1) { ?>';		$StarTemplate_Replace[] = '<?php foreach ((array)\\2) { $__i++; ?>';		$StarTemplate_Replace[] = '<?php if (\\1){ ?>';		$StarTemplate_Replace[] = '<?php }else{ ?>';		$StarTemplate_Replace[] = '<?php \\3; ?>';		$StarTemplate_Replace[] = '<?php echo \\1; ?>';		$StarTemplate_Replace[] = '<?php print_r(\\1); ?>';		$StarTemplate_Replace[] = '<?php } ?>';		$StarTemplate_Replace[] = '<?php echo \\1;?>';		$StarTemplate_Replace[] = '';		$StarTemplate_Replace[] = '';		$StarTemplate_Replace[] = '<?php echo $this->lang_array[\'\\1\'];?>';				  /* 在有必要时 开启 */  		//ksort($StarTemplate_Preg);		//ksort($StarTemplate_Replace);							/* 执行正则分析编译 */		$StarTemplate_Conver=preg_replace($StarTemplate_Preg,$StarTemplate_Replace,$StarTemplate_Conver);					/* 过滤敏感字符 */ 		$StarTemplate_Conver = str_replace(array('!'.$this->arrayConfig['right_tag'],'!'.$this->arrayConfig['left_tag'],'?><?php'),array($this->arrayConfig['right_tag'],$this->arrayConfig['left_tag'],''),$StarTemplate_Conver);			/* 整理输出缓存内容  */		if ($Global_var_out)		{			$StarTemplate_Conver = "<?php $Global_var_out ?>\r\n".$StarTemplate_Conver;		}				$this->template_write($_PATH['Save'],$StarTemplate_Conver);				/*			End conver;		*/		/* ***************模板进行相关编译结束******************** */				return $_PATH['Save'];	}	/* 类错误信息输出 */	private function StarTemplate_Error($Msg)	{		echo $Msg;				/*exit;*/	}			/* 清理缓存输出 或缓存 */	public function StarTemplate_clean($type = 'cache')	{				switch ($type)		{			/* 判断是否是输出缓存 */			case 'cache':				$_PATH = dirname($this->get_Template_Cache_Path('_'));				$_END = $this->arrayConfig['templateCacheExt'];							$_PATH_ = glob($_PATH.'/*'.$_END);			break;						/* 判断是否是模板缓存 */			case 'compile':				$_PATH = dirname($this->get_Template_Compile_Path('_'));				$_END = $this->arrayConfig['templateCompileExt'];							$_PATH_ = glob($_PATH.'/*'.$_END);			break;		}				 /* 判断是否是输出缓存 */		if (!empty($type) && empty($_PATH))		{			echo $_PATH = $this->get_Template_Cache_Path($type, true);						$_PATH_ = glob($_PATH);		}				if ($_PATH_)		{						if (is_array($_PATH_))			{				$j = 0;				foreach ($_PATH_ as $val)				{					if (file_exists($val))					{						unlink($val);						$j ++;					}				}				return $j;			}else{				return false;			}		}				return false;	}		/* 获取实时模板引擎运行时间 */	public function template_Runtime()	{		/* 返回执行时间 */		return $this->arrayConfig['Runtime'] = round($this->getMicrotime() - $this->arrayConfig['Runtime'],5);	}  /* 释放资源 */ 	public function __destruct()	{		$this->arrayConfig = null;	}		//类结束}class StarTemplate_debug{	private $thiss = null;		/* 类实例化($this) */	public function __construct($thiss)	{		$this->thiss = $thiss;	}		/* 模板错误输出 */	public function StarTemplate_xError($_StarTemplate_error)	{		/* 获取最后一次错误记录 */		$_StarTemplate_error_ = error_get_last();    $_StarTemplate_error = array();        /* 判断是否重要错误信息 */    switch ($_StarTemplate_error_['type'])    {    	case 1: $_StarTemplate_error['type'] = $this->thiss->StarTemplate_Class_Lang[3];    	case 2: $_StarTemplate_error['type'] = $this->thiss->StarTemplate_Class_Lang[4];    	case 4: $_StarTemplate_error['type'] = $this->thiss->StarTemplate_Class_Lang[5];    	default:    		$_StarTemplate_error['type'] = '1';    }        /* 错误信息格式化 */    if ($_StarTemplate_error['type'])    {    	$_StarTemplate_error['body'] = file($_StarTemplate_error_['file']);    	    	$_StarTemplate_error['err_'] = "<meta http-equiv=Content-Type content=\"text/html;charset=utf-8\"><font size=2 color=#333333>\r\n";    	$_StarTemplate_error['err_'] .= "[StarTemplate] <br /><br />\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[6].': '.str_replace($this->thiss->StarTemplate_Cache_End,'',basename($_StarTemplate_error_['file']))."<br />\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[7].': '.$_StarTemplate_error['type']."<br />\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[8].': '.htmlspecialchars($_StarTemplate_error['body'][$_StarTemplate_error_['line']-1])."<br />\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[9].': '.$_StarTemplate_error_['message']."<br /><br />\r\n";    	$_StarTemplate_error['err_'] .= "</font><font size=2 color=#999999>\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[10].': {SERVER_PATH}/'.$this->thiss->StarTemplate_Cache_Dir.'/'.basename($_StarTemplate_error_['file'])."<br />\r\n";    	$_StarTemplate_error['err_'] .= $this->thiss->StarTemplate_Class_Lang[11].': '.$_StarTemplate_error_['line']." {$this->thiss->StarTemplate_Class_Lang[12]}<br />\r\n";    	$_StarTemplate_error['err_'] .= "</font>\r\n";    }    return $_StarTemplate_error['err_'];	}}
 |