Welcome to mirror list, hosted at ThFree Co, Russian Federation.

API.php « ExampleUI « plugins - github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3555a76776f351755df850ef6d7b1009176b95f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
/**
 * Piwik - Open source web analytics
 *
 * @link http://piwik.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 *
 * @category Piwik_Plugins
 * @package ExampleUI
 */
namespace Piwik\Plugins\ExampleUI;

use Piwik\DataTable;
use Piwik\Period\Range;

/**
 * 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.
 *
 * @package ExampleUI
 */
class API
{
    public static $disableRandomness = false;

    private static $instance = null;

    /**
     * @return \Piwik\Plugins\ExampleUI\API
     */
    public static function getInstance()
    {
        if (self::$instance == null) {
            self::$instance = new self;
        }

        return self::$instance;
    }

    public function getTemperaturesEvolution($date, $period)
    {
        $temperatures = array();
        $period = new Range($period, 'last30');

        foreach ($period->getSubperiods() as $subPeriod) {
            if (self::$disableRandomness) {
                $server1 = 50;
                $server2 = 40;
            } else {
                $server1 = mt_rand(50, 90);
                $server2 = mt_rand(40, 110);
            }

            $value   = array('server1' => $server1, 'server2' => $server2);

            $temperatures[$subPeriod->getLocalizedShortString()] = $value;
        }

        return DataTable::makeFromIndexedArray($temperatures);
    }

    public function getTemperatures()
    {
        $xAxis = array(
            '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));
        if (!self::$disableRandomness) {
            shuffle($temperatureValues);
        }

        $temperatures = array();
        foreach ($xAxis as $i => $xAxisLabel) {
            $temperatures[$xAxisLabel] = $temperatureValues[$i];
        }

        return DataTable::makeFromIndexedArray($temperatures);
    }

    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,
        );

        return DataTable::makeFromIndexedArray($planetRatios);
    }

    public function getPlanetRatiosWithLogos()
    {
        $planetsDataTable = $this->getPlanetRatios();

        foreach ($planetsDataTable->getRows() as $row) {
            $logo = sprintf('plugins/ExampleUI/images/icons-planet/%s.png', strtolower($row->getColumn('label')));
            $url  = sprintf('http://en.wikipedia.org/wiki/%s', $row->getColumn('label'));

            $row->addMetadata('logo', $logo);
            $row->addMetadata('url', $url);
        }

        return $planetsDataTable;
    }
}