From: martin <martin>
Date: Sat, 27 Jul 2002 06:58:39 +0000 (+0000)
Subject: Implemented journal feedback notification (mailouts)
X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=8a85e908251ae7120bba5a226ac94138f59c37cf;p=moodle.git

Implemented journal feedback notification (mailouts)
---

diff --git a/mod/journal/db/mysql.sql b/mod/journal/db/mysql.sql
index 58763ba357..c480ce41be 100755
--- a/mod/journal/db/mysql.sql
+++ b/mod/journal/db/mysql.sql
@@ -40,6 +40,7 @@ CREATE TABLE journal_entries (
   comment text,
   teacher int(10) unsigned NOT NULL default '0',
   timemarked int(10) unsigned NOT NULL default '0',
+  mailed int(1) unsigned NOT NULL default '0',
   PRIMARY KEY  (id)
 ) TYPE=MyISAM COMMENT='All the journal entries of all people';
 
diff --git a/mod/journal/lib.php b/mod/journal/lib.php
index 09a7c087a3..3cc7b8c1f1 100644
--- a/mod/journal/lib.php
+++ b/mod/journal/lib.php
@@ -69,4 +69,81 @@ function journal_user_complete($course, $user, $mod, $journal) {
     }
 }
 
+
+function journal_cron () {
+// Function to be run periodically according to the moodle cron
+// Finds all journal notifications that have yet to be mailed out, and mails them
+
+    global $CFG;
+
+    echo "Processing journals...\n";
+
+    $cutofftime = time() - $CFG->maxeditingtime;
+
+    if ($entries = get_records_sql("SELECT e.*, j.course, j.name 
+                                     FROM   journal_entries e, journal j
+                                     WHERE  e.mailed = '0' AND 
+                                     e.timemarked < '$cutofftime' AND e.timemarked > 0
+                                     AND e.journal = j.id")) {
+        $timenow = time();
+
+        foreach ($entries as $entry) {
+
+            echo "Processing journal entry $entry->id\n";
+
+            if (! $user = get_record("user", "id", "$entry->user")) {
+                echo "Could not find user $post->user\n";
+                continue;
+            }
+
+            if (! $teacher = get_record("user", "id", "$entry->teacher")) {
+                echo "Could not find teacher $entry->teacher\n";
+                continue;
+            }
+
+            if (! $course = get_record("course", "id", "$entry->course")) {
+                echo "Could not find course $entry->course\n";
+                continue;
+            }
+
+            if (! $mod = get_coursemodule_from_instance("journal", $entry->journal, $course->id)) {
+                echo "Could not find course module for journal id $entry->journal\n";
+                continue;
+            }
+
+            $postsubject = "$course->shortname: Journal feedback: $entry->name";
+            $posttext  = "$course->shortname -> Journals -> $entry->name\n";
+            $posttext .= "---------------------------------------------------------------------\n";
+            $posttext .= "$teacher->firstname $teacher->lastname has posted some feedback on your\n";
+            $posttext .= "journal entry for '$entry->name'\n\n";
+            $posttext .= "You can see it appended to your journal entry:\n";
+            $posttext .= "   $CFG->wwwroot/mod/journal/view.php?id=$mod->id\n";
+            $posttext .= "---------------------------------------------------------------------\n";
+            if ($user->mailformat == 1) {  // HTML
+                $posthtml = "<P><FONT FACE=sans-serif>".
+              "<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ->".
+              "<A HREF=\"$CFG->wwwroot/mod/journal/index.php?id=$course->id\">Journals</A> ->".
+              "<A HREF=\"$CFG->wwwroot/mod/journal/view.php?id=$mod->id\">$entry->name</A></FONT></P>";
+              $posthtml .= "<HR><FONT FACE=sans-serif>";
+              $posthtml .= "<P>$teacher->firstname $teacher->lastname has posted some feedback on your";
+              $posthtml .= " journal entry for '<B>$entry->name</B>'</P>";
+              $posthtml .= "<P>You can see it <A HREF=\"$CFG->wwwroot/mod/journal/view.php?id=$mod->id\">";
+              $posthtml .= "appended to your journal entry</A>.</P></FONT><HR>";
+            } else {
+              $posthtml = "";
+            }
+
+            if (! email_to_user($user, $teacher, $postsubject, $posttext, $posthtml)) {
+                echo "Error: Journal cron: Could not send out mail for id $entry->id to user $user->id ($user->email)\n";
+            }
+            if (! set_field("journal_entries", "mailed", "1", "id", "$entry->id")) {
+                echo "Could not update the mailed field for id $entry->id\n";
+            }
+        }
+    }
+
+    return true;
+}
+
+
 ?>