original_string: private function parseTemplatingSettings(\DOMNode $templating) {
  
  		if(is_null($this->templating)) {
  			$this->templating = new \stdClass;
  			$this->templating->filters = [];
  		}
  
  		$xpath = new \DOMXPath($templating->ownerDocument);
  
  		foreach($xpath->query("filters/filter", $templating) as $filter) {
  
  			$id = $filter->getAttribute('id');
  			$class = $filter->getAttribute('class');
  
  			if(!$id) {
  				throw new ConfigException('Templating filter without id found.');
  			}
  
  			if(!$class)	{
  				throw new ConfigException(sprintf("No class for templating filter '%s' configured.", $id));
  			}
  
  			if(isset($this->templating->filters[$id])) {
  				throw new ConfigException(sprintf("Templating filter '%s' has already been defined.", $id));
  			}
  
  			// clean path delimiters, prepend leading backslash, and replace slashes with backslashes
  
  			$class = '\\' . ltrim(str_replace('/', '\\', $class), '/\\');
  
  			// store parsed information
  
  			$this->templating->filters[$id] = [
  				'class' => $class,
  				'parameters' => $filter->getAttribute('parameters')
  			];
  
  		}
  
  	}
code: private function parseTemplatingSettings(\DOMNode $templating) {
  
  		if(is_null($this->templating)) {
  			$this->templating = new \stdClass;
  			$this->templating->filters = [];
  		}
  
  		$xpath = new \DOMXPath($templating->ownerDocument);
  
  		foreach($xpath->query("filters/filter", $templating) as $filter) {
  
  			$id = $filter->getAttribute('id');
  			$class = $filter->getAttribute('class');
  
  			if(!$id) {
  				throw new ConfigException('Templating filter without id found.');
  			}
  
  			if(!$class)	{
  				throw new ConfigException(sprintf("No class for templating filter '%s' configured.", $id));
  			}
  
  			if(isset($this->templating->filters[$id])) {
  				throw new ConfigException(sprintf("Templating filter '%s' has already been defined.", $id));
  			}
  
  			// clean path delimiters, prepend leading backslash, and replace slashes with backslashes
  
  			$class = '\\' . ltrim(str_replace('/', '\\', $class), '/\\');
  
  			// store parsed information
  
  			$this->templating->filters[$id] = [
  				'class' => $class,
  				'parameters' => $filter->getAttribute('parameters')
  			];
  
  		}
  
  	}
code_tokens: private function parseTemplatingSettings ( \ DOMNode $ templating ) { if ( is_null ( $ this -> templating ) ) { $ this -> templating = new \ stdClass ; $ this -> templating -> filters = [ ] ; } $ xpath = new \ DOMXPath ( $ templating -> ownerDocument ) ; foreach ( $ xpath -> query ( "filters/filter" , $ templating ) as $ filter ) { $ id = $ filter -> getAttribute ( 'id' ) ; $ class = $ filter -> getAttribute ( 'class' ) ; if ( ! $ id ) { throw new ConfigException ( 'Templating filter without id found.' ) ; } if ( ! $ class ) { throw new ConfigException ( sprintf ( "No class for templating filter '%s' configured." , $ id ) ) ; } if ( isset ( $ this -> templating -> filters [ $ id ] ) ) { throw new ConfigException ( sprintf ( "Templating filter '%s' has already been defined." , $ id ) ) ; } // clean path delimiters, prepend leading backslash, and replace slashes with backslashes $ class = '\\' . ltrim ( str_replace ( '/' , '\\' , $ class ) , '/\\' ) ; // store parsed information $ this -> templating -> filters [ $ id ] = [ 'class' => $ class , 'parameters' => $ filter -> getAttribute ( 'parameters' ) ] ; } }
docstring: parse templating configuration
  currently only filters for SimpleTemplate templates and their configuration are parsed
  
  @param \DOMNode $templating
docstring_tokens: parse templating configuration currently only filters for SimpleTemplate templates and their configuration are parsed