From: defacer Date: Sun, 22 Aug 2004 17:10:33 +0000 (+0000) Subject: Fix for bug 1755: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=3599e4871f70f07edb5cce32a0140c2bd4cf0140;p=moodle.git Fix for bug 1755: As discussed in the forums, the "last post on" date for each discussion in a forum view has been shortened and also made into a link. --- diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 9a74b3f054..466ea04f6c 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1087,7 +1087,7 @@ function forum_count_discussion_replies($forum="0") { if ($forum) { $forumselect = " AND d.forum = '$forum'"; } - return get_records_sql("SELECT p.discussion, (count(*)) as replies + return get_records_sql("SELECT p.discussion, (count(*)) as replies, max(p.id) as lastpostid FROM {$CFG->prefix}forum_posts p, {$CFG->prefix}forum_discussions d WHERE p.parent > 0 @@ -1570,6 +1570,13 @@ function forum_print_post(&$post, $courseid, $ownpost=false, $reply=false, $link } +// [pj] The first parameter in this function "looks like" a post, but if you find +// the ONLY place it's called from, you 'll see that what gets passed is actually +// a DISCUSSION object!!! Furthermore, that object has properties like discussion +// which a normal discussion object wouldn't have. WTF?!?!? +// +// *** THIS IS MISLEADING AT BEST AND SHOULD BE CORRECTED!!! *** + function forum_print_discussion_header(&$post, $forum, $datestring="") { global $THEME, $USER, $CFG; @@ -1602,8 +1609,12 @@ function forum_print_discussion_header(&$post, $forum, $datestring="") { } echo "cellcontent2\" class=\"forumpostheaderdate\" align=right nowrap>"; + + // [pj] This is also VERY suspicious, as it discriminates between a post record and a discussion record + // based on the presence of the timemodified field WITHOUT SAYING ANYTHING. Ummm.... documentation, anyone? + if (!empty($post->timemodified)) { - echo userdate($post->timemodified, $datestring); + echo ''.userdate($post->timemodified, $datestring).''; } else { echo userdate($post->modified, $datestring); } @@ -2436,7 +2447,7 @@ function forum_print_latest_discussions($forum_id=0, $forum_numdiscussions=5, $discussioncount = 0; $olddiscussionlink = false; - $strdatestring = get_string("strftimedaydatetime"); + $strdatestring = get_string("strftimerecentfull"); if ($forum_style == "minimal") { $strftimerecent = get_string("strftimerecent"); @@ -2472,6 +2483,7 @@ function forum_print_latest_discussions($forum_id=0, $forum_numdiscussions=5, } if (!empty($replies[$discussion->discussion])) { $discussion->replies = $replies[$discussion->discussion]->replies; + $discussion->lastpostid = $replies[$discussion->discussion]->lastpostid; } else { $discussion->replies = 0; }