template proc: add variable filters
This commit is contained in:
		
					parent
					
						
							
								aef737f376
							
						
					
				
			
			
				commit
				
					
						8a51e29824
					
				
			
		
					 1 changed files with 15 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -160,15 +160,25 @@
 | 
			
		|||
 | 
			
		||||
		private function var_replace($s){
 | 
			
		||||
			$m = array();
 | 
			
		||||
			if (preg_match_all('/\$\[{0,1}([a-zA-Z0-9-_]+\.*)+\]{0,1}/', $s,$m)){
 | 
			
		||||
				foreach($m[0] as $var){
 | 
			
		||||
					$varn = str_replace(array("[","]"), array("",""), $var);
 | 
			
		||||
					$val = $this->_get_var($varn, true);
 | 
			
		||||
			if (preg_match_all('/(\$\[{0,1}([a-zA-Z0-9-_]+\.*)+)(\|[a-zA-Z0-9-_]+)*\]{0,1}/', $s,$m)){
 | 
			
		||||
				foreach($m[1] as $id=>$var){
 | 
			
		||||
					$var = str_replace("[", "", $var);
 | 
			
		||||
					$val = $this->_get_var($var, true);
 | 
			
		||||
					
 | 
			
		||||
					// apply filters
 | 
			
		||||
					if ($m[3][$id]!=""){
 | 
			
		||||
						$filters = explode("|",trim($m[3][$id],"|"));
 | 
			
		||||
						foreach($filters as $filter)
 | 
			
		||||
							if (function_exists($filter)) 
 | 
			
		||||
								$val=$filter($val);
 | 
			
		||||
					}
 | 
			
		||||
					if ($val!=KEY_NOT_EXISTS)
 | 
			
		||||
						$s = str_replace($var, $val, $s);
 | 
			
		||||
						$s = str_replace($m[0][$id], $val, $s);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			return $s;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue