Skip to content
Extraits de code Groupes Projets
PHP.php 1,38 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    mattpiwik's avatar
    mattpiwik a validé
    
    /**
     * Returns the equivalent PHP array of the DataTable.
     * You can specify in the constructor if you want the serialized version.
     * 
     * @package Piwik_DataTable
     * @subpackage Piwik_DataTable_Renderer
     */
    
    class Piwik_DataTable_Renderer_PHP extends Piwik_DataTable_Renderer
    {
    	protected $serialize;
    	function __construct($table = null, $serialize = true)
    	{
    		parent::__construct($table);
    
    		$this->setSerialize($serialize);
    	}
    	
    	function setSerialize( $bool )
    	{
    		$this->serialize = $bool;
    	}
    	
    	function __toString()
    	{
    		$data = $this->render();
    		if(!is_string($data))
    		{
    			$data = serialize($data);
    		}
    		return $data;
    
    	}
    	
    	function render()
    	{
    
    mattpiwik's avatar
    mattpiwik a validé
    		if($this->table instanceof Piwik_DataTable_Simple)
    		{
    			$array = $this->renderSimpleTable($this->table);
    		}
    		else
    		{
    			$array = $this->renderTable($this->table);
    		}
    				
    		if($this->serialize)
    		{
    			$array = serialize($array);
    		}
    		
    		return $array;
    
    	}
    	
    	function renderTable($table)
    	{
    		$array = array();
    
    		foreach($table->getRows() as $row)
    		{
    			$newRow = array(
    				'columns' => $row->getColumns(),
    				'details' => $row->getDetails(),
    				'idsubdatatable' => $row->getIdSubDataTable()
    				);
    			$array[] = $newRow;
    		}
    
    mattpiwik's avatar
    mattpiwik a validé
    		return $array;
    	}
    	
    	function renderSimpleTable($table)
    	{
    		$array = array();
    
    		foreach($table->getRows() as $row)
    
    mattpiwik's avatar
    mattpiwik a validé
    			$array[$row->getColumn('label')] = $row->getColumn('value');
    
    mattpiwik's avatar
    mattpiwik a validé
    		return $array;