PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.3.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.3.0
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Scheduler / Schedule / Weekly.php
matomo / app / core / Scheduler / Schedule Last commit date
Daily.php 5 years ago Hourly.php 5 years ago Monthly.php 5 years ago Schedule.php 5 years ago SpecificTime.php 5 years ago Weekly.php 5 years ago
Weekly.php
83 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9
10 namespace Piwik\Scheduler\Schedule;
11
12 use Exception;
13
14 /**
15 * Weekly class is used to schedule tasks every week.
16 *
17 * @see \Piwik\Scheduler\Task
18 */
19 class Weekly extends Schedule
20 {
21 /**
22 * @see ScheduledTime::getRescheduledTime
23 * @return int
24 */
25 public function getRescheduledTime()
26 {
27 $currentTime = $this->getTime();
28
29 $daysFromNow = 7;
30
31 // Adjusts the scheduled day
32 if ($this->day !== null) {
33 $daysFromNow = ($this->day - date('N', $currentTime) + 7) % 7;
34
35 if ($daysFromNow == 0) {
36 $daysFromNow = 7;
37 }
38 }
39
40 // Adds correct number of days
41 $rescheduledTime = mktime(date('H', $currentTime),
42 date('i', $currentTime),
43 date('s', $currentTime),
44 date('n', $currentTime),
45 date('j', $currentTime) + $daysFromNow,
46 date('Y', $currentTime)
47 );
48
49 // Adjusts the scheduled hour
50 $rescheduledTime = $this->adjustHour($rescheduledTime);
51 $rescheduledTime = $this->adjustTimezone($rescheduledTime);
52
53 return $rescheduledTime;
54 }
55
56 /**
57 * @param int $day the day to set, has to be >= 1 and < 8
58 * @throws Exception if parameter _day is invalid
59 */
60 public function setDay($day)
61 {
62 if (!is_int($day)) {
63 $day = self::getDayIntFromString($day);
64 }
65
66 if (!($day >= 1 && $day < 8)) {
67 throw new Exception("Invalid day parameter, must be >=1 and < 8");
68 }
69
70 $this->day = $day;
71 }
72
73 public static function getDayIntFromString($dayString)
74 {
75 $time = strtotime($dayString);
76 if ($time === false) {
77 throw new Exception("Invalid day string '$dayString'. Must be 'monday', 'tuesday', etc.");
78 }
79
80 return date("N", $time);
81 }
82 }
83