49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * @package dompdf
 | |
|  * @link    http://dompdf.github.com/
 | |
|  * @author  Benj Carson <benjcarson@digitaljunkies.ca>
 | |
|  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Executes inline PHP code during the rendering process
 | |
|  *
 | |
|  * @access private
 | |
|  * @package dompdf
 | |
|  */
 | |
| class PHP_Evaluator {
 | |
|   
 | |
|   /**
 | |
|    * @var Canvas
 | |
|    */
 | |
|   protected $_canvas;
 | |
| 
 | |
|   function __construct(Canvas $canvas) {
 | |
|     $this->_canvas = $canvas;
 | |
|   }
 | |
| 
 | |
|   function evaluate($code, $vars = array()) {
 | |
|     if ( !$this->_canvas->get_dompdf()->get_option("enable_php") ) {
 | |
|       return;
 | |
|     }
 | |
|     
 | |
|     // Set up some variables for the inline code
 | |
|     $pdf = $this->_canvas;
 | |
|     $PAGE_NUM = $pdf->get_page_number();
 | |
|     $PAGE_COUNT = $pdf->get_page_count();
 | |
|     
 | |
|     // Override those variables if passed in
 | |
|     foreach ($vars as $k => $v) {
 | |
|       $$k = $v;
 | |
|     }
 | |
| 
 | |
|     //$code = html_entity_decode($code); // @todo uncomment this when tested
 | |
|     eval($code); 
 | |
|   }
 | |
| 
 | |
|   function render(Frame $frame) {
 | |
|     $this->evaluate($frame->get_node()->nodeValue);
 | |
|   }
 | |
| }
 | 
