A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							1.5 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
 * Copyright © 2024 ExacTI Technology Solutions. All rights reserved.
 | 
						|
 * GPLv3 General License.
 | 
						|
 * https://exacti.com.br
 | 
						|
 * Phacil PHP Framework - https://github.com/exacti/phacil-framework
 | 
						|
 */
 | 
						|
 | 
						|
namespace Phacil\Framework\templateEngines\Twig\Extension;
 | 
						|
 | 
						|
class Node extends \Twig\Node\Node
 | 
						|
{
 | 
						|
 | 
						|
	public function __construct($params, $lineno = 0, $tag = null)
 | 
						|
	{
 | 
						|
		parent::__construct(array('params' => $params), array(), $lineno, $tag);
 | 
						|
	}
 | 
						|
 | 
						|
	public function compile(\Twig\Compiler $compiler)
 | 
						|
	{
 | 
						|
		$count = count($this->getNode('params'));
 | 
						|
 | 
						|
		$compiler
 | 
						|
			->addDebugInfo($this);
 | 
						|
 | 
						|
		for ($i = 0; ($i < $count); $i++) {
 | 
						|
			// argument is not an expression (such as, a \Twig_Node_Textbody)
 | 
						|
			// we should trick with output buffering to get a valid argument to pass
 | 
						|
			// to the functionToCall() function.
 | 
						|
			if (!($this->getNode('params')->getNode($i) instanceof \Twig\Node\Expression\AbstractExpression)) {
 | 
						|
				$compiler
 | 
						|
					->write('ob_start();')
 | 
						|
					->raw(PHP_EOL);
 | 
						|
 | 
						|
				$compiler
 | 
						|
					->subcompile($this->getNode('params')->getNode($i));
 | 
						|
 | 
						|
				$compiler
 | 
						|
					->write('$_trans[] = ob_get_clean();')
 | 
						|
					->raw(PHP_EOL);
 | 
						|
			} else {
 | 
						|
				$compiler
 | 
						|
					->write('$_trans[] = ')
 | 
						|
					->subcompile($this->getNode('params')->getNode($i))
 | 
						|
					->raw(';')
 | 
						|
					->raw(PHP_EOL);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		$compiler
 | 
						|
			->write('call_user_func_array(')
 | 
						|
			->string('\Phacil\Framework\templateEngines\Twig\Extension\Translate::translate')
 | 
						|
			->raw(', $_trans);')
 | 
						|
			->raw(PHP_EOL);
 | 
						|
 | 
						|
		$compiler
 | 
						|
			->write('unset($_trans);')
 | 
						|
			->raw(PHP_EOL);
 | 
						|
	}
 | 
						|
} |