Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Implemented journal feedback notification (mailouts)

  • Loading branch information...
commit 8a85e908251ae7120bba5a226ac94138f59c37cf 1 parent 1afd014
martin authored
Showing with 78 additions and 0 deletions.
  1. +1 −0  mod/journal/db/mysql.sql
  2. +77 −0 mod/journal/lib.php
View
1  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';
View
77 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;
+}
+
+
?>
Please sign in to comment.
Something went wrong with that request. Please try again.