PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
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 1 month ago Hourly.php 2 years ago Monthly.php 2 years ago Schedule.php 1 year ago SpecificTime.php 2 years ago Weekly.php 1 year ago
Weekly.php
64 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Scheduler\Schedule;
10
11 use Exception;
12 /**
13 * Weekly class is used to schedule tasks every week.
14 *
15 * @see \Piwik\Scheduler\Task
16 */
17 class Weekly extends \Piwik\Scheduler\Schedule\Schedule
18 {
19 /**
20 * @see ScheduledTime::getRescheduledTime
21 * @return int
22 */
23 public function getRescheduledTime()
24 {
25 $currentTime = $this->getTime();
26 $daysFromNow = 7;
27 // Adjusts the scheduled day
28 if ($this->day !== null) {
29 $daysFromNow = ($this->day - date('N', $currentTime) + 7) % 7;
30 if ($daysFromNow == 0) {
31 $daysFromNow = 7;
32 }
33 }
34 // Adds correct number of days
35 $rescheduledTime = mktime(date('H', $currentTime), date('i', $currentTime), date('s', $currentTime), date('n', $currentTime), date('j', $currentTime) + $daysFromNow, date('Y', $currentTime));
36 // Adjusts the scheduled hour
37 $rescheduledTime = $this->adjustHour($rescheduledTime);
38 $rescheduledTime = $this->adjustTimezone($rescheduledTime);
39 return $rescheduledTime;
40 }
41 /**
42 * @param int $day the day to set, has to be >= 1 and < 8
43 * @throws Exception if parameter _day is invalid
44 */
45 public function setDay($day)
46 {
47 if (!is_int($day)) {
48 $day = self::getDayIntFromString($day);
49 }
50 if (!($day >= 1 && $day < 8)) {
51 throw new Exception("Invalid day parameter, must be >=1 and < 8");
52 }
53 $this->day = $day;
54 }
55 public static function getDayIntFromString($dayString)
56 {
57 $time = strtotime($dayString);
58 if ($time === \false) {
59 throw new Exception("Invalid day string '{$dayString}'. Must be 'monday', 'tuesday', etc.");
60 }
61 return date("N", $time);
62 }
63 }
64