Skip to content
Extraits de code Groupes Projets
API.php 3,17 ko
Newer Older
  • Learn to ignore specific revisions
  • <?php
    /**
     * Piwik - Open source web analytics
     * 
     * @link http://piwik.org
    
    robocoder's avatar
    robocoder a validé
     * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
    
    robocoder's avatar
    robocoder a validé
     * @category Piwik_Plugins
     * @package Piwik_ExampleUI
    
    robocoder's avatar
    robocoder a validé
    /**
    
    mattpiwik's avatar
    mattpiwik a validé
     * ExampleUI API is also an example API useful if you are developing a Piwik plugin.
     * 
     * The functions listed in this API are returning the data used in the Controller to draw graphs and 
     * display tables. See also the ExampleAPI plugin for an introduction to Piwik APIs.
     * 
    
    robocoder's avatar
    robocoder a validé
     * @package Piwik_ExampleUI
     */
    
    class Piwik_ExampleUI_API 
    {
    	static private $instance = null;
    	static public function getInstance()
    	{
    		if (self::$instance == null)
    
    	public function getTemperaturesEvolution($date, $period)
    
    	{
    		$period = new Piwik_Period_Range($period, 'last30');
    
    		$dateStart = $period->getDateStart()->toString('Y-m-d'); // eg. "2009-04-01"
    		$dateEnd = $period->getDateEnd()->toString('Y-m-d'); // eg. "2009-04-30"
    
    		
    		// here you could select from your custom table in the database, eg.
    		$query = "SELECT AVG(temperature)
    					FROM server_temperatures
    					WHERE date > ?
    						AND date < ?
    					GROUP BY date
    					ORDER BY date ASC";
    		//$result = Piwik_FetchAll($query, array($dateStart, $dateEnd));
    		// to keep things simple, we generate the data
    		foreach($period->getSubperiods() as $subPeriod)
    		{
    
    			$server1 = mt_rand(50,90);
    			$server2 = mt_rand(40, 110);
    
    			$value = array('server1' => $server1, 'server2' => $server2);
    			$temperatures[$subPeriod->getLocalizedShortString()] = $value;
    		}
    		
    		// convert this array to a DataTable object
    		$dataTable = new Piwik_DataTable();
    		$dataTable->addRowsFromArrayWithIndexLabel($temperatures);
    		return $dataTable;
    	}
    	
    	// we generate an array of random server temperatures
    
    	public function getTemperatures()
    
    			'0h', '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', 
    			'12h', '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h',
    
    		);
    		$temperatureValues = array_slice(range(50,90), 0, count($xAxis));
    		shuffle($temperatureValues);
    		$temperatures = array();
    		foreach($xAxis as $i => $xAxisLabel) {
    			$temperatures[$xAxisLabel] = $temperatureValues[$i];
    		}
    		
    		// convert this array to a DataTable object
    		$dataTable = new Piwik_DataTable();
    		$dataTable->addRowsFromArrayWithIndexLabel($temperatures);
    		return $dataTable;
    	}
    	
    
    	public function getPlanetRatios()
    
    	{
    		$planetRatios = array(
    			'Mercury' => 0.382,
    			'Venus' => 0.949,
    			'Earth' => 1.00,
    			'Mars' => 0.532,	
    			'Jupiter' => 11.209,
    			'Saturn' => 9.449,
    			'Uranus' => 4.007,
    			'Neptune' => 3.883,
    		);
    		// convert this array to a DataTable object
    		$dataTable = new Piwik_DataTable();
    		$dataTable->addRowsFromArrayWithIndexLabel($planetRatios);
    		return $dataTable;
    	}
    	
    
    	public function getPlanetRatiosWithLogos()
    
    		$planetsDataTable = $this->getPlanetRatios();
    
    		foreach($planetsDataTable->getRows() as $row)
    		{
    			$row->addMetadata('logo', "plugins/ExampleUI/images/icons-planet/".strtolower($row->getColumn('label').".png"));
    			$row->addMetadata('url', "http://en.wikipedia.org/wiki/".$row->getColumn('label'));
    		}
    		return $planetsDataTable;
    	}
    
    robocoder's avatar
    robocoder a validé
    }