original_string: public function addNode($node) {
  		$src=false;
  		// find src
  		if (array_key_exists('src',$node))
  			$src = $node['src'];
  		elseif (array_key_exists('href',$node))
  			$src = $node['href'];
  		if ($src) {
  			// find type
  			if (!isset($node['type'])) {
  				if (preg_match('/.*\.(css|js)(?=[?#].*|$)/i',$src,$match))
  					$node['type'] = $match[1];
  				elseif (array_key_exists('src',$node))
  					$node['type'] = 'js';
  				elseif (array_key_exists('href',$node))
  					$node['type'] = 'css';
  				elseif(empty($type))
  					// unknown file type
  					return "";
  			}
  			$type = $node['type'];
  			// default slot is based on the type
  			if (!isset($node['group']))
  				$node['group'] = ($node['type'] == 'js')
  					? 'footer' : 'head';
  			if (!isset($node['priority']))
  				$node['priority'] = 5;
  			if (!isset($node['slot']))
  				$node['slot'] = null;
  			$group = $node['group'];
  			$prio = $node['priority'];
  			$slot = $node['slot'];
  			unset($node['priority'],$node['src'],$node['href'],
  				$node['group'],$node['type'],$node['slot']);
  			$this->add($src,$type,$group,$prio,$slot,$node);
  		}
  	}
code: public function addNode($node) {
  		$src=false;
  		// find src
  		if (array_key_exists('src',$node))
  			$src = $node['src'];
  		elseif (array_key_exists('href',$node))
  			$src = $node['href'];
  		if ($src) {
  			// find type
  			if (!isset($node['type'])) {
  				if (preg_match('/.*\.(css|js)(?=[?#].*|$)/i',$src,$match))
  					$node['type'] = $match[1];
  				elseif (array_key_exists('src',$node))
  					$node['type'] = 'js';
  				elseif (array_key_exists('href',$node))
  					$node['type'] = 'css';
  				elseif(empty($type))
  					// unknown file type
  					return "";
  			}
  			$type = $node['type'];
  			// default slot is based on the type
  			if (!isset($node['group']))
  				$node['group'] = ($node['type'] == 'js')
  					? 'footer' : 'head';
  			if (!isset($node['priority']))
  				$node['priority'] = 5;
  			if (!isset($node['slot']))
  				$node['slot'] = null;
  			$group = $node['group'];
  			$prio = $node['priority'];
  			$slot = $node['slot'];
  			unset($node['priority'],$node['src'],$node['href'],
  				$node['group'],$node['type'],$node['slot']);
  			$this->add($src,$type,$group,$prio,$slot,$node);
  		}
  	}
code_tokens: public function addNode ( $ node ) { $ src = false ; // find src if ( array_key_exists ( 'src' , $ node ) ) $ src = $ node [ 'src' ] ; elseif ( array_key_exists ( 'href' , $ node ) ) $ src = $ node [ 'href' ] ; if ( $ src ) { // find type if ( ! isset ( $ node [ 'type' ] ) ) { if ( preg_match ( '/.*\.(css|js)(?=[?#].*|$)/i' , $ src , $ match ) ) $ node [ 'type' ] = $ match [ 1 ] ; elseif ( array_key_exists ( 'src' , $ node ) ) $ node [ 'type' ] = 'js' ; elseif ( array_key_exists ( 'href' , $ node ) ) $ node [ 'type' ] = 'css' ; elseif ( empty ( $ type ) ) // unknown file type return "" ; } $ type = $ node [ 'type' ] ; // default slot is based on the type if ( ! isset ( $ node [ 'group' ] ) ) $ node [ 'group' ] = ( $ node [ 'type' ] == 'js' ) ? 'footer' : 'head' ; if ( ! isset ( $ node [ 'priority' ] ) ) $ node [ 'priority' ] = 5 ; if ( ! isset ( $ node [ 'slot' ] ) ) $ node [ 'slot' ] = null ; $ group = $ node [ 'group' ] ; $ prio = $ node [ 'priority' ] ; $ slot = $ node [ 'slot' ] ; unset ( $ node [ 'priority' ] , $ node [ 'src' ] , $ node [ 'href' ] , $ node [ 'group' ] , $ node [ 'type' ] , $ node [ 'slot' ] ) ; $ this -> add ( $ src , $ type , $ group , $ prio , $ slot , $ node ) ; } }
docstring: push new asset during template execution
  @param $node
  @return string
docstring_tokens: push new asset during template execution