return NULL;
}
-
-// SQL FUNCTIONS ///////////////////////////////////////////////////////////////////
-
//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_count_all_needing_replies_self($user = '') {
-// count [conversations] needing replies [from] self for all dialogues
-// function requested by Williams Castillo 17 Oct 2003
- global $USER;
-
- if ($user) {
- return count_records_select("dialogue_conversations", "(userid = $user->id OR
- recipientid = $user->id) AND lastid != $user->id AND closed = 0");
- } else {
- return count_records_select("dialogue_conversations", "(userid = $USER->id OR
- recipientid = $USER->id) AND lastid != $USER->id AND closed = 0");
- }
-}
-
-
+// Extra functions needed by the Standard functions
//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_count_closed($dialogue, $user) {
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- (userid = $user->id OR recipientid = $user->id) AND closed = 1");
- }
-
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_count_entries($dialogue, $conversation, $user = '') {
}
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_count_open($dialogue, $user) {
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- (userid = $user->id OR recipientid = $user->id) AND closed = 0");
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_count_needing_replies_other($dialogue, $user) {
-// count [conversations] needing replies [from] other [person]
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- (userid = $user->id OR recipientid = $user->id) AND lastid = $user->id AND closed = 0");
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_count_needing_replies_self($dialogue, $user) {
-// count [conversations] needing replies [from] self
-
- return count_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- (userid = $user->id OR recipientid = $user->id) AND lastid != $user->id AND closed = 0");
-}
-
-
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_delete_expired_conversations() {
//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_participants($dialogueid) {
-//Returns the users with data in one dialogue
-//(users with records in dialogue_conversations, creators and receivers)
-
- global $CFG;
-
- //Get conversation's creators
- $creators = get_records_sql("SELECT DISTINCT u.*
- FROM {$CFG->prefix}user u,
- {$CFG->prefix}dialogue_conversations c
- WHERE c.dialogueid = '$dialogueid' and
- u.id = c.userid");
-
- //Get conversation's receivers
- $receivers = get_records_sql("SELECT DISTINCT u.*
- FROM {$CFG->prefix}user u,
- {$CFG->prefix}dialogue_conversations c
- WHERE c.dialogueid = '$dialogueid' and
- u.id = c.recipientid");
-
- //Add receivers to creators
- if ($receivers) {
- foreach ($receivers as $receiver) {
- $creators[$receiver->id] = $receiver;
- }
- }
-
- //Return creators array (it contains an array of unique users, creators and receivers)
- return ($creators);
-}
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_available_users($dialogue) {
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- switch ($dialogue->dialoguetype) {
- case 0 : // teacher to student
- if (isteacher($course->id)) {
- return dialogue_get_available_students($dialogue);
- }
- else {
- return dialogue_get_available_teachers($dialogue);
- }
- case 1: // student to student
- if (isstudent($course->id)) {
- return dialogue_get_available_students($dialogue);
- }
- else {
- return;
- }
- case 2: // everyone
- if ($teachers = dialogue_get_available_teachers($dialogue)) {
- foreach ($teachers as $userid=>$name) {
- $names[$userid] = $name;
- }
- $names[-1] = "-------------";
- }
- if ($students = dialogue_get_available_students($dialogue)) {
- foreach ($students as $userid=>$name) {
- $names[$userid] = $name;
- }
- }
- if (isset($names)) {
- return $names;
- }
- return;
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_available_students($dialogue) {
-global $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- // get the students on this course...
- if ($users = get_course_students($course->id, "u.firstname, u.lastname")) {
- foreach ($users as $otheruser) {
- // ...exclude self and...
- if ($USER->id != $otheruser->id) {
- // ...any already in any open conversations unless multiple conversations allowed
- if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
- "dialogueid = $dialogue->id AND
- ((userid = $USER->id AND recipientid = $otheruser->id) OR
- (userid = $otheruser->id AND recipientid = $USER->id)) AND closed = 0") == 0) {
- $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
- }
- }
- }
- }
- if (isset($names)) {
- return $names;
- }
- return;
+function dialogue_get_add_entry_logs($course, $timestart) {
+ // get the "add entry" entries and add the first and last names, we are not interested in the entries
+ // make by this user (the last condition)!
+ global $CFG, $USER;
+ return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, e.dialogueid, d.name
+ FROM {$CFG->prefix}log l,
+ {$CFG->prefix}dialogue d,
+ {$CFG->prefix}dialogue_conversations c,
+ {$CFG->prefix}dialogue_entries e,
+ {$CFG->prefix}user u
+ WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
+ AND l.action = 'add entry'
+ AND e.id = l.info
+ AND c.id = e.conversationid
+ AND (c.userid = $USER->id or c.recipientid = $USER->id)
+ AND d.id = e.dialogueid
+ AND u.id = e.userid
+ AND e.userid != $USER->id");
}
//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_available_teachers($dialogue) {
-global $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- // get the teachers on this course...
- if ($users = get_course_teachers($course->id, "u.firstname, u.lastname")) {
- // $names[0] = "-----------------------";
- foreach ($users as $otheruser) {
- // ...exclude self and ...
- if ($USER->id != $otheruser->id) {
- // ...any already in open conversations unless multiple conversations allowed
- if ($dialogue->multipleconversations or count_records_select("dialogue_conversations",
- "dialogueid = $dialogue->id AND ((userid = $USER->id AND
- recipientid = $otheruser->id) OR (userid = $otheruser->id AND
- recipientid = $USER->id)) AND closed = 0") == 0) {
- $names[$otheruser->id] = "$otheruser->firstname $otheruser->lastname";
- }
- }
- }
- }
- if (isset($names)) {
- return $names;
- }
- return;
+function dialogue_get_closed_logs($course, $timestart) {
+ // get the "closed" entries and add the first and last names, we are not interested in the entries
+ // make by this user (the last condition)!
+ global $CFG, $USER;
+ return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, c.dialogueid, d.name
+ FROM {$CFG->prefix}log l,
+ {$CFG->prefix}dialogue d,
+ {$CFG->prefix}dialogue_conversations c,
+ {$CFG->prefix}user u
+ WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
+ AND l.action = 'closed'
+ AND c.id = l.info
+ AND (c.userid = $USER->id or c.recipientid = $USER->id)
+ AND d.id = c.dialogueid
+ AND u.id = c.lastid
+ AND c.lastid != $USER->id");
}
-
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_conversations($dialogue, $user, $condition = '', $order = '') {
global $CFG;
}
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_users_done($dialogue) {
- global $CFG;
- return get_records_sql("SELECT u.*
- FROM {$CFG->prefix}user u,
- {$CFG->prefix}user_students s,
- {$CFG->prefix}user_teachers t,
- {$CFG->prefix}dialogue_entries j
- WHERE ((s.course = '$dialogue->course' AND s.userid = u.id)
- OR (t.course = '$dialogue->course' AND t.userid = u.id))
- AND u.id = j.userid
- AND j.dialogue = '$dialogue->id'
- ORDER BY j.modified DESC");
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_user_entries($dialogue, $user) {
- global $CFG;
- return get_records_select("dialogue_entries", "dialogueid = $dialogue->id AND userid = $user->id",
- "timecreated DESC");
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_add_entry_logs($course, $timestart) {
- // get the "add entry" entries and add the first and last names, we are not interested in the entries
- // make by this user (the last condition)!
- global $CFG, $USER;
- if (empty($USER->id)) {
- return false;
- }
- return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, e.dialogueid, d.name
- FROM {$CFG->prefix}log l,
- {$CFG->prefix}dialogue d,
- {$CFG->prefix}dialogue_conversations c,
- {$CFG->prefix}dialogue_entries e,
- {$CFG->prefix}user u
- WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
- AND l.action = 'add entry'
- AND e.id = l.info
- AND c.id = e.conversationid
- AND (c.userid = $USER->id or c.recipientid = $USER->id)
- AND d.id = e.dialogueid
- AND u.id = e.userid
- AND e.userid != $USER->id");
-}
-
-
//////////////////////////////////////////////////////////////////////////////////////
function dialogue_get_open_conversations($course) {
// get the conversations which are waiting for a response for this user.
//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_get_closed_logs($course, $timestart) {
- // get the "closed" entries and add the first and last names, we are not interested in the entries
- // make by this user (the last condition)!
- global $CFG, $USER;
- if (empty($USER->id)) {
- return false;
- }
- return get_records_sql("SELECT l.time, l.url, u.firstname, u.lastname, c.dialogueid, d.name
- FROM {$CFG->prefix}log l,
- {$CFG->prefix}dialogue d,
- {$CFG->prefix}dialogue_conversations c,
- {$CFG->prefix}user u
- WHERE l.time > $timestart AND l.course = $course->id AND l.module = 'dialogue'
- AND l.action = 'closed'
- AND c.id = l.info
- AND (c.userid = $USER->id or c.recipientid = $USER->id)
- AND d.id = c.dialogueid
- AND u.id = c.lastid
- AND c.lastid != $USER->id");
-}
-
-
-// OTHER dialogue FUNCTIONS ///////////////////////////////////////////////////////////////////
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_list_conversations_closed($dialogue) {
-// list the closed for the current user
- global $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- if ($conversations = dialogue_get_conversations($dialogue, $USER, "closed = 1")) {
- // reorder the conversations by (other) name
- foreach ($conversations as $conversation) {
- if ($USER->id != $conversation->userid) {
- if (!$with = get_record("user", "id", $conversation->userid)) {
- error("User's record not found");
- }
- }
- else {
- if (!$with = get_record("user", "id", $conversation->recipientid)) {
- error("User's record not found");
- }
- }
- $names[$conversation->id] = "$with->firstname $with->lastname";
- }
- asort($names);
-
- print_simple_box_start();
- $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
- get_string("numberofentries", "dialogue"), get_string("lastentry", "dialogue"),
- get_string("status", "dialogue"));
- $table->width = "100%";
- $table->align = array ("left", "left", "center", "left", "left");
- $table->size = array ("*", "*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- foreach ($names as $cid=>$name) {
- if (!$conversation = get_record("dialogue_conversations", "id", $cid)) {
- error("Closed conversations: could not find conversation record");
- }
- $total = dialogue_count_entries($dialogue, $conversation);
- $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
- if ($conversation->closed) {
- $status = get_string("closed", "dialogue");
- } else {
- $status = get_string("open", "dialogue");
- }
- $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=showdialogues&cid=$conversation->id\">".
- "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
- userdate($conversation->timemodified), $status);
- }
- print_table($table);
- print_simple_box_end();
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_list_conversations_other($dialogue) {
-// list the conversations of the current user awaiting response from the other person
- global $THEME, $USER;
-
- if (!$course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (!$cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
- if ($conversations = dialogue_get_conversations($dialogue, $USER, "lastid = $USER->id AND closed = 0")) {
- // reorder the conversations by (other) name
- foreach ($conversations as $conversation) {
- if ($USER->id != $conversation->userid) {
- if (!$with = get_record("user", "id", $conversation->userid)) {
- error("User's record not found");
- }
- }
- else {
- if (!$with = get_record("user", "id", $conversation->recipientid)) {
- error("User's record not found");
- }
- }
- $names[$conversation->id] = "$with->firstname $with->lastname";
- }
- asort($names);
-
- print_simple_box_start();
- $table->head = array (get_string("dialoguewith", "dialogue"), get_string("subject", "dialogue"),
- get_string("numberofentries", "dialogue"), get_string("lastentry", "dialogue"),
- get_string("status", "dialogue"));
- $table->width = "100%";
- $table->align = array ("left", "left", "center", "left", "left");
- $table->size = array ("*", "*", "*", "*", "*");
- $table->cellpadding = 2;
- $table->cellspacing = 0;
-
- foreach ($names as $cid=>$name) {
- if (!$conversation = get_record("dialogue_conversations", "id", $cid)) {
- error("Closed conversations: could not find conversation record");
- }
- $total = dialogue_count_entries($dialogue, $conversation);
- $byuser = dialogue_count_entries($dialogue, $conversation, $USER);
- if ($conversation->seenon) {
- $status = get_string("seen", "dialogue", format_time($timenow - $conversation->seenon));
- } else {
- $status = get_string("notyetseen", "dialogue");
- }
- $table->data[] = array("<a href=\"dialogues.php?id=$cm->id&action=printdialogue&cid=$conversation->id\">".
- "$name</a>", $conversation->subject, $byuser." ".get_string("of", "dialogue")." ".$total,
- userdate($conversation->timemodified), $status);
- }
- print_table($table);
- print_simple_box_end();
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_list_conversations_self($dialogue) {
-// list open conversations of the current user awaiting their reply
- global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
- $showbutton = false;
- $showemoticon = false; // never show emoticons for now - need to close or reload the popup
- // window to get the focus into the correct textarea on the second time round
-
- echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
- echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
- echo "<input type=\"hidden\" name=\"pane\" value=\"1\">\n";
-
- // list the conversations requiring a resonse from this user in full
- if ($conversations = dialogue_get_conversations($dialogue, $USER, "lastid != $USER->id AND closed = 0")) {
- $showbutton = true;
- print_simple_box_start("center");
- foreach ($conversations as $conversation) {
- // set seenon if required
- if (!$conversation->seenon) {
- if (!set_field("dialogue_conversations", "seenon", $timenow, "id", $conversation->id)) {
- error("List conversations self: could not set seenon");
- }
- }
- echo "<center><table border=\"1\" cellspacing=\"0\" valign=\"top\" cellpadding=\"4\"
- width=\"100%\">\n";
- echo "<tr><TD BGCOLOR=\"$THEME->cellheading2\" valign=\"top\">\n";
- if ($conversation->userid == $USER->id) {
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- }
- // print_user_picture($user->id, $course->id, $user->picture);
- echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
- "</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\"><i>$conversation->subject </i><br />\n";
- echo "<div align=\"right\">\n";
- if (!$conversation->subject) {
- // conversation does not have a subject, show add subject link
- echo "<a href=\"dialogues.php?action=getsubject&id=$cm->id&cid=$conversation->id&pane=2\">".
- get_string("addsubject", "dialogue")."</a>\n";
- helpbutton("addsubject", get_string("addsubject", "dialogue"), "dialogue");
- echo " | ";
- }
- if (dialogue_count_entries($dialogue, $conversation)) {
- echo "<a href=\"dialogues.php?action=confirmclose&id=$cm->id&cid=$conversation->id&pane=1\">".
- get_string("close", "dialogue")."</a>\n";
- helpbutton("closedialogue", get_string("close", "dialogue"), "dialogue");
- }
- else {
- echo " ";
- }
- echo "<div></td></tr>";
-
- if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $USER->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
- userdate($entry->timecreated)).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
- userdate($entry->timecreated)." ".$otheruser->firstname).
- ":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
-
- echo "<tr><td colspan=\"2\" align=\"center\" valign=\"top\">\n";
- if ($entries) {
- echo "<i>".get_string("typereply", "dialogue")."</i>\n";
- }
- else {
- echo "<i>".get_string("typefirstentry", "dialogue")."</i>\n";
- }
- echo "</td></tr>\n";
- echo "<tr><td valign=\"top\" align=\"right\">\n";
- helpbutton("writing", get_string("helpwriting"), "dialogue", true, true);
- echo "<br />";
- if ($showemoticon) {
- emoticonhelpbutton("replies", "reply$conversation->id");
- $showemoticon = false;
- }
- echo "</td><td>\n";
- // use a cumbersome name on the textarea as the emoticonhelp doesn't like an "array" name
- echo "<textarea name=\"reply$conversation->id\" rows=\"5\" cols=\"60\" wrap=\"virtual\">";
- echo "</textarea>\n";
- echo "</td></tr>";
- echo "</table></center><br />\n";
- }
- print_simple_box_end();
- if ($showbutton) {
- echo "<hr />\n";
- echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
- if ($dialogue->maildefault) {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
- }
- else {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
- }
- helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
- echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentries", "dialogue")."\">\n";
- }
- echo "</form>\n";
- }
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_print_conversation($dialogue, $conversation) {
-// print a conversation and allow a new entry
- global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
- $showbutton = false;
- $showemoticon = false; // never show emoticons for now - need to close or reload the popup
- // window to get the focus into the correct textarea on the second time round
-
- echo "<form name=\"replies\" method=\"post\" action=\"dialogues.php\">\n";
- echo "<input type=\"hidden\" name=\"action\" value=\"insertentries\">\n";
- echo "<input type=\"hidden\" name=\"id\" value=\"$cm->id\">\n";
- echo "<input type=\"hidden\" name=\"pane\" value=\"2\">\n";
-
- $showbutton = true;
- print_simple_box_start("center", "", $THEME->cellcontent2);
- echo "<center><table border=\"1\" cellspacing=\"0\" valign=\"top\" cellpadding=\"4\"
- width=\"100%\">\n";
- echo "<tr><td bgcolor=\"$THEME->cellheading2\" valign=\"top\">\n";
- if ($conversation->userid == $USER->id) {
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- }
- // print_user_picture($user->id, $course->id, $user->picture);
- echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
- "</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\"><i>$conversation->subject </i><br />\n";
- echo "<div align=\"right\">\n";
- if (!$conversation->subject) {
- // conversation does not have a subject, show add subject link
- echo "<a href=\"dialogues.php?action=getsubject&id=$cm->id&cid=$conversation->id&pane=2\">".
- get_string("addsubject", "dialogue")."</a>\n";
- helpbutton("addsubject", get_string("addsubject", "dialogue"), "dialogue");
- echo " | ";
- }
- echo "<a href=\"dialogues.php?action=confirmclose&id=$cm->id&cid=$conversation->id&pane=2\">".
- get_string("close", "dialogue")."</a>\n";
- helpbutton("closedialogue", get_string("close", "dialogue"), "dialogue");
- echo "</div></td></tr>\n";
-
- if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $USER->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
- userdate($entry->timecreated)).":</font><br />".$entry->text);
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
- userdate($entry->timecreated)." ".$otheruser->firstname).":</font><br />".
- $entry->text);
- }
- }
- echo "</td></tr>\n";
- }
- echo "<tr><td colspan=\"2\" align=\"center\" valign=\"top\"><i>".
- get_string("typefollowup", "dialogue")."</i></td></tr>\n";
- echo "<tr><td valign=\"top\" align=\"right\">\n";
- helpbutton("writing", get_string("helpwriting"), "dialogue", true, true);
- echo "<br />";
- if ($showemoticon) {
- emoticonhelpbutton("replies", "reply$conversation->id");
- $showemoticon = false;
- }
- echo "</td><td>\n";
- // use a cumbersome name on the textarea as the emoticonhelp doesn't like an "array" name
- echo "<textarea name=\"reply$conversation->id\" rows=\"5\" cols=\"60\" wrap=\"virtual\">";
- echo "</textarea>\n";
- echo "</td></tr>";
- echo "</table></center><br />\n";
- print_simple_box_end();
- if ($showbutton) {
- echo "<hr />\n";
- echo "<b>".get_string("sendmailmessages", "dialogue").":</b> \n";
- if ($dialogue->maildefault) {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\" checked> \n";
- }
- else {
- echo "<input type=\"checkbox\" name=\"sendthis\" value=\"1\"> \n";
- }
- helpbutton("sendmail", get_string("sendmailmessages", "dialogue"), "dialogue");
- echo "<br /><input type=\"submit\" value=\"".get_string("addmynewentry", "dialogue")."\">\n";
- }
- echo "</form>\n";
-}
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_print_tabbed_heading($tabs) {
-// Prints a tabbed heading where one of the tabs highlighted.
-// $tabs is an object with several properties.
-// $tabs->names is an array of tab names
-// $tabs->urls is an array of links
-// $tabs->align is an array of column alignments (defaults to "center")
-// $tabs->size is an array of column sizes
-// $tabs->wrap is an array of "nowrap"s or nothing
-// $tabs->highlight is an index (zero based) of "active" heading .
-// $tabs->width is an percentage of the page (defualts to 80%)
-// $tabs->cellpadding padding on each cell (defaults to 5)
-
- global $CFG, $THEME;
-
- if (isset($tabs->names)) {
- foreach ($tabs->names as $key => $name) {
- if (!empty($tabs->urls[$key])) {
- $url =$tabs->urls[$key];
- if ($tabs->highlight == $key) {
- $tabcontents[$key] = "<b>$name</b>";
- } else {
- $tabcontents[$key] = "<a class= \"dimmed\" href=\"$url\"><b>$name</b></a>";
- }
- } else {
- $tabcontents[$key] = "<b>$name</b>";
- }
- }
- }
-
- if (empty($tabs->width)) {
- $tabs->width = "80%";
- }
-
- if (empty($tabs->cellpadding)) {
- $tabs->cellpadding = "5";
- }
-
- // print_simple_box_start("center", "$table->width", "#ffffff", 0);
- echo "<table width=\"$tabs->width\" border=\"0\" valign=\"top\" align=\"center\" ";
- echo " cellpadding=\"$tabs->cellpadding\" cellspacing=\"0\" class=\"generaltable\">\n";
-
- if (!empty($tabs->names)) {
- echo "<tr>";
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td>\n";
- foreach ($tabcontents as $key => $tab) {
- if (isset($align[$key])) {
- $alignment = "align=\"$align[$key]\"";
- } else {
- $alignment = "align=\"center\"";
- }
- if (isset($size[$key])) {
- $width = "width=\"$size[$key]\"";
- } else {
- $width = "";
- }
- if (isset($wrap[$key])) {
- $wrapping = "no wrap";
- } else {
- $wrapping = "";
- }
- if ($key == $tabs->highlight) {
- echo "<td valign=top class=\"generaltabselected\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading2\">$tab</td>\n";
- } else {
- echo "<td valign=top class=\"generaltab\" $alignment $width $wrapping bgcolor=\"$THEME->cellheading\">$tab</td>\n";
- }
- echo "<td class=\"generaltablecell\">".
- "<img width=\"10\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td>\n";
- }
- echo "</tr>\n";
- } else {
- echo "<tr><td>No names specified</td></tr>\n";
- }
- // bottom stripe
- $ncells = count($tabs->names)*2 +1;
- $height = 2;
- echo "<tr><td colspan=\"$ncells\" bgcolor=\"$THEME->cellheading2\">".
- "<img height=\"$height\" src=\"$CFG->wwwroot/pix/spacer.gif\" alt=\"\"></td></tr>\n";
- echo "</table>\n";
- // print_simple_box_end();
-
- return true;
-}
-
-
-
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_show_conversation($dialogue, $conversation) {
- global $THEME, $USER;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- $timenow = time();
- print_simple_box_start("center");
- echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
-
- echo "<tr>";
- echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\">\n";
- if ($conversation->userid == $USER->id) {
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- }
- // print_user_picture($user->id, $course->id, $user->picture);
- echo "<b>".get_string("dialoguewith", "dialogue", "$otheruser->firstname $otheruser->lastname").
- "</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\"><i>$conversation->subject </i></td></tr>";
-
- if ($entries = get_records_select("dialogue_entries", "conversationid = $conversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $USER->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
- userdate($entry->timecreated)).
- ":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
- userdate($entry->timecreated)." ".$otheruser->firstname).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
- echo "</TABLE></center><BR CLEAR=ALL>\n";
- print_simple_box_end();
- print_continue("view.php?id=$cm->id&pane=3");
+function dialogue_get_user_entries($dialogue, $user) {
+ global $CFG;
+ return get_records_select("dialogue_entries", "dialogueid = $dialogue->id AND userid = $user->id",
+ "timecreated DESC");
}
-//////////////////////////////////////////////////////////////////////////////////////
-function dialogue_show_other_conversations($dialogue, $conversation) {
-// prints the other CLOSED conversations for this pair of users
- global $THEME;
-
- if (! $course = get_record("course", "id", $dialogue->course)) {
- error("Course is misconfigured");
- }
- if (! $cm = get_coursemodule_from_instance("dialogue", $dialogue->id, $course->id)) {
- error("Course Module ID was incorrect");
- }
-
- if (!$user = get_record("user", "id", $conversation->userid)) {
- error("User not found");
- }
- if (!$otheruser = get_record("user", "id", $conversation->recipientid)) {
- error("User not found");
- }
-
- if ($conversations = get_records_select("dialogue_conversations", "dialogueid = $dialogue->id AND
- ((userid = $user->id AND recipientid = $otheruser->id) OR (userid = $otheruser->id AND
- recipientid = $user->id)) AND closed = 1", "timemodified DESC")) {
- if (count($conversations) > 1) {
- $timenow = time();
- foreach ($conversations as $otherconversation) {
- if ($conversation->id != $otherconversation->id) {
- // for this conversation work out which is the other user
- if ($otherconversation->userid == $user->id) {
- if (!$otheruser = get_record("user", "id", $otherconversation->recipientid)) {
- error("Show other conversations: could not get user record");
- }
- }
- else {
- if (!$otheruser = get_record("user", "id", $otherconversation->userid)) {
- error("Show other conversations: could not get user record");
- }
- }
- print_simple_box_start("center");
- echo "<center><TABLE BORDER=1 CELLSPACING=0 valign=top cellpadding=4 width=\"100%\">\n";
-
- echo "<TR>";
- echo "<TD BGCOLOR=\"$THEME->cellheading2\" VALIGN=TOP>\n";
- // print_user_picture($otheruser->id, $course->id, $otheruser->picture);
- echo "<b>".get_string("dialoguewith", "dialogue",
- "$otheruser->firstname $otheruser->lastname")."</b></td>";
- echo "<td bgcolor=\"$THEME->cellheading2\" valign=\"top\"><i>$otherconversation->subject </i></td></tr>";
- if ($entries = get_records_select("dialogue_entries",
- "conversationid = $otherconversation->id", "id")) {
- foreach ($entries as $entry) {
- if ($entry->userid == $user->id) {
- echo "<tr><td colspan=\"2\" bgcolor=\"#FFFFFF\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onyouwrote", "dialogue",
- userdate($entry->timecreated)).":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- else {
- echo "<tr><td colspan=\"2\" bgcolor=\"$THEME->body\">\n";
- echo text_to_html("<font size=\"1\">".get_string("onwrote", "dialogue",
- userdate($entry->timecreated)." ".$otheruser->firstname).
- ":</font><br />".$entry->text);
- echo "</td></tr>\n";
- }
- }
- }
-
- echo "</TABLE></center><BR CLEAR=ALL>\n";
- print_simple_box_end();
- }
- }
- print_continue("view.php?id=$cm->id&pane=3");
- }
- }
-}
-
?>