From: Jan Schneider Date: Sat, 1 Jan 2011 22:18:01 +0000 (+0100) Subject: Fix running weekly task if last run was in the year before the next run. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=c8b499b496ea6f1c6a40dabc675641417e91729d;p=horde.git Fix running weekly task if last run was in the year before the next run. --- diff --git a/framework/LoginTasks/lib/Horde/LoginTasks.php b/framework/LoginTasks/lib/Horde/LoginTasks.php index 17f0d636e..1836b9b85 100644 --- a/framework/LoginTasks/lib/Horde/LoginTasks.php +++ b/framework/LoginTasks/lib/Horde/LoginTasks.php @@ -124,15 +124,22 @@ class Horde_LoginTasks break; case self::MONTHLY: - $addtask = (($cur_date['year'] > $lastrun['year']) || ($cur_date['mon'] > $lastrun['mon'])); + $addtask = (($cur_date['year'] > $lastrun['year']) || + ($cur_date['mon'] > $lastrun['mon'])); break; case self::WEEKLY: - $addtask = (($cur_date['wday'] < $lastrun['wday']) || ($cur_date['yday'] >= $lastrun['yday'] + 7)); + $days = date('L', $lastrun[0]) ? 366 : 365; + $addtask = (($cur_date['wday'] < $lastrun['wday']) || + (($cur_date['year'] == $lastrun['year']) && + ($cur_date['yday'] >= $lastrun['yday'] + 7)) || + (($cur_date['year'] > $lastrun['year']) && + ($cur_date['yday'] >= $lastrun['yday'] + 7 - $days))); break; case self::DAILY: - $addtask = (($cur_date['year'] > $lastrun['year']) || ($cur_date['yday'] > $lastrun['yday'])); + $addtask = (($cur_date['year'] > $lastrun['year']) || + ($cur_date['yday'] > $lastrun['yday'])); break; case self::EVERY: