-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathController.php
executable file
·73 lines (59 loc) · 1.78 KB
/
Controller.php
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
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\TasksTimetable;
use Piwik\Common;
use Piwik\Date;
use Piwik\Metrics\Formatter;
use Piwik\Option;
use Piwik\Piwik;
use Piwik\View;
/**
*
*/
class Controller extends \Piwik\Plugin\ControllerAdmin
{
public function index()
{
Piwik::checkUserHasSuperUserAccess();
$view = new View('@TasksTimetable/index.twig');
$this->setGeneralVariablesView($view);
$tasks = Option::get('TaskScheduler.timetable');
if (!empty($tasks)) {
$tasks = Common::safe_unserialize($tasks);
}
if (empty($tasks)) {
$tasks = array();
} else {
asort($tasks);
}
$tsNow = Date::now()->getTimestamp();
$formatter = new Formatter();
$tasksFormatted = array();
foreach ($tasks as $name => $timestamp) {
$tasksFormatted[] = array(
'name' => $name,
'executionDate' => $this->getFormattedDatetime($timestamp),
'ts_difference' => $formatter->getPrettyTimeFromSeconds($timestamp - $tsNow)
);
}
$view->currentTime = $this->getFormattedDatetime(Date::now()->getTimestampUTC());
$view->tasks = $tasksFormatted;
return $view->render();
}
/**
* @param $timestamp
* @return string
* @throws \Exception
*/
protected function getFormattedDatetime($timestamp)
{
$dateFormat = Piwik::translate(Date::DATE_FORMAT_LONG);
return Date::factory($timestamp)->getLocalized($dateFormat) . ' ' . Date::factory($timestamp)->getLocalized(' h:mm:ss');
}
}