-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathController.php
77 lines (63 loc) · 2.17 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
74
75
76
77
<?php
/**
* InnoCraft - the company of the makers of Piwik Analytics, the free/libre analytics platform
*
* @link https://www.innocraft.com
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\InvalidateReports;
use Piwik\API\Request;
use Piwik\Common;
use Piwik\Period\Range;
use Piwik\Piwik;
use Piwik\Site;
use Piwik\View;
/**
*
*/
class Controller extends \Piwik\Plugin\ControllerAdmin
{
public function index()
{
Piwik::checkUserHasSuperUserAccess();
$view = new View('@InvalidateReports/admin');
$this->setBasicVariablesView($view);
$view->availableRanges = $this->getAvailableRanges();
return $view->render();
}
protected function getAvailableRanges()
{
return [
0 => Piwik::translate('InvalidateReports_AllData'),
24 => Piwik::translate('InvalidateReports_XMonths', 24),
12 => Piwik::translate('InvalidateReports_XMonths', 12),
6 => Piwik::translate('InvalidateReports_XMonths', 6),
3 => Piwik::translate('InvalidateReports_XMonths', 3),
1 => Piwik::translate('InvalidateReports_LastMonth'),
];
}
public function invalidateReports()
{
Piwik::checkUserHasSuperUserAccess();
$this->checkTokenInUrl();
$siteIds = Common::getRequestVar('idSites', '', 'string');
$segment = Request::getRawSegmentFromRequest();
$months = Common::getRequestVar('months', '', 'string');
$dates = [];
list($minDate, $maxDate) = Site::getMinMaxDateAcrossWebsites($siteIds);
if ($months > 0) {
$minDate = $maxDate->subMonth($months);
}
$range = new Range('day', $minDate->toString() . ',' . $maxDate->toString());
foreach ($range->getSubperiods() as $subPeriod) {
$dates[] = $subPeriod->getDateStart();
}
return Request::processRequest('CoreAdminHome.invalidateArchivedReports', [
'format' => 'json',
'idSites' => $siteIds,
'period' => false,
'dates' => implode(',', $dates),
'segment' => $segment
]);
}
}