[evolvis-commits] r10325: added cronjob to send an email to users with open tasks↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 17:43:25 CET 2011


Author: mirabilos
Date: 2011-02-24 17:43:25 +0100 (Thu, 24 Feb 2011)
New Revision: 10325

Added:
   trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php
Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/crontab.in
Log:
added cronjob to send an email to users with open tasks


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/crontab.in
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/crontab.in	2011-02-24 16:43:24 UTC (rev 10324)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/crontab.in	2011-02-24 16:43:25 UTC (rev 10325)
@@ -118,3 +118,7 @@
 #
 #08 * * * * $PHP $GFORGE/cronjobs/mail/mailaliases.php
 
+#
+#   Send email to users with pending tasks
+#
+30 5 * * 1,2,3,4,5 $PHP $GFORGE/cronjobs/daily_task_email.php

Added: trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php	2011-02-24 16:43:25 UTC (rev 10325)
@@ -0,0 +1,64 @@
+#! /usr/bin/php
+<?php
+require_once('squal_pre.php');
+require_once('common/pm/ProjectTasksForUser.class');
+require_once('common/include/cron_utils.php');
+
+$res = db_query("SELECT user_id, realname, email FROM users WHERE user_id > 100 ORDER BY user_id");
+$now = time();
+$today = date("n/j/y");
+
+for ($i=0; $i<db_numrows($res);$i++) {
+
+	$user_id = db_result($res, $i, 'user_id');
+	$realname = db_result($res, $i, 'realname');
+	$email = db_result($res, $i, 'email');
+	$user_object = &user_get_object($user_id);
+
+	if (!$user_object || !is_object($user_object)) {
+		$err .= "Could not get User object with ID: $user_id\n";
+	}
+	else {
+
+		$projectTasksForUser = new ProjectTasksForUser($user_object);
+		$userTasks =& $projectTasksForUser->getTasksForToday();
+	
+		$subject = 'Tasks for '.$realname.' for '.$today;
+	
+		if (count($userTasks) > 0) {
+	
+			ob_start();
+	
+			foreach ($userTasks as $task) {
+	
+				$end_date = date("n/j/y", $task->getEndDate());
+	
+				$projectGroup =& $task->getProjectGroup();
+				$group =& $projectGroup->getGroup();
+				if ($group->getID() != $last_group) {
+					echo $group->getPublicName().":\n";
+				}
+				if ($projectGroup->getID() != $last_projectgroup) {
+					echo $projectGroup->getName().":\n";
+				}
+				echo $task->getSummary().":\n";
+				echo '***'.
+				(($now>$task->getEndDate())? 'overdue' : "due $end_date").
+				"***\n";
+				echo 'http://'.$sys_default_domain.'/pm/task.php?func=detailtask&project_task_id='.
+				$task->getID().'&group_id='.$group->getID().'&group_project_id='.$projectGroup->getID();
+				echo "\n\n";
+	
+				$last_group = $group->getID();
+				$last_projectgroup = $projectGroup->getID();
+			}
+	
+			$messagebody = ob_get_contents();
+			ob_end_clean();
+			util_send_message($email, $subject, $messagebody);
+		}
+	}
+}
+
+cron_entry(22,$err);
+?>
\ No newline at end of file


Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/cronjobs/daily_task_email.php
___________________________________________________________________
Added: svn:executable
   + *



More information about the evolvis-commits mailing list